Features · How it works · Install · Quickstart · Plugin · Alternatives · FAQ · Wiki
Juggle every Claude Code account from one terminal: switch in a keypress, track live 5h / 7d usage, auto-switch before a limit stops you, even hand a task to another account from inside Claude.
Most account tools do one half. clauth pairs instant switching between multiple Claude Code accounts with a live usage monitor, then wires the two together so a fallback chain moves you off an exhausted account before Claude Code ever blocks. Works with Claude Pro, Max, Team, Enterprise OAuth accounts or any custom API endpoint. Linux, macOS, Windows.
Font is kinda off on the recording, I promise it looks better than this.
- 🔄 Switch accounts in one keypress or
clauth <name>: OAuth (Pro / Max / Team / Enterprise) or a custom API endpoint, plan tier detected for you - 📊 Monitor live 5h / 7d rate-limit bars, a global token dashboard with API-equivalent cost, plus a live Claude status-incident feed
- 🤖 Auto-switch down a fallback chain the moment an account hits its limit, with weekly-window and spend-ceiling gates so a long run never stalls and never surprises you with a bill. Opted-in accounts queue their auto-start, opening 5h windows
5h / accountsapart instead of all at once - 🧩 Run in parallel: several accounts at once in isolated config dirs, or a clean headless session with none of your global memory, plugins, or hooks
- 🔌 From inside Claude: an MCP plugin lets a live session list, switch, or delegate a whole prompt (even headless) to another account, and tells a session when the account behind it changed
- 🖥️ Headless:
clauth daemonruns the refresh and auto-switch loop with no TUI and publishesstatus.jsonfor a menu-bar app to read, or serves that feed, the account switch, the herdr panes with their terminal streams, Claude Code session history, and prompts and key presses into a pane to another machine over HTTPS with--listen - 🔀 Codex too: adopt or mint a ChatGPT login as a codex profile, run
codexunder it in its ownCODEX_HOME, and let a separate codex chain rotate accounts between sessions (Codex) - 🛠️ Quality-of-life: browse and resume past sessions under any account, per-profile model routing,
start --autoto pick the account by the models a session will run, shell completions, signed self-updates, multi-instance safe
Full reference: the wiki.
Claude Code stores its session in ~/.claude/.credentials.json (OAuth tokens) and the env block of ~/.claude/settings.json (base URL, API key). clauth keeps a per-profile snapshot of both. A switch swaps those two in place and leaves the rest of ~/.claude/ untouched. clauth start takes a different route: it launches claude against a temporary ~/.claude mirror, so several accounts run at once.
Linux, macOS, Windows (Git Bash / MSYS2).
cargo install clauth# no Rust toolchain needed; --nocargo forces a binary download
curl -fsSL https://raw.githubusercontent.com/uwuclxdy/clauth/mommy/install.sh | bashBinary installs update themselves in the background, checksum and signature verified before anything is replaced; the Config tab's auto-update toggle turns that off, and CLAUTH_NO_UPDATE=1 overrides it. Cargo installs upgrade with cargo install clauth. On first launch clauth offers to install shell completions, asking before it touches your shell rc. More: Install.
Capture your current Claude Code login as a profile:
clauth capture workor in the TUI: clauth, Setup tab, + new, then the + capture current login row.
Repeat while logged in to a different account, then switch in the TUI (⏎ + confirm) or directly by name:
clauth work
# switched to 'work'Run claude under a profile without touching the global config:
clauth start personal -- --model haiku
# spawns claude with personal's credentials in a per-profile CLAUDE_CONFIG_DIRFor a clean, blind session (auth only, no global memory, plugins, or hooks):
clauth start --isolated personal -p < prompt.txt
# pass the prompt on stdin: a variadic claude flag (e.g. --disallowedTools a,b,c)
# would otherwise swallow a trailing positional prompt forwarded through clauth| Command | Does |
|---|---|
clauth |
open the TUI |
clauth <profile> |
switch and exit |
clauth start <profile> |
run claude under that account, in its own config dir |
clauth login <profile> |
add or re-authenticate an account, browser or API key; the browser login also takes a code from a link opened on any device (ssh, no browser) |
clauth list / clauth which |
account table with cached usage / who owns this session |
clauth sessions, resume, info |
browse past Claude Code sessions and resume one anywhere |
clauth daemon |
headless refresh + auto-switch loop, optionally serving the REST API (--listen) |
Every command and flag: Quickstart.
The active profile shows in orange. Usage bars are cached locally, so they stay on screen even when the Anthropic API is rate-limited or offline. ← → move between the eight tabs, ? lists the keys for the tab you are on.
| Tab | What it holds |
|---|---|
| Overview | switch and reorder accounts |
| Usage | per-account window breakdown |
| Tokens | global Claude Code token stats + API-equivalent cost across all models |
| Setup | endpoint, key, env, auto-start, per-profile model routing, account presets |
| Fallback | chain editor |
| Config | appearance, scheduler, auto-switch defaults |
| Status | Claude incident feed |
| Services | the shunt gateway, delegates, the Claude Code plugin and herdr |
clauth ships a plugin that exposes your profiles to a live Claude Code session via MCP. Install it from the TUI: Services tab, plugin row, f, confirm. That drives Claude Code's own installer against a plugin tree clauth materializes locally, so there is nothing to add by hand. /plugin marketplace add uwuclxdy/clauth then /plugin install clauth@clauth works too; it registers the same plugin against this repo instead, and clauth re-points it at the local tree the next time it runs. Either way the plugin's tools are clauth mcp, so the binary has to be on your PATH.
A registration that breaks repairs itself: clauth mcp heals one at startup, so does the daemon's tick, and clauth start heals one before claude launches. That last one covers what a hook cannot, since a marketplace too broken to load means the plugin never loads and its hooks never fire.
| Tool | What it does | Quota |
|---|---|---|
profiles |
every account with cached 5h/7d usage, provider, tier, live-session flag, observed throughput, and the account states worth a look before spending (disabled and no api key, both of which refuse a delegate; login expired, which refuses one except on an account that runs its own endpoint with its own key; a canceled subscription, which never refuses); scope: "session" names the account this session runs on |
zero (disk cache) |
switch_profile |
relink the global active profile; the reply says what it does to this session | zero |
delegate |
hand a headless prompt to another account and return the answer (or a job_id) |
real usage window on the target account |
monitor |
check, collect or wait on backgrounded delegates' results, or wait on clauth's state (active profile, its usage cache, the credentials file) | zero (filesystem) |
delegate fields, kill and resume rules, the manual mcpServers entry: Claude Code plugin.
clauth is the only one of these that pairs account switching with a live usage monitor and ties them together with an auto-switch chain, in a single TUI.
| Tool | What it does | Compared to clauth |
|---|---|---|
| claude-swap | CLI account switcher (token backup/restore) | no usage view, no auto-switch |
| CCSwitcher, claude-account-switcher | macOS menu-bar switchers | macOS-only, no fallback chain |
| cc-account-switcher | credential-swap scripts | no TUI, no usage |
| Claude-Code-Usage-Monitor | real-time usage monitor with predictions | monitoring only, single account |
| claude-code-statusline | rate-limit status line inside Claude Code | in-session display, no switching |
CLAUDE_CONFIG_DIR by hand |
manual per-account config dirs | what clauth start automates |
How do I switch between multiple Claude Code accounts without logging out? Install clauth, save each logged-in session as a profile once, then switch with clauth <name> or a single keypress in the TUI. No browser, no re-login.
Can I run Claude Code with multiple accounts at the same time? Yes. clauth start <profile> launches claude in an isolated CLAUDE_CONFIG_DIR, so parallel sessions don't share identity, settings, or billing caches.
How do I run Claude Code without my global CLAUDE.md, plugins, or hooks? clauth start --isolated <profile> keeps the account's auth but drops your CLAUDE.md, plugins, hooks, skills, MCP servers and tools, leaving a clean session for headless work or blind evals. The MCP delegate tool takes isolated: true for the same thing.
Can Claude Code switch accounts automatically when I hit the 5-hour limit? Yes: put accounts in the fallback chain and clauth switches to the next member with headroom the moment the active one crosses its threshold. It runs in the TUI or headless via clauth daemon.
Is there a Claude Code MCP server / plugin to switch accounts from inside a chat? Yes. clauth ships a plugin that runs as an MCP server (clauth mcp), so a live session can list accounts, switch_profile, or delegate a headless prompt to another account without leaving the chat.
How do I monitor Claude Code usage and rate limits? The Overview tab shows color-coded 5h (and 7-day) bars per account with reset times; the Usage tab breaks down every rate-limit window the API reports; the Tokens tab adds a global token dashboard with API-equivalent cost.
Does it work with Claude Pro, Max, Team, and Enterprise? Yes. OAuth profiles cover all paid tiers (plan auto-detected, including Max 5x / 20x). API-endpoint profiles cover the Anthropic API or any compatible proxy.
Where does clauth store my Claude Code credentials? Locally under ~/.clauth/, with 0600 permissions on Unix. Claude tokens only ever go to Anthropic, codex tokens only to OpenAI. See SECURITY.md.
More, including what to check when something misbehaves: FAQ.
| Page | Covers |
|---|---|
| Install | every install path, update verification, completions |
| Quickstart | first run, every command, flag, and env var |
| Interface and keys | the eight tabs, every keybinding, the action menus |
| Configuration | both TOML files key by key, model routing, storage layout |
| Auto-switch | thresholds, exclusion rules, burn-aware mode, spend ceilings |
| Daemon | clauth daemon, the REST API, and the status.json read contract |
| Claude Code plugin | the MCP server and delegate in full |
| herdr plugin | the clauth popup in herdr, the key, the per-pane account tag |
| Tokens and cost | where the dashboard reads from, what the cost figure means |
| Codex | ChatGPT logins as codex profiles: capture, sessions, the codex chain |
| Security | where credentials live and how they move |
cargo build --release
cargo clippy --all-targets
cargo testCI gates fmt --check, clippy -D warnings, the test suite, cargo-deny and cargo audit on every push to mommy and every pull request; a doc-only change is skipped.
[!TIP]
cargo test showcase -- --ignored --nocapturedrives the real interactive TUI on fake data against a throwaway home dir (no network, never compiled into the binary). Handy for screenshots.
clauth handles live OAuth tokens and replaces its own binary over the network, so SECURITY.md lays out the trust model: where credentials live, every host clauth contacts, how updates get verified, and how to switch each behavior off. Found something exploitable? Report it privately through the repo's Security → Report a vulnerability.
MIT

