Skip to content

CLI reference

Every AnyPick command, global flag, exit code, and environment variable.

Updated View as Markdown

The binary is anypick. The first bare interactive run asks whether future bare runs should open the terminal UI or desktop Tray.

Global flags

Valid on every command.

Flag Effect
--json Machine-readable output
-v, --verbose Verbose logging
-q, --quiet Minimal output
--dry-run Print the plan; write nothing
--reveal Show secrets — dangerous
--no-input Never prompt, even on a TTY
-y, --yes Skip destructive confirmations
--trace Print internal step names, without secrets
--tui Open the Terminal UI for this run
--tray Open the desktop Tray for this run

Bindings

anypick use [client] [--with <source>] [--current]
                     [--model <id>] [--save <name>]
anypick run [client] [--with <source>] [--model <id>]
anypick current [client]
anypick link <client> [--with <source>] [--model <id>]
anypick unlink [client]
anypick reset [client]
Command Description
use Set what a client uses by default
use --current Re-apply the stored global binding
use --save <name> Bind, and also save the result as a preset
run Launch a client with its effective binding
current Show effective bindings
link / unlink Project-scoped bindings for the current directory
reset Remove AnyPick-managed configuration for a client

--with accepts an account (grok/work), a gateway name, a pool (pool:gemini), the Proxy Hub (hub:default), or a preset (@work-stack).

Inventory

anypick list [accounts|gateways|clients|presets]
anypick providers
anypick clients

list with no argument prints all four. ls is an alias.

Adding sources

anypick add account [provider] [--current] [--new]
    [--name <name>] [--source <id>]
    [--api-key [key]] [--region <region>]
anypick add gateway [name] --provider <id> --endpoint <url>
    [--api-key <key> | --api-key-env <var>]
    [--model <id>] [--models <id...>]

--current snapshots the login that is live now; --new stashes it first so the provider’s CLI prompts for a fresh one. --source gemini-cli|antigravity picks which Gemini sign-in to read. --api-key saves a key you already hold instead of a login — currently kiro only — and prompts for the value when it is omitted; --region pins the API region for it.

Accounts

anypick account list [provider]
anypick account refresh <provider> [name] [--all]
anypick account remove <provider> <name>
anypick account export <provider> <name> -o <file>
anypick account import <provider> <name> -i <file> [-f]

refresh with no name refreshes the live login. rm is an alias for remove, ls for list.

Gateways

anypick gateway list
anypick gateway show <name>
anypick gateway edit <name> [--endpoint <url>] [--api-key <key>]
    [-m <id>] [--models <id...>]
anypick gateway remove <name>

show masks the API key unless you pass the global --reveal.

Presets

anypick preset list
anypick preset show <name>
anypick preset remove <name>

Preset names are written without the @ here; the @ prefix is only how you reference one in --with.

Proxies

anypick proxy
anypick proxy status [provider] [name]
anypick proxy start [provider] [name] [-p <port>] [--host <host>]
anypick proxy stop [provider] [name]
anypick proxy enable <provider> <name> [-p <port>] [--host <host>]
    [--auth-mode auto|public|api] [--no-start]
    [--oauth-source auto|gemini-cli|antigravity]
anypick proxy config <provider> <name> [-p <port>] [--host <host>]
    [--auth-mode …] [--oauth-source …] [--no-restart]
anypick proxy disable <provider> <name>
anypick proxy logs <provider> [name] [-n <lines>] [-f]

config has the alias set. --host defaults to 127.0.0.1. Omitting -p on enable takes the first free port. stop with no arguments stops every running account proxy.

Pools

anypick proxy pool status <provider>
anypick proxy pool enable <provider> [-p <port>] [--host <host>] [--no-start]
anypick proxy pool member <provider> <account> <on|off>
anypick proxy pool disable <provider>

Proxy Hub

anypick proxy hub status
anypick proxy hub enable [-p <port>] [--host <host>] [--start]
anypick proxy hub source <provider> <account> <on|off>
anypick proxy hub owner <model> <provider> <account>
anypick proxy hub preview
anypick proxy hub start
anypick proxy hub stop

Bind with --with hub:default after at least one source is enabled. owner picks which account wins when two sources advertise the same model id; preview refreshes catalogs and prints routes plus conflicts.

Plugins

anypick plugin list
anypick plugin add <dir>
anypick plugin enable <name>
anypick plugin disable <name>
anypick plugin trust <name>
anypick plugin remove <name>

add installs a local directory disabled. enable is the trust decision and prompts; it needs the global -y when there is no TTY. trust re-pins the package digest after the plugin’s code changes. See Plugins.

Surfaces and supervisor

anypick tui
anypick tray
anypick tray start
anypick tray status
anypick tray stop

anypick tui always opens the Apps / Terminal UI. Bare anypick tray opens or starts the Desktop Tray on macOS (elsewhere it reports that the desktop surface is unavailable — use tray start for the supervisor alone). start, status, and stop are explicit lifecycle commands for automation and diagnostics. stop quits the supervisor and stops every AnyPick-owned proxy.

Health

anypick doctor [target]
anypick doctor --fix [--dry-run] [-y]

See Troubleshooting for what --fix is allowed to touch.

Updating

anypick update           # install the latest release
anypick update --check   # report only; install nothing

update reads the latest tag from the npm registry, compares it with the running version, and — if there is something newer — runs npm install -g anypick@<version> with the exact version it just reported. npm’s own output is passed straight through. With --check it prints the comparison and exits 0 either way, so a shell script can gate on --json:

anypick update --check --json
{ "current": "1.0.0", "latest": "1.1.0", "updateAvailable": true, "updated": false }

Shell completion

anypick completion zsh     # also: bash | fish

Add it to your shell startup file, or evaluate it directly:

source <(anypick completion zsh)

Exit codes

Code Meaning
0 Success
1 Operational failure
2 Invalid usage — missing client or source, bare use without a TTY
3 Not found
4 Auth required
5 Capability conflict, unsupported transport, or no binding
6 Health failure
7 Missing required dependency, such as an external proxy binary
8 Malformed or untrusted import envelope
9 Import exceeds size or file-count limits
130 Cancelled with SIGINT

Environment variables

AnyPick

Variable Effect
ANYPICK_HOME Data directory. Default ~/.anypick
ANYPICK_UI=tui|tray Override the saved surface for a bare interactive run
ANYPICK_NO_PLUGINS=1 Skip loading plugins entirely

| ANYPICK_DEBUG=1 | Echo internal events to stderr | | NO_COLOR | Drop all color; glyphs still carry state |

Provider overrides

Variable Effect
OPENCODE_PROXY_UPSTREAM Override the OpenCode upstream base URL
OPENCODE_MODEL_METADATA_URL Override model metadata source; none disables enrichment
GEMINI_PROXY_UPSTREAM Override the Gemini upstream base URL
GEMINI_CODE_ASSIST_UPSTREAM Override the Code Assist endpoint
GROK_PROXY_UPSTREAM Override the Grok upstream base URL
KIROLINK_BIN Path to an external kirolink binary
CLAUDE_BINARY, CODEX_BINARY, KIRO_BINARY Launch a specific client binary
Navigation

Type to search…

↑↓ navigate↵ selectEsc close