TL;DR

OpenRouter vừa tung @openrouter/cli — bộ CLI chính chủ gồm DevTools Viewer (web UI telemetry real-time trên localhost:4983) và StatusLine tích hợp Claude Code (hiện provider, model, cost tích luỹ ngay trong terminal). Cài 1 dòng npm i -g @openrouter/cli, chạy openrouter devtools là xong. Được hook thẳng vào @openrouter/sdk nên capture async, zero-impact, và block chặn ở production bằng check NODE_ENV.

Có gì mới

Trước giờ dev AI agent phải tự hack console.log hoặc dùng APM generic (Datadog, Sentry) — những tool không hiểu ngữ nghĩa LLM: không biết token prompt vs completion, không inspect được tool call, không so sánh được 2 run. @openrouter/cli trám đúng khoảng trống đó:

  • DevTools Viewer — web UI local bật bằng 1 lệnh, auto-refresh mỗi khi agent chạy.
  • StatusLine — widget trong Claude Code status bar, show live provider · model · cumulative cost · cache discount.
  • SDK hooks — install @openrouter/devtools --save-dev, truyền hooks: createOpenRouterDevtools() vào new OpenRouter({...}) là đủ.

Tất cả 100% chạy trên máy dev, không ship data ra đâu. Telemetry lưu ở .devtools/openrouter-generations.json.

Vì sao quan trọng

AI agent đang từ demo lên production, và thứ đang chặn đa số team không phải là model — mà là visibility. Mỗi step agent gọi LLM là một hộp đen: tại sao nó chọn tool này? Token đi đâu mất? Run hôm nay tốn gấp 3 lần hôm qua là vì prompt dài hay model đổi provider? Không có trace tốt, debug agent giống đoán mò.

@openrouter/cli xử lý đúng vấn đề đó với cách tiếp cận đúng: first-party (hook thẳng vào SDK, không proxy), dev-only (không phải APM nặng), và không phá app (async, graceful degradation khi fail).

Fact kỹ thuật

Thuộc tínhGiá trị
Package CLI@openrouter/cli (global install)
Package SDK hooks@openrouter/devtools (dev dep)
Default port4983
Config file~/.openrouter/claude-code-proxy.json
Telemetry storage.devtools/openrouter-generations.json
Operations capturedchat.send(), chat.createResponses(), embeddings.create()
Production guardThrow error nếu NODE_ENV === 'production'
Fast-mode supportClaude Code v2.1.96+ (2.5× nhanh hơn cho Opus 4.7)
Số model có sẵn300+ qua OpenRouter SDK

Per-step capture bao gồm: model, messages, parameters (temperature, max_tokens...), generated content, prompt + completion tokens, provider, finish reason, tool calls, start/end timestamps, duration ms, status, và error stack nếu fail.

Cách dùng nhanh

Ba bước:

  1. Cài CLI: npm install -g @openrouter/cli
  2. Wire hooks vào SDK trong code:
import { createOpenRouterDevtools } from '@openrouter/devtools';
import { OpenRouter } from '@openrouter/sdk';

const hooks = process.env.NODE_ENV === 'development'
  ? createOpenRouterDevtools()
  : undefined;

const sdk = new OpenRouter({
  apiKey: process.env.OPENROUTER_API_KEY,
  hooks
});
  1. Bật viewer: openrouter devtools → browser tự mở localhost:4983.

Với Claude Code, chỉ cần thêm openrouter statusline và update ~/.claude/settings.json theo scripts từ repo openrouter-examples — cost sẽ hiện ngay trong status bar.

So sánh với các giải pháp hiện có

Giải phápFirst-partyAgent-aware100% localCost tracking
@openrouter/cli✅ (tool calls, finish reason)✅ (statusline)
ccusage / ccstatuslinePartial (Claude Code only)
claude-code-routerPartialPartial
Datadog / Sentry❌ (LLM-blind)

Use cases

  • Prompt iteration — tweak prompt, xem delta token + cost per run.
  • Tool-call debug — inspect payload & response của từng function call trong agent loop.
  • Multi-run compare — đặt cạnh 2 run (GPT-5 vs Claude Opus 4.7) so latency + cost.
  • Claude Code daily driver — statusline show live spend, không còn mù mờ tiền chảy đi đâu.
  • Codex CLI swap model — sửa ~/.codex/config.toml đổi sang model khác qua OpenRouter, không cần reinstall.

Limitations & pricing

  • Dev-only. CLI throw error nếu chạy production — đừng nhầm đây là APM.
  • Scope hẹp. Chỉ capture chat.send, chat.createResponses, embeddings.create. Các SDK op khác hiện bị ignore.
  • Pre-release. API surface có thể đổi — pin version trước khi prod.
  • Port conflict. Nếu 4983 bận, phải config lại qua ~/.openrouter/claude-code-proxy.json.
  • Giá. CLI miễn phí. Token bill theo rate chuẩn của từng model qua credits OpenRouter. Fast mode Claude Code bill thêm multiplier của Anthropic.

What's next

Pre-release nghĩa là OpenRouter đang gather feedback để mở rộng. Hướng đi khả dĩ: capture thêm SDK ops (streaming, batching), diff tooling sâu hơn giữa các run, và có thể cloud-sync telemetry cho team (hiện 100% local). Kết hợp với roadmap 2026 của OpenRouter — Auto Exacto adaptive routing (3/2026), video generation GA (15/4/2026) — thì toolchain cho dev agent đang dày lên rất nhanh.

Nếu bạn đang build AI agent bằng Claude Code, Codex CLI, hoặc @openrouter/sdk, cài @openrouter/cli hôm nay mất 30 giây và đổi được bàn làm việc từ "đoán" sang "thấy".

Nguồn: OpenRouter DevTools docs, Claude Code integration, Codex CLI integration, npm @openrouter/cli.