CLI Changelog

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

AnyRouter CLI — Changelog

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

0.1.37 (2026-10-28)

Errors from anyr now name the next step to take, and per-command help uses one heading style, so the commands read the same from one to the next.

  • Errors name a next step, so you know what to run after a failure
  • Per-command help uses one heading style across all anyr commands

0.1.36 (2026-10-28)

/model inside anyr fx now lists AnyRouter's chat models, so you can switch models without leaving the session. /effort is not available for custom connections in fx.

  • /model inside anyr fx now lists AnyRouter's chat models that support tool calls, not only the one you launched with
  • /effort is not available for custom connections in fx

0.1.35 (2026-10-28)

anyr auth status and the other screens now print correctly in every shell, without rows drifting to the right. The launcher is a plain top-left screen, and a timeout now tells you what happened and what to try next.

  • anyr auth status renders correctly in every shell: each row starts at the left edge instead of stepping to the right
  • The launcher is a simpler top-left screen without a centered frame, and long rows are cut to the width of your terminal
  • A timeout now says what timed out and what to try next

0.1.34 (2026-10-27)

Run fx through AnyRouter with anyr fx --model . This release also adds launchers for Qwen Code, Goose, Aider, Crush and Kilo, maps portable flags such as --continue and --yolo to each agent's own spelling, and starts a warm launch in about 3 ms.

  • anyr fx --model launches fx with an anyrouter connection in ~/.fx/settings.json; it changes only that entry, never stores your key, and stops without writing if the file can't be read
  • New launchers: anyr qwen, anyr goose, anyr aider, anyr crush and anyr kilo
  • Portable flags such as --continue, --print, --system and --yolo map to each agent's own flag; an agent with no matching flag skips it with a note
  • A warm launch starts the agent in about 3 ms because the model catalog is cached; anyr config get, set and unset manage launcher.* settings
  • anyr auth status shows account, credits, plan and key as plain rows above the action menu

0.1.33 (2026-10-24)

anyr now updates itself in the background without making any command wait, and you can roll back with one command. Pi understands the portable --skills-off and --tools-off flags, and launches in scripts no longer log in, install or prompt unless you ask.

  • Updates are staged in the background at most once a day and applied on the next run; anyr update --status shows what happened and anyr update --rollback restores the previous build
  • Auto-update stays off in CI, without a terminal, with --json, inside launched agents, and with ANYR_NO_AUTO_UPDATE=1
  • anyr pi accepts --skills-off and --tools-off and passes them as Pi's --no-skills and --no-tools; anyr claude maps --skills-off to --disable-slash-commands, and agents with no such switch skip the flag with a note
  • --json, ANYR_OUTPUT=json and --quiet never start a login, even on a terminal; they exit 4 with the key hint
  • A missing agent is installed only on an explicit yes: y/N on a terminal, --install to skip the question, and a scripted run exits 3 with the install command
  • anyr pi fetches the model catalog once per launch

0.1.32 (2026-10-24)

anyr whoami now shows your name and email, and anyr chat prints a footer with the model, tokens, timing and cost under each reply. The device relay detects dead connections and reconnects with backoff, and it follows the base URL of your profile.

  • anyr whoami shows name, email, account, masked key, default model and config path; a default-model picker is included
  • anyr chat prints a footer under the latest reply: model, tokens, timing and cost
  • anyr claude and the other launchers pass unknown flags through to the agent; --yolo maps to each agent's own flag
  • anyr relay detects half-open sockets, backs off with jitter and bounds memory; it dials the websocket and pool API from your profile base URL

0.1.31 (2026-10-24)

Every anyr command can now answer in JSON with clear exit codes, so scripts and coding agents can drive it. Launching an agent can connect the AnyRouter MCP gateway for you, the help is shorter, keys never show in error messages, and the download is about a fifth smaller.

  • --json on every command, errors as JSON too, and one exit-code table: 0 ok, 1 error, 2 usage, 3 not found, 4 auth, 5 rate limited
  • anyr --help shows the everyday commands; anyr help --all lists everything
  • anyr claude, codex, opencode and grok can connect the AnyRouter MCP gateway at launch; turn it off with --no-mcp or anyr mcp auto off
  • API keys are masked in every error message, including ones echoed back by a server
  • anyr relay keeps one device per machine, so two machines on one key no longer replace each other
  • anyr relay start and anyr relay doctor say how to get the Perplexity Decider running when it is missing, stopped or needs a Mac
  • The binary is about 20% smaller
  • Update with the install script: curl -fsSL https://anyrouter.dev/cli.sh | bash

0.1.30 (2026-10-24)

A stability release. Launching Pi, Grok or OpenCode from anyr now always sends your AnyRouter key, even with a newer agent version or a separate login of its own. --preset works with a plain API key, and the relay names each device after the machine and can start your local model servers.

  • anyr pi works with current Pi releases, which used to answer with 401 invalid_api_key
  • anyr grok sends your AnyRouter key even when you are signed in to Grok, and leaves that Grok login untouched
  • anyr opencode works with OpenCode 2 instead of falling back to OpenCode's own provider and key
  • anyr --preset launches with a regular API key; a missing preset is reported on the first request
  • anyr relay start names the device after this machine, keeps that name, and anyr relay rename changes it
  • anyr relay start starts fm serve and the Perplexity Decider app when they are installed but not running, and stops them on exit; --no-launch turns this off
  • anyr artifact rm --json prints a result for scripts
  • Update with the install script: curl -fsSL https://anyrouter.dev/cli.sh | bash

