v0.6.2built 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 · Linux · Windows · 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. 1credential store

    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·Keychain on macOS · ~/.claude/.credentials.json elsewhere
  2. 2~/.claude.json

    Write the target credentials

    The target blob returns to the credential store (Keychain on macOS, credentials file on Linux and Windows), its oauthAccount identity to ~/.claude.json. Atomic writes, owner-only.

    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
Get Yoink

Stop re-logging in.

Register each account once, then switch from your menu bar or your terminal. Same profiles, same keystroke, two ways in.

Menu bar app

One click from the macOS menu bar. No terminal, no re-login.

Notarized by Apple macOS 12+ v0.1.5

Command line

One line in your shell. macOS, Linux, and Windows.

$ curl -fsSL https://yoink.codes/install.sh | bash
Windows, npm, and more