claude-multi-account
Run multiple Claude CLI accounts with shared settings, plugins, marketplace sync, and backup/restore.
Why?
Automatic application updates (v1.0.29 working branch)
Each menu launch starts a nonblocking check of https://pair.ghackk.com/updates/stable.json. If the server is unavailable, the updater checks the signed stable.json asset on the latest GitHub release. The application keeps running while the check happens. Failed checks back off for 15 minutes; offline operation uses the last working installation.
The manifest is signed with a pinned Ed25519 key and contains a version, expiry, Node requirement, exact archive size and SHA-256 hash. Downloads try the server-hosted archive, then the GitHub release archive. On Windows the transport fallbacks are Node HTTPS, curl, then PowerShell; macOS/Linux use Node HTTPS then curl. All paths require HTTPS. Invalid signatures, expired manifests, corrupt archives and downgrades are rejected.
Updates install application files into ~/.multi-claude-updates/versions/, then atomically switch the selected version after validation. The next menu launch uses that version. The prior installed package and cached version remain available if a cached release is incomplete. Account profiles, credentials, backups and usage history are never part of the update directory. No administrator access, package-manager switching or lifecycle scripts are needed.
This updates the running application, not npm/pip/Homebrew/Scoop's installed-version records. multi-claude --version reports the selected application version. multi-claude --update-status shows the base version, selected version and last result; multi-claude --update-now waits for a check. Set MULTI_CLAUDE_AUTO_UPDATE=0 to disable background checks. Explicit checks remain available.
Versions before 1.0.29 need a one-time upgrade to obtain this updater. A source Git checkout is no longer silently pulled by the pip launcher; application updates follow the signed release feed.
Maintainers publish a normal npm pack --ignore-scripts archive as a GitHub release asset. The release helper local-usage/publish-channels.py VERSION also calls local-usage/publish-update-feed.py VERSION, uploading the archive to the server, checking its hash remotely, atomically activating the manifest, and mirroring the signed manifest on GitHub. Signing credentials stay outside the public repository. Existing versioned archives are immutable. Renew the manifest before its 89-day expiry if no new release is made; clients remain usable offline after expiry.
Claude CLI stores all config in a single ~/.claude/ directory — so you're locked to one account at a time. Switching means logging out, logging in, and losing your settings.
claude-multi-account fixes this:
- Isolated profiles — each account gets its own config directory, no conflicts
- Shared settings — define MCP servers, env vars, plugins, and CLAUDE.md once — auto-applied everywhere
- Plugin & marketplace management — enable plugins globally or per-account, browse marketplace indexes
- Direct launch — run
claude-workorclaude-personaldirectly from any terminal, no menu needed - Cloud backup & restore — securely sync all profiles to the cloud and restore on any machine
- One command — launch any account instantly from an interactive menu
Get Started in 10 Seconds
Features
|
Multi-Account Management |
Shared MCP & Settings |
|
Plugins & Marketplace |
Global CLAUDE.md |
|
Backup & Restore |
Export / Import Profiles |
|
Cloud Backup & Restore |
Direct Profile Launch |
|
Auto Dependency Detection |
Run from Repo |
Install
Pick any method — they all give you the claude-menu (or multi-claude) command.
One-liner (recommended)
# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/ghackk/claude-multi-account/master/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/ghackk/claude-multi-account/master/install.ps1 | iex
npm
npm install -g @ghackk/multi-claude
pip
pip install multi-claude
Homebrew (macOS / Linux)
brew install ghackk/tap/multi-claude
Scoop (Windows)
scoop bucket add multi-claude https://github.com/ghackk/scoop-multi-claude
scoop install multi-claude
AUR (Arch Linux)
yay -S multi-claude
Manual (git clone)
# Linux / macOS
git clone https://github.com/ghackk/claude-multi-account.git ~/claude-multi-account
bash unix/install.sh
# Windows
git clone https://github.com/ghackk/claude-multi-account.git $HOME\claude-multi-account
[Environment]::SetEnvironmentVariable("PATH", "$HOME\claude-multi-account;" + [Environment]::GetEnvironmentVariable("PATH", "User"), "User")
Then open a new terminal and run claude-menu.
Menu Overview
Main Menu
======================================
Claude Account Manager
======================================
Current Accounts:
1. claude-work [logged in] (last used: 02 Mar 2026 10:30 AM)
2. claude-personal [logged in] (last used: 01 Mar 2026 08:15 PM)
======================================
1. List Accounts
2. Create New Account
3. Launch Account
4. Rename Account
5. Delete Account
6. Backup Sessions (Local)
7. Restore Sessions (Local)
8. Shared Settings (MCP/Skills)
9. Plugins & Marketplace
E. Export Profile (Token)
I. Import Profile (Token)
C. Cloud Backup
R. Cloud Restore
0. Exit
======================================
Shared Settings (Option 8)
Manage universal settings applied to all accounts on launch:
| Option | Action |
|---|---|
| 1 | Edit MCP + Settings (opens in editor) |
| 2 | Edit Skills/Instructions (CLAUDE.md) |
| 3 | View current shared settings |
| 4 | Sync shared settings to ALL accounts |
| 5 | Show MCP server list |
| 6 | Reset shared settings |
Plugins & Marketplace (Option 9)
Browse marketplace indexes and manage plugins across accounts:
| Option | Action |
|---|---|
| 1 | Enable plugin for ALL accounts |
| 2 | Enable plugin for one account |
| 3 | Disable plugin (shared) |
| 4 | Disable plugin (one account) |
| 5 | Browse marketplace plugins |
| 6 | Marketplace Management (add/remove/sync) |
Export / Import Profile (Options E & I)
Transfer a profile between machines using a copy-pasteable base64 token:
| Option | Action |
|---|---|
| E | Export a profile — generates a compact token (~5 KB) containing credentials, settings, and launcher |
| I | Import a profile — paste the token to restore the account on any machine |
The token bundles only essentials (credentials, settings, CLAUDE.md, launcher) — not cache or conversation history.
Cloud Backup & Restore (Options C & R)
Sync all profiles to the cloud and restore on any machine:
| Option | Action |
|---|---|
| C | Cloud Backup — select profiles and optional folders (shared settings, plugins, etc.) to upload securely |
| R | Cloud Restore — enter your route key to download and restore all profiles on a new machine |
Profiles are automatically registered on PATH after restore, so you can run claude-work immediately.
Direct Profile Launch
Every profile you create is automatically available as a command:
# No need to open the menu — just run the profile name directly
claude-work
claude-personal
On Linux/macOS/Termux, symlinks are created in ~/.local/bin/. On Windows, the accounts directory is added to your user PATH. Profiles created, imported, or restored are all registered automatically.
How It Works
┌─────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ You pick │ ───> │ Shared settings │ ───> │ Claude CLI │
│ an account │ │ + plugins are │ │ launches with │
│ from menu │ │ merged in │ │ isolated config│
└─────────────┘ └──────────────────┘ └─────────────────┘
Each account gets its own config directory (~/.claude-<name>). On every launch, shared settings from ~/claude-shared/ are deep-merged into the account — MCP servers, env vars, preferences, plugins, marketplace indexes, and CLAUDE.md instructions all stay in sync.
Merge Strategy
Settings are deep-merged with shared settings winning on conflict:
| Scenario | Result |
|---|---|
| Key exists only in account | Kept |
| Key exists only in shared | Added |
| Key exists in both (simple value) | Shared wins |
| Key exists in both (nested object) | Recursively merged |
For CLAUDE.md, shared content is inserted between auto-managed markers at the top. Account-specific instructions below the markers are preserved.
Folder Structure
~/
├── claude-multi-account/ # Git repo (can be added to PATH directly)
│ ├── claude-menu.ps1 # Windows menu script
│ ├── claude-menu.bat # Windows launcher
│ ├── windows/ # Windows-specific scripts
│ └── unix/ # Linux/macOS scripts
│
├── claude-accounts/ # Account launchers (auto-created)
│ ├── claude-work.bat/.sh # Account launcher
│ └── claude-personal.bat/.sh
│
├── claude-shared/ # Shared config (applied to all accounts)
│ ├── settings.json # MCP servers, env vars, preferences, enabledPlugins, extraKnownMarketplaces
│ ├── CLAUDE.md # Global instructions & skills
│ └── plugins/ # Shared plugin & marketplace data
│ └── marketplaces/ # Cached marketplace indexes
│
├── claude-backups/ # Timestamped backup archives
│
├── .claude-work/ # Account: work (auto-created)
├── .claude-personal/ # Account: personal (auto-created)
└── .claude-<name>/ # Account: <name>
Documentation
- Installation Guide — setup for all platforms
- Usage Guide — full walkthrough of every feature
Platform Support
Requirements
- Claude CLI installed and available in PATH
- Windows: PowerShell 5.1+ (dependencies auto-detected via winget/scoop)
- Linux/macOS: Bash 3.2+ (the macOS system Bash works). Dependencies including
curl,jq, Python 3, and Node.js are checked on first run. - Termux: Supported — dependencies installed via
pkg
Contributing
Contributions are welcome! Feel free to open an issue or submit a pull request.
Credits
Built by Gyanesh Kumar
License
Usage history (v1.0.26)
Usage reporting is always on. To merge another PC's history, run node ~/claude-accounts/usage/report.js merge /path/to/usage.db. Usage is keyed by normalized email and reply ID: renaming claude-zf to claude-zafff, creating another profile for the same email, or reporting from a laptop with empty history never resets the server's all-time totals. Restored copies are deduplicated.
The menu installs background session hooks, launcher triggers, and a 15-minute Windows scheduled task, macOS LaunchAgent, or Linux cron entry. Requires Node.js 22.13+. The dashboard shows UTC periods, model/month/device totals, account limits, and Claude Code's stats-cache comparison. Usage tracking details.
macOS supports both Apple Silicon and Intel, including profile-specific Keychain credentials for account transfer and usage limits. Account renaming preserves the Keychain login. npm installation does not require lifecycle scripts, including with npm 12's defaults. Run multi-claude after installation to set up launchers and usage history.
Metadata
Release files for multi-claude 1.0.34
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| multi_claude-1.0.34.tar.gz | 12.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| multi_claude-1.0.34-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.9 kB
Release files / multi_claude-1.0.34.tar.gz
| Download URL | multi_claude-1.0.34.tar.gz |
|---|---|
| Size | 12.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5d2df12e79d50f084510069056d50566c33d4c7910015e3509a22841ad1e4ff8
|
|
BLAKE2b-256 checksum How to use checksums |
d72c0b4b9db1a6fa63c93e14ab03b1458314dfe644e471e92801fc9bf952bb49
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.4
|
Release files / multi_claude-1.0.34-py3-none-any.whl
| Download URL | multi_claude-1.0.34-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
643f1b4b4c26007bc0adaeaf77538ef109705ff37946a417eb03242b94b0432f
|
|
BLAKE2b-256 checksum How to use checksums |
e8a35c3c451a5b13c897eebb9e891ce4e1515b881d8d91ba59392fb8ca2e18c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.4
|