# yoink vs claude-swap

Source: https://yoink.codes/compare/claude-swap/

claude-swap calls itself a "multi-account switcher for Claude Code": it saves accounts with `cswap add`, shows each one's 5-hour and 7-day usage, and can switch on its own near a limit. yoink switches Claude Code accounts too, without usage tracking, and adds ChatGPT (Codex), Kimi Code, Gemini and Copilot logins plus API-key providers in 13 coding agents.

## How each one switches a Claude account

Both tools save a Claude Code login once and restore it later without a browser sign-in, and both use the macOS Keychain on a Mac and files elsewhere.

- **claude-swap.** Log in with an account, run `cswap add`, log in with the next one and run `cswap add` again. `cswap switch` rotates to the next account, and `cswap switch 2` or an email or alias picks one. Its README says a switch holds Claude Code's own credential locks while writing, so it never interleaves with a token refresh.
- **yoink.** `yoink add` saves the live login and runs `claude auth login --claudeai` for the next account. `yoink work` or `yoink use work` switches. Before each switch, yoink re-saves the live credential into the active profile, then writes the target credential and its `oauthAccount` block in `~/.claude.json`. [How it works](https://yoink.codes/docs/how-it-works/#a-switch-step-by-step) has the sequence.

## Feature by feature

| Feature | claude-swap | yoink |
| --- | --- | --- |
| Save and switch several Claude Code accounts | [Yes](https://github.com/realiti4/claude-swap#usage) | [Yes](https://yoink.codes/guides/switch-claude-code-accounts/) |
| 5-hour and 7-day usage display | [Yes](https://github.com/realiti4/claude-swap#usage) | No |
| Switches on its own near a limit | [Yes](https://github.com/realiti4/claude-swap#automatic-switching) | No |
| Two accounts at once, one per terminal | [Yes](https://github.com/realiti4/claude-swap#run-multiple-accounts-at-the-same-time-session-mode) | No |
| ChatGPT (Codex), Kimi Code, Gemini, Copilot logins | Not documented | [Yes](https://yoink.codes/docs/subscriptions/) |
| API-key providers written into other coding agents | Not documented | [Yes](https://yoink.codes/docs/harnesses/) |
| macOS menu bar | [Yes](https://github.com/realiti4/claude-swap#menu-bar-macos), with the `menubar` extra | [Yes](https://yoink.codes/docs/desktop/), a separate app |
| Windows | [Yes](https://github.com/realiti4/claude-swap#data-locations) | [Yes](https://yoink.codes/docs/getting-started/#supported-platforms) |
| JSON output for scripts | [Yes](https://github.com/realiti4/claude-swap#json-output-for-scripting) | [Yes](https://yoink.codes/docs/security/#no-secrets-in-json-output) |
| Needs a language runtime | [Yes](https://github.com/realiti4/claude-swap#requirements), Python 3.12 or later | [No](https://yoink.codes/docs/getting-started/#requirements), a single binary |
| License | MIT | MIT |

## Choose claude-swap if

- You only use Claude Code and want to see each account's usage at a glance.
- You want switching to happen for you as an account nears its limit, which is what `cswap auto` does. yoink only switches when you ask it to.
- You run two accounts at the same time in separate terminals.
- You already use `uv` or `pipx` for Python tools.

## Choose yoink if

- You also use Codex, Kimi Code, Gemini or GitHub Copilot and want one tool for every login.
- You want one API key, from OpenRouter, DeepSeek, Ollama or any compatible endpoint, written into several coding agents.
- You prefer a single binary with no runtime, from the install script or PowerShell (or `npm install -g yoink-cli`, if you already have Node).

## Can you use both?

Yes, with one rule: pick one of them for Claude Code accounts. Both rewrite the same live Claude Code credential, and each keeps its own saved copies, so switching with one leaves the other's idea of the active account out of date. A setup that works is claude-swap for Claude accounts and usage, and yoink for providers and the other vendors' logins.

## FAQ

### Which one lets me run two Claude accounts at the same time?

claude-swap, through its session mode, which gives each terminal its own account. yoink keeps one live Claude Code login at a time, because a switch rewrites the shared credential, so every new session starts on the account you switched to last.

### Can claude-swap connect an OpenRouter key to opencode?

Its README does not document writing API-key providers into other coding agents. yoink does this with `yoink add` and `yoink connect openrouter --to opencode`.
