A personal plan and a company plan
You use your own subscription for side projects and your employer's for work, and the two should never share a session.
v0.5.0 What's new: mcc usage --all
Open-source CLI · macOS & Linuxmcc gives each account its own login, its own command, and a copy of your main setup. Type work for one account and claude for the other. No logging out in between.
$ mcc list NAME ACCOUNT 5H WEEK LAST USED SYNC default ★ — 85%! (35m) 62% (3d) just now — work Acme 12% (4h) 30% (5d) 48m ago ✓ ● 2 profiles · 1.6 GB on disk · add one with `mcc add <alias>` $ mcc usage PROFILE 5-HOUR RESETS IN WEEKLY RESETS IN UPDATED default ★ 85%! 35m 62% 3d 4h just now work 12% 4h 10m 30% 5d 2h 48m ago $ work # Claude Code on the work account $ claude # your default account, unchanged $ mcc project set work ✓ ~/code/app: `mcc run` starts `work` here → when it is at its limit, `mcc run` asks whether to wait (the default) or start it anyway; `mcc list` shows every project $ mcc run ● starting `work` — the default for ~/code/app (5h 12%, week 30% used · 48m ago)
Your login, settings, skills, agents and MCP servers all live in ~/.claude. That holds up until a second account shows up.
You use your own subscription for side projects and your employer's for work, and the two should never share a session.
Your 5-hour window runs out halfway through a refactor. The account that still has room is one logout and one login away.
A client pays for the account, so the sessions, history and billing for their project belong on their login, not yours.
CLAUDE_CONFIG_DIR by handYou get a bare profile. None of your skills, agents, hooks, plugins or MCP servers come with it.~/.claude yourselfThe copy drags credentials along, keeps paths that point back at the original directory, and falls out of date the day you add a skill to your main setup.mcc add work creates ~/.mcc/profiles/work, a work launcher and a shell alias, then opens the login. claude stays exactly as it was. Rename a profile later with mcc rename work job; it stays logged in.
Cloning copies settings, CLAUDE.md, skills, agents, commands, hooks and MCP servers, and shares your default's plugins instead of copying them. Credentials, history and sessions stay behind, and paths to copied items are rewritten to the new profile. To resume sessions across accounts, opt each profile in with mcc share work: only sessions are shared, never logins.
mcc sync work pulls new skills, settings and MCP servers from your default profile and keeps the changes you made in the profile: a file changed on both sides is reported as a conflict, not overwritten. mcc diff work shows what differs, --dry-run previews the sync, and every file it overwrites or removes is backed up first.
mcc usage shows each account's 5-hour and weekly usage and when it resets. Anything at 80% gets a !, at 95% a !!, so it reads the same without colour. mcc usage --all looks every account up live for one run, with a risk notice each time, and caches what it finds.
A failed add rolls itself back. Your rc file is backed up before each edit. mcc delete logs the profile out and removes only what mcc created.
mcc project set work makes work the profile mcc run starts in this repository. At its limit, mcc run asks first, with waiting as the default: mcc never switches accounts for you. eval "$(mcc env)" points plain claude, IDE extensions and scripts at the same profile.
An alias sets one variable. mcc also checks the name against every command your shell knows, copies and rewrites your setup, runs and verifies the login, and keeps the profile in sync later.
Each profile's 5-hour and weekly limits, as Claude Code last reported them to mcc statusline, or as the last mcc usage --all found them. Plain mcc usage reads no login and touches no network.
--json for scripts/usage in Claude Code. The command still exits 0mcc statusline install. Asking Anthropic with each profile's login is opt-in: mcc config set usage.live true, or mcc usage --all for one run of every account, with a risk notice; what it finds is cached for the next mcc usage$ mcc usage PROFILE 5-HOUR RESETS IN WEEKLY RESETS IN UPDATED default ★ ████░░░░░░ 42% 2h 14m (Sat Oct 10 16:00) ██░░░░░░░░ 18% 3d 4h (Wed Oct 14 00:00) 12m ago lab — (no recent usage cached; run /usage in Claude Code) work █████████░ 85%! 35m (Sat Oct 10 14:21) ██████████ 96%!! 3d 4h (Wed Oct 14 00:00) just now
Download the prebuilt mcc for your platform. You need Claude Code, not Rust.
$ curl -fsSL https://raw.githubusercontent.com/luongnv89/mcc/main/install.sh | shClone your default setup into a new profile, then finish the sign-in in your browser.
$ mcc add work --cloneStart Claude Code on that account by typing its name. Your default claude keeps working.
$ workClaude Code takes its config from CLAUDE_CONFIG_DIR, which defaults to ~/.claude. An mcc profile is a directory plus a launcher that sets that variable. Nothing is patched or wrapped.
workLauncher in ~/.local/bin, plus a shell alias
CLAUDE_CONFIG_DIR=~/.mcc/profiles/workThe profile's own login, settings and skills
claudeThe same Claude Code binary you already have
No. Each profile signs in separately through claude auth login. Clone and sync never copy credentials or account identity (oauthAccount, userID), and never copy history, sessions or projects.
claude setup?Your default profile stays in ~/.claude and keeps the claude command, and sync is one-way: it copies from the default into a profile, never back. Three things do reach the default: a cloned profile shares its plugins, so installing or removing a plugin in it does so for the default too (clone with --copy-plugins to avoid that); items you link with mcc link are the default's own files; and the opt-in mcc statusline install sets the default's statusLine, after backing up its settings.
By default, nothing: mcc list, mcc usage and mcc run read the usage mcc statusline cached on your machine. Only if you turn on the live lookup (mcc config set usage.live true), or run mcc usage --all for one live look at every account (it prints a risk notice each time), does mcc ask Anthropic's usage endpoint, each profile with its own token. The token is never printed, logged or written to disk. mcc has no telemetry or analytics. Details are on the privacy page.
By default it is what Claude Code itself passes to its status line, the session's 5-hour and weekly rate limits, which mcc statusline caches. The opt-in live lookup uses the same endpoint as Claude Code's /usage screen. That endpoint is undocumented and may change. If it does, mcc shows unavailable instead of failing.
macOS and Linux, with zsh, bash or fish. mcc detects your shell and rc file on first run. Windows is not supported.
Not with Homebrew: brew install luongnv89/tap/mcc builds mcc with Homebrew's own Rust. Not with the install script either: it downloads a prebuilt, checksum-verified binary from the latest GitHub release (falling back to building with cargo when a release has none for your platform). Building from a clone or with cargo install needs cargo (Rust 1.88 or newer). Get Rust from rustup.rs.
mcc delete work logs the profile out, clears its keychain entry, and removes its directory, launcher, shell alias and registry entry. To remove mcc entirely, see Uninstall.
Free and open source under Apache-2.0. You need Claude Code. Building from source also needs Rust (cargo).
One-liner
$ curl -fsSL https://raw.githubusercontent.com/luongnv89/mcc/main/install.sh | shHomebrew (macOS and Linux)
$ brew install luongnv89/tap/mccWith Cargo
$ cargo install --git https://github.com/luongnv89/mcc --lockedFrom a clone
$ git clone https://github.com/luongnv89/mcc && cd mcc && ./install.shThen run mcc add work --clone. First run detects your OS, shell and rc file automatically.