0.1.29 (2026-10-24)

The anyr command line covers more of the platform: compare one prompt across models, split a task between a planning and a building model, hand work to another coding agent, manage presets and paired devices, wire the MCP gateway into your agent, and look up a call or the shared pool.

  • anyr eval runs one prompt across several models and prints answers, latency, tokens and cost side by side
  • anyr task plans with one model and implements with another; anyr delegate hands a task to Claude Code, Codex or OpenCode
  • anyr presets manages presets, and --preset launches an agent on one
  • anyr mcp add wires the AnyRouter MCP gateway into Claude Code, Codex, OpenCode or Cursor
  • anyr generation looks up a call's cost and provider; anyr pool shows shared pool health
  • anyr relay devices lists, renames, pools and removes paired devices; anyr artifact ls pages with --cursor and --all
  • Update with the install script: curl -fsSL https://anyrouter.dev/cli.sh | bash

0.1.28 (2026-10-24)

The anyr command line gains a typed Decisions command, and piping its output into head or another short-lived reader no longer prints a panic.

  • anyr decision sends a typed Decisions request from flags or JSON on stdin
  • Chat-agent launchers refuse Decisions models instead of failing mid-session
  • Piping output into a reader that closes early, such as head, now exits quietly
  • Update with the install script: curl -fsSL https://anyrouter.dev/cli.sh | bash

0.1.27 (2026-10-24)

The anyr CLI 0.1.27 adds anyr embed, model filters and a model detail view, anyr byok test and rm, and spend limits, endpoint limits and expiry for new API keys. Update with anyr update.

  • anyr embed turns text, a file or stdin into embeddings from the terminal, with --json for loading a vector store
  • anyr models --free, --type, --owner, --search and --sort help you find a model, and anyr models show prints its price, context and providers
  • anyr byok test checks a saved key (or one you have not saved yet), anyr byok rm deletes it, and anyr byok providers lists who accepts your own key
  • anyr keys create takes --limit, --reset, --endpoints and --expires for CI keys, and --quiet prints only the secret
  • anyr keys show and anyr keys update let you check and change a key's limit, endpoints, expiry and state
  • Install or update: curl -fsSL https://anyrouter.dev/cli.sh | bash

0.1.26 (2026-10-24)

The anyr CLI 0.1.26 adds anyr logs for your recent requests and anyr transactions for your credit ledger. Update with anyr update.

  • anyr logs lists your latest requests with model, provider, status, tokens, cost and latency; add --status error to see only failures
  • anyr logs shows one request, and anyr logs sessions groups requests by session
  • anyr transactions shows your credit ledger with signed amounts; filter with --type purchase
  • Both commands accept --json, and a key without the needed permission now exits with code 4 and names the missing scope
  • Install or update: curl -fsSL https://anyrouter.dev/cli.sh | bash

0.1.25 (2026-10-24)

The anyr CLI 0.1.25 makes anyr relay easier to run and control. Run it in the background, check on it, stop it and read its logs from any terminal. Update with anyr update.

  • anyr relay start --detach runs the relay in the background; anyr relay stop and anyr relay logs --follow manage it
  • anyr relay status shows whether the relay is connected, which models it serves and how many requests it handled, with --json for scripts
  • anyr relay pool on|off and anyr relay models enable|disable are remembered between runs, so a saved choice survives a restart
  • anyr relay doctor checks your Mac, local servers and network, and prints the fix for each failure
  • Apple's on-device model now answers through fm serve without a model name error
  • Install or update: curl -fsSL https://anyrouter.dev/cli.sh | bash

0.1.24 (2026-10-23)

The anyr CLI 0.1.24 can stream a chat reply and shows model types when you pipe anyr models.

  • The CLI can stream a reply from the chat completions endpoint
  • Piped anyr models output has a type column
  • Restricted keys now get an error that names the missing scope, with one error format across commands
  • anyr codex passes the context window for a concrete model

0.1.23 (2026-10-23)

The anyr CLI 0.1.23 makes anyr relay serve on-device models by default.

  • anyr relay serves on-device models by default, and joins the pool unless you pass --no-pool

0.1.22 (2026-10-23)

The anyr CLI 0.1.22 adds commands to publish apps and artifacts, and lets the relay serve several local endpoints.

  • anyr publish and anyr apps work with any kind of app, and anyr api accepts --data @file or - for stdin
  • anyr artifact publish, ls, rm and visibility manage your artifacts
  • anyr relay can serve several local endpoints and routes each request by model
  • A visibility change now says whether it waits for review or is listed
  • anyr decision shows the server error and a working help example
  • anyr upgrade on the beta channel can take a newer stable release

0.1.21 (2026-10-21)

anyr claude and anyr pi now default to anyrouter/free and set the right context window.

  • anyr claude and anyr pi now default to anyrouter/free
  • anyr claude and anyr pi set the context window for the model you pick

Retired JavaScript CLI (0.2.x and earlier)

The entries below belong to the retired @anyr/cli npm package. They are kept for history only and do not describe the current anyr binary.

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

AnyRouter routes requests to third-party models. Models and outputs are provided as is, with no warranty; you use them at your own risk. Disclaimer