Skip to content

CLI Changelog

Release history for the AnyRouter CLI (anyr) — the launcher for Claude Code, Codex, Grok, and other coding agents.

Release history for the native anyr binary. Install today: curl -fsSL https://anyrouter.dev/setup.sh | bash, then run anyr (alias ar). See the CLI guide to get started.

Historical entries below may mention npx @anyr/cli — that was the install path at the time of those releases; the supported path is now setup.sh / anyr.

Unreleased

✨ Features

  • shared selector session — first-run and anyr login walk providers → models → optional reasoning-effort, merge every selected provider connection, then public alias and identity defaults (--yes skips). Native module mirrors the contract.
  • Grok-style TUI — GrokNight palette (magenta accent, teal model ids), search: picker bar, ◆ + fill selection (no reverse-video), [ Tab ] pills, and a filled launch band. Dialog, picker, settings, key table, and /cli preview share the same chrome.
  • anyr usage — prints credits remaining, today's spend, and lifetime used from GET /credits. Non-interactive; --json for scripting. Honors --key and ANYROUTER_API_KEY so CI/scripts do not need a saved profile.

🐛 Bug Fixes

  • npx @anyr/cli default bin — ship a cli executable (same target as anyr) so npx's last-segment lookup no longer fails with cli: not found / "could not determine executable". anyr / anyrouter / ar stay in place.
  • pack-smoke login help — validate-install now matches the auto browser → device → paste login help (auto-detect, prefix…suffix, --device / --paste) instead of the retired "Pick a key from anyrouter.dev" copy.
  • --help Launch agents — spawn targets (including pool / poolside) are generated from the target registry so they cannot be omitted from --help (#2283).
  • documented commands — usage, logs, whoami, account, and login --yes are parser-tested so they cannot regress as Unknown command/flag (#2276).
  • models honors --key / ANYROUTER_API_KEY — listing the public catalog no longer requires ~/.anyrouter/config.yaml, and --key is a documented flag on models --help (#2278).
  • login 403 from GET /credits — only HTTP 401 is "key rejected". A 403 from credits (WAF/transport) falls through to a /models probe instead of failing a valid key (#2279).
  • usage --help — native CLI help no longer promises 24h spend, top models, or fail-cached output that the binary does not implement (#2604).
  • changelog order — version sections are listed in descending semver order; missing 0.2.9 / 0.2.10 entries restored (#2193).

0.2.10 (2026-08-13)

✨ Features

  • clack prompts — login and onboarding use @clack/prompts for clearer step-by-step flows.
  • unified auto login — browser → device-code → paste runs automatically without a 3-option menu; force a route with --device, --paste, or --key.
  • post-login wizard — optional default model and coding-agent pickers after interactive login (--yes skips).

0.2.9 (2026-08-12)

✨ Features

  • poolside harness — Poolside launch target with harness switcher icons, sharper tab rendering, and model-aware reasoning levels.
  • post-publish install validation — validate-install smoke-tests a clean npx install and can self-heal missing @anyr/* deps.

🐛 Bug Fixes

  • key recovery — fixed a crash in the invalid-key recovery prompt and an unreachable browser branch.

0.2.8

✨ Features

  • browser callback redesign — after PKCE approve, the loopback success page shows the AnyRouter mark, a masked key (sk-ar-v1-xxxx…yyyy), default model/preset, and next terminal commands. Exchange runs before the HTML response so the mask is real.
  • login auto-strategy — anyr login and first-run onboarding no longer show a 3-option menu. Browser sign-in runs when a GUI looks available; device code is used automatically over SSH/headless or if the browser handoff fails. Force a route with --device / --device-code, --paste, or --key. Full secrets are never printed — only prefix…suffix + storage location.
  • post-login defaults — after interactive login, optional wizards pick a default model (top-ranked first) and a default coding agent; both persist in ~/.anyrouter/config.yaml (--yes skips them).
  • TUI key confirm — after pick/generate/paste/login, the launcher shows ✓ Using … · sk-ar-v1-…xxxx on the main screen.

0.2.4

✨ Features

  • launcher tab bar — the TUI now shows every agent as a tab strip (┌ Claude Code ┐ Codex Grok …) under a simple ▲ AnyRouter brand line; ‹ › switches agents in place. Settings gained inline ‹ › cycle hints, a read-only Preset row, and an inline API-key row with a ✓/✗ status badge.
  • API key manager — Enter on the API key row opens a key table (name / masked key / age) listing your AnyRouter keys; pick one to swap to it (server-side reveal), generate a new key in place, log in with the browser when you have no credentials, or fall back to pasting a key.
  • models --json — npx @anyr/cli models --json prints the catalog as a machine-readable { auto, preset, models[] } object (each model carries id, name, owned_by, context_length, and a pinned flag), matching the --json scripting flag already on config get and skills.

🐛 Bug Fixes

  • preflight: a rejected API key (401/403) now says so — "Your AnyRouter API key was rejected" with a setup / dashboard-keys hint — instead of the misleading "model isn't serving" block.
  • preflight: the pre-launch failure block now renders the AnyRouter brand header (same wordmark as the TUI) instead of a bare error.
  • docs: fixed a broken first-run login link in the README (https://cli/authorize → https://anyrouter.dev/cli/authorize).

0.2.3 (2026-08-01)

✨ Features

  • cli: dialog model picker, faceted search, and key hot-swap (5914502)
  • cli: fuzzy model picker over name/owner, pricing hints, in-TUI browser keys (b83cfb9)
  • cli: fuzzy-searchable key picker matching model picker UX (1c4a5d6)
  • cli: in-TUI model and key pickers, onboarding, terminal marks, faster launch (7b33ba6)
  • cli: pricing-aware model options + browser keys command (e13d974)
  • telemetry: email engagement tracking and client-type attribution (ebbdc9d)

🐛 Bug Fixes

  • cli: repair the broken key-manager import that crashed the binary on startup (b546af5)
  • cli: suppress SGR colour codes when stdout is not a TTY (13f1f8b)
  • lint: clear biome errors blocking main (ccb8cc2)
  • replace workspace: deps with real versions for npm publish (7421bdb)

⚡ Performance

  • cli: cache launch probes to cut startup latency (58ec1d0)

Dependencies

  • The following workspace dependencies were updated
    • dependencies
      • @anyr/ai-sdk-provider bumped from 0.1.4 to 0.1.6

0.2.0 (2026-06-26)

✨ Features

  • Fuzzy model picker — type to filter the model list in the launcher; matches by subsequence on the model id with contiguous matches ranked first (typing glm surfaces glm-5.2 before gemini).
  • Pre-launch credit check — warns before launch if your credit balance is $0 on a paid model, with a clear pointer to top up or use a free model. Soft-fails silently if the check can't run, and never false-alarms free-tier usage.
  • opencode rich provider config — opencode now launches through a full OPENCODE_CONFIG_CONTENT provider config (correct base URL + model context window) instead of flat OPENAI_* env, so it sizes context correctly.

🔧 Maintenance

  • Removed the non-functional gemini launch target — gemini-cli speaks the Gemini-native protocol and can't reach the gateway's OpenAI/Anthropic endpoints. Supported targets are now Claude Code, Codex, Grok, and opencode.

0.1.6 (2026-06-19)

🔧 Maintenance

  • Smaller, faster install — the CLI now ships as a single self-contained file.

0.1.5 (2026-06-19)

🐛 Bug Fixes

  • Fixed npx @anyr/cli printing nothing on some setups.

0.1.4 (2026-06-19)

✨ Features

  • <tool> opens a launcher to review your settings before starting; add --ok to start right away.
  • Running npx @anyr/cli with no arguments reopens your last-used agent.
  • Checks the selected model is reachable before launching, with a clear message if it isn't.

🔧 Maintenance

  • Settings now live in ~/.anyrouter/ (existing settings migrate automatically).

0.1.3 (2026-06-18)

🔧 Maintenance

  • patch release

0.1.2 (2026-06-18)

🔧 Maintenance

  • bump @anyr/sdk to ^0.1.3 — inherits automatic transport retries (connection errors, timeouts, 408/409/429/5xx with exponential backoff + jitter) and per-request timeout/abort

0.1.1 (2026-06-18)

✨ Features

  • centralize all network access through @anyr/sdk and launch off the shared target registry
  • target registry for 7 coding agents — Claude Code, Codex, Grok, OpenCode, Cursor, Cline, and Windsurf — via spawn-launch or editor config export
  • animated TUI: spinner, gradient text, logo reveal, and an adaptive settings renderer
  • onboarding flow and runtime-env override support

🐛 Bug Fixes

  • seamless logo reveal, preset timer cleanup, and held-key decoding