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 loginwalk providers → models → optional reasoning-effort, merge every selected provider connection, then public alias and identity defaults (--yesskips). 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/clipreview share the same chrome. anyr usage— prints credits remaining, today's spend, and lifetime used fromGET /credits. Non-interactive;--jsonfor scripting. Honors--keyandANYROUTER_API_KEYso CI/scripts do not need a saved profile.
🐛 Bug Fixes
npx @anyr/clidefault bin — ship acliexecutable (same target asanyr) so npx's last-segment lookup no longer fails withcli: not found/ "could not determine executable".anyr/anyrouter/arstay in place.- pack-smoke login help —
validate-installnow 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. --helpLaunch agents — spawn targets (includingpool/poolside) are generated from the target registry so they cannot be omitted from--help(#2283).- documented commands —
usage,logs,whoami,account, andlogin --yesare parser-tested so they cannot regress as Unknown command/flag (#2276). modelshonors--key/ANYROUTER_API_KEY— listing the public catalog no longer requires~/.anyrouter/config.yaml, and--keyis a documented flag onmodels --help(#2278).login403 from GET /credits — only HTTP 401 is "key rejected". A 403 from credits (WAF/transport) falls through to a/modelsprobe 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.10entries restored (#2193).
0.2.10 (2026-08-13)
✨ Features
- clack prompts — login and onboarding use
@clack/promptsfor 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 (
--yesskips).
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-installsmoke-tests a cleannpxinstall 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 loginand 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(--yesskips them). - TUI key confirm — after pick/generate/paste/login, the launcher shows
✓ Using … · sk-ar-v1-…xxxxon 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▲ AnyRouterbrand 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 --jsonprints the catalog as a machine-readable{ auto, preset, models[] }object (each model carriesid,name,owned_by,context_length, and apinnedflag), matching the--jsonscripting flag already onconfig getandskills.
🐛 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
- dependencies
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
glmsurfacesglm-5.2beforegemini). - Pre-launch credit check — warns before launch if your credit balance is
$0on 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_CONTENTprovider config (correct base URL + model context window) instead of flatOPENAI_*env, so it sizes context correctly.
🔧 Maintenance
- Removed the non-functional
geminilaunch 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/cliprinting nothing on some setups.
0.1.4 (2026-06-19)
✨ Features
<tool>opens a launcher to review your settings before starting; add--okto start right away.- Running
npx @anyr/cliwith 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/sdkto^0.1.3— inherits automatic transport retries (connection errors, timeouts,408/409/429/5xxwith exponential backoff + jitter) and per-request timeout/abort
0.1.1 (2026-06-18)
✨ Features
- centralize all network access through
@anyr/sdkand 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