Run anypick (or anypick tui). You land on Apps. That screen is the product:
it answers one question for each coding tool —
What should Claude Code / Codex use right now?
Everything else (accounts, gateways, proxies) exists to feed that answer.
anypickApps at a glance
anypick / apps
Routes for Claude Code and Codex
› Claude grok/work · grok-code-fast-1 ● ready
Codex not connected ○ not set
──────────────────────────────────────────
Claude uses grok/work
model grok-code-fast-1 · enter to preview a different route
enter change route a accounts g gateways p proxies d diagnoseRead it top to bottom:
- Each row is an app — Claude Code or Codex. Gemini and Kiro are not here; they only switch their own login under Accounts.
- The middle column is who powers it (account, gateway, …) and which model AnyPick set.
- The status on the right is plain English: ready, native, not set, or attention.
- The two lines under the dashed rule always say what enter will do before you press it.
- The footer is the full keymap for this screen. If a key is not listed, it does nothing here.
What each status means
| You see | Meaning | What to do |
|---|---|---|
| ready | AnyPick already routes this app | enter if you want a different source or model |
| native | The app’s own login works, but AnyPick is not managing the route yet | Optional — only press enter if you want AnyPick to take over |
| not set | No route yet | enter → connect app |
| attention | Something needs a fix (missing key, failed check, …) | enter or d diagnose |
Build a route (the main flow)
You never edit config files by hand. Press enter on an app and walk four short screens. Nothing is written until the last confirmation.
1. Home — choose the app
Move with ↑ ↓ (or j k). Highlight Claude or Codex. Press enter.
- Footer says connect app when the row is empty or only native.
- Footer says change route when it is already ready.
2. Source — who should power it?
anypick / apps / Claude / source
Native accounts
› Anthropic · work@example.com current live login
Anthropic · personal
Gateways & proxies
openrouter-work gateway · default model set
grok/work account proxy
Saved setups
@work-stack preset
──────────────────────────────────────────
Route Claude through grok/work
account proxy · model routing is configured next
enter choose route a accounts g gateways esc backThree groups, in plain language:
| Group | Pick this when… |
|---|---|
| Native accounts | You want Claude or Codex on its own provider login. AnyPick switches the live credential; the app keeps its own model picker. |
| Gateways & proxies | You want another provider, an API key endpoint, a multi-account pool, or the Proxy Hub. AnyPick will set models next. |
| Saved setups | You already saved a full recipe with --save / a preset (@name). |
Only safe pairings appear. You will not see “Claude → random incompatible thing” — empty list means save an account (a) or add a gateway (g) first.
Native row → outcome is Switch …; other rows → Route … through ….
3. Models — only when needed
Skipped for native same-provider switches.
Otherwise:
anypick / apps / Claude / models
› default grok-code-fast-1
sonnet (same as default)
opus (same as default)
haiku (same as default)
──────────────────────────────────────────
…
enter edit model · a preview route- Codex — one default model.
- Claude — default plus optional sonnet / opus / haiku roles (for tools that call those names).
Edit a line with enter, type or pick a suggestion, then a (or the confirm key shown) to open the preview.
4. Preview — read, then activate
anypick / apps / Claude / preview
Activate this route for Claude?
· bind Claude → grok/work
· set model grok-code-fast-1
· start local proxy if needed
· write client config
enter activate route esc backThis is the same plan the CLI would run. If a step fails later, AnyPick rolls back what it already changed. Press enter to apply, esc to go back and change source or models.
After a successful activate you return to Apps with ● ready and the new source · model on the row.
A concrete example
Goal: Claude Code should use your Grok work login.
- Log in with Grok’s tool once (AnyPick never signs in for you).
- In AnyPick: a → Accounts → save that login as
work(oranypick add account grok --current --name work). - Back on Apps, highlight Claude, enter.
- Under Gateways & proxies, pick grok/work.
- Set the default model if asked.
- Read the preview → enter.
Claude is now routed. Open Claude Code as you usually do; AnyPick already wrote what it needs. Same path works for Codex, gateways like OpenRouter, pools, or a preset.
Keys on Apps
| Key | Action |
|---|---|
| enter | Connect or change route (source → models → preview) |
| a / tab | Accounts |
| g | Gateways |
| p | Proxies |
| d | Diagnose |
| t | Tray runtime (start/stop, flip bare-command default) |
| Shift+D | Start or reuse the Tray, then close this UI |
| h | Help for this screen |
| q | Close the terminal UI (background Tray/proxies stay up) |
Other boards (supporting cast)
tab cycles Apps → Accounts → Gateways → Proxy → Apps. esc on a secondary board returns to Apps.
| Board | You use it to… |
|---|---|
| Accounts | Save, switch, refresh, import/export, delete logins |
| Gateways | Store endpoint + API key profiles; bind them to apps like a proxy |
| Proxy | Start/stop local translators, pools, Proxy Hub |
Those boards never replace Apps for “what does Claude use?” — they stock the shelves that Apps picks from.
Accounts keys
| Key | Action |
|---|---|
| enter | Switch, view active, or save current login |
| v | Details and usage |
| a | Add a login |
| i / e | Import / export |
| r | Refresh |
| s | Save a changed live login over its snapshot |
| d | Delete |
| f | Filter by provider |
Gateways keys
| Key | Action |
|---|---|
| enter | Manage which apps use this gateway |
| m | Edit default models |
| e | Edit endpoint |
| a / d | Add / delete |
| f | Filter by provider |
Proxy keys
| Key | Action |
|---|---|
| enter | Start, manage apps, or save an unsaved login |
| m | Manage apps, then edit models |
| s / r | Stop / restart |
| d | Disable auto-start |
| l | Logs |
| p | Multi-account pool on/off |
| space | Pause or enable a pool member |
| f | Failover guard on a pool |
Status glyphs
| Glyph | On Apps | Elsewhere |
|---|---|---|
● |
ready | live / using |
○ |
not set / stopped | saved / stopped |
◐ |
attention | changed (live login ≠ snapshot) |
× |
failed | failed / unavailable |
With NO_COLOR=1 the shapes still carry meaning; plain terminals fall back to
*, o, !, x.
Closing the UI
- q — leave the terminal UI; Tray and proxies keep running.
- Shift+D — start or reuse the Desktop Tray, then close the TUI.
- t —
runtime / tray: start/stop Tray, flip the bare-anypickdefault with f.
Same route building exists as commands (anypick use claude --with grok/work)
for scripts; the UI is not a weaker mode. See Getting started
for install and first save, and Proxies for pools and hub.