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
- 🧩 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
- 🖥️ Headless:
clauth daemonruns the refresh and auto-switch loop with no TUI and publishesstatus.jsonfor a menu-bar app to read - 🛠️ Quality-of-life: browse and resume past sessions under any account, per-profile model routing, 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.
flowchart LR
P["profiles in<br/>~/.clauth"]
P -->|"clauth work"| S["swap ~/.claude<br/>credentials + env, in place"]
P -->|"clauth start work"| I["launch claude in an<br/>isolated config dir"]
ANT["Anthropic<br/>(api + platform)"] -. "poll usage, refresh tokens" .-> P
P -. "auto-switch at your limit" .-> P
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; CLAUTH_NO_UPDATE=1 turns that off. 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 session as a profile:
clauth
# Select "+ new from current profile", enter a name, e.g. "work"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 |
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 |
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 |
| Plugin | Claude Code wiring + per-profile runtime, with one-key fixes |
clauth ships a plugin that exposes your profiles to a live Claude Code session via MCP:
/plugin marketplace add uwuclxdy/clauth
/plugin install clauth@clauth
| Tool | What it does | Quota |
|---|---|---|
list_profiles |
every profile with cached 5h/7d usage, provider, tier, live-session flag, observed throughput | zero (disk cache) |
which |
which profile owns the current session | zero (filesystem) |
switch |
relink the global active profile | zero |
delegate |
hand a headless prompt to another account and return the answer (or a job_id) |
real usage window on the target account |
delegate_result |
fetch a backgrounded delegate's result | 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 operator memory, plugins, and hooks, 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_profiles, which, switch, 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. Tokens only ever go to Anthropic. 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 and the status.json read contract |
| Claude Code plugin | the MCP server and delegate in full |
| Tokens and cost | where the dashboard reads from, what the cost figure means |
| Security | where credentials live and how they move |
cargo build --release
cargo clippy --all-targets # CI gates clippy -D warnings + fmt --check + test on every push
cargo testTip
cargo test showcase -- --ignored --nocapture drives 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