v0.5.0built for Claude Code

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.

~ · zsh

$ 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.

add provider · OpenRouter✔ key valid
glm412 models
  • z-ai/glm-4.7selected
  • z-ai/glm-4.7-air
  • z-ai/glm-4.6
  • thudm/glm-4-9b
navigate selectesc cancel

Three moves per switch

The same three ordered writes every time, against the files Claude Code already manages. Nothing hidden.

  1. 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. 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. 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.

Claude Code

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