Swap Claude Code accounts
in one keystroke.
Snapshot each login as a named profile, then switch in place. No browser, no re-login.
macOS · Keychain-native · single binary
drive the Claude Code harness with any of these
- Anthropic
- OpenRouter
- Ollama
- z.ai
- DeepSeek
- Moonshot
Built for two kinds of heavy user
One keeps hitting Claude's usage cap. The other wants different models behind the same harness.
the rate-limited
You hit the usage cap mid-session.
So you keep a second subscription for exactly that moment. yoink re-snapshots the live token before each switch (Claude Code refreshes it silently), turning a browser round-trip into a two-second command.
$ claude
⚠ usage limit reached, resets in 2h 14m
$ yoink work
✔ switched to work (work@company.com)
$ claude
fresh window. back to it.
the model operator
You'd rather run GLM or a local model.
yoink registers any Anthropic-compatible endpoint as a profile: it validates the key against /v1/models, hands you a searchable catalog, and manages the env overrides Claude Code reads.
- ●z-ai/glm-4.7selected
- ○z-ai/glm-4.7-air
- ○z-ai/glm-4.6
- ○thudm/glm-4-9b
Three moves per switch
The same three ordered writes every time, against the files Claude Code already manages. Nothing hidden.
- 1macOS Keychain
Re-snapshot the live login
Claude Code refreshes tokens in the background. yoink folds the live one back in first, so nothing is lost.
read·security find-generic-password -s "Claude Code-credentials" - 2~/.claude.json
Write the target credentials
The target blob returns to the Keychain, its oauthAccount identity to ~/.claude.json. Atomic writes, chmod 600.
write·~/.claude.json → oauthAccount - 3~/.claude/settings.json
Reconcile the env block
A Claude account clears the seven ANTHROPIC_* overrides; an external provider writes them. Nothing else changes.
write·~/.claude/settings.json → env
Small tool, sharp edges filed down
A menu you drive by keyboard
Bare yoink lists every profile. One key per action, and every action loops back to the list.
One compiled binary
bun build --compile bakes the CLI, deps, and runtime into one file.
It won't leak a token into git
It offers a .gitignore entry before writing a key, and warns when settings.json is tracked.
Every write is atomic
Temp file, then rename. You never get a half-written store, and secrets stay at chmod 600.
One harness, any backend
yoink points Claude Code at any Anthropic-compatible endpoint, OpenRouter, Ollama, GLM, anything that answers /v1/models.
It writes only seven ANTHROPIC_* keys into settings.json. Everything else in the file stays intact.
Stop re-logging in.
Register each account once. After that, a switch is a single keystroke, or the profile name as the only argument.
$ curl -fsSL https://yoink.codes/install.sh | bash