Multi-CLI
Run 17 AI coding tools across multiple accounts at once — no re-login, no switching.
- Source repo
- Spielewoy/multi-cli
- Stars
- ★ 186
- Last updated
- 2mo ago
- License
- MIT
- Primary language
- PowerShell
- FA score
- 48/100 · Major gaps
At a glance
- How it runs
- Works with
- Portable with changesCodex · Claude Code
- Cost
- Free, no paid service needed
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A developer holding both a personal and a work Claude Code subscription who wants both signed in at the same time.
- Not a fit if
- Solo developers with a single account and no CLI switching need
- Teams that require a graphical account-management UI
- Environments without Bash or PowerShell 5.1
- Source review
- 48/100 · Major gaps
What does this agent do, and when should you use it?
Multi-CLI is a cross-platform command-line manager that gives Claude Code, Codex CLI, Gemini CLI, Cursor CLI and 13 other AI coding tools independent account profiles, so several accounts can stay usable side by side. Isolation is chosen per tool: a file overlay separates only declared credential files, a process secret injects one credential into the child process, and OS-user or isolated tool-home modes go further. Beyond profile creation, it ships session-transfer (continue), credential-free templates, schema-v2 export/import, legacy migration and a doctor diagnostic. It is implemented as Bash and PowerShell scripts installed from install/, stores profiles under ~/MultiCliProfiles by default, and creates per-profile shell aliases such as claude-cli-work. Multi-CLI never calls a model itself — the managed AI tool still performs all model traffic.
Running multi-cli new <tool>/<name> scaffolds a profile using the narrowest isolation the target tool supports (file overlay, process secret, OS user or isolated tool home) and writes a shell alias such as claude-cli-work into ~/MultiCliProfiles/bin/. Invoking multi-cli <tool>/<name> or multi-cli launch <tool>/<name> [-- args...] starts that tool under the selected profile; tools that use a process secret first need multi-cli auth set, which stores the key in the OS credential store. Day-to-day maintenance is covered by list, clone, rename, delete, status and stats. The continue command copies session state between codex, claude-cli, gemini-cli and commandcode profiles (never credentials), template save produces credential-free schema-v2 templates, export/import moves schema-v2 profiles, migrate upgrades legacy profiles, and doctor [--deep] audits the setup and runtimes. Behaviour is tunable through MULTICLI_HOME, MULTICLI_OVERRIDE_BINARY, MULTICLI_REPO and MULTICLI_INSTALL_DIR.
- A developer holding both a personal and a work Claude Code subscription who wants both signed in at the same time.
- Someone whose Codex account hits its usage limit and who needs to move the existing conversation to another account.
- A freelancer using separate Gemini CLI or Cursor CLI accounts per client, with credentials that must not leak between them.
- A team that wants to distribute credential-free profile templates and let each member fill in their own keys.
- A developer working across macOS, Linux and Windows who wants one consistent account-management workflow.
How do you install or deploy this agent?
Check prerequisites first: Bash 3.2 or newer on macOS/Linux, Windows PowerShell 5.1 on Windows; jq 1.7.1 is installed automatically when missing. Installing from source requires Git.
macOS / Linux:
git clone https://github.com/Spielewoy/multi-cli.git
cd multi-cli
./install/install.sh --localWindows PowerShell:
git clone https://github.com/Spielewoy/multi-cli.git
cd multi-cli
.\install\install.ps1 -LocalRestart the terminal if multi-cli or a new profile alias is not found afterwards.
How do you use this agent?
Diagnose the environment, then create and launch your first profile:
multi-cli doctor
multi-cli new claude-cli/work
multi-cli claude-cli/workTools that use a process secret (for example cursor-cli) need one extra credential step:
multi-cli new cursor-cli/work
multi-cli auth set cursor-cli/work
multi-cli cursor-cli/workRequest a fully separate tool home when the tool supports it:
multi-cli new codex/personal --isolatedPreview and then perform a session move between accounts:
multi-cli continue codex work personal --dry-run
multi-cli continue codex work personal
multi-cli codex/personalList every command:
multi-cli helpWhat are this agent's strengths and limitations?
- Supports 17 AI coding tools and picks the narrowest available boundary for each — file overlay, process secret, OS user or isolated tool home — instead of copying whole roots by default.
- The continue command transfers conversation state for codex, claude-cli, gemini-cli and commandcode, so a user can keep working after an account hits its limit, and it never copies credentials.
- Ships parallel Bash and PowerShell implementations covering macOS, Linux and Windows, with automatic per-profile shell aliases and Windows Start Menu shortcuts for GUI profiles.
- Profiles can be cloned, renamed, exported, imported and saved as credential-free templates, which makes multi-machine and team rollout practical.
- MIT-licensed, purely local scripts with no extra server component; profile data lives under ~/MultiCliProfiles and stays inspectable.
- Isolation strength is capped by each upstream tool: AGY CLI, Antigravity, Kiro, Windsurf and Zed rely on OS-user isolation, and Claude Code only supports the API-key path on macOS/Linux.
- Only schema-v2 profiles, templates and archives are portable, so legacy profiles must be migrated with multi-cli migrate before export or template workflows.
- Runtime prerequisites are real: Bash 3.2+ or PowerShell 5.1, plus jq 1.7.1 which may need to be fetched during install.
- Session transfer covers only four tools; other tools' conversations cannot be moved between accounts.
- Process-secret tools require a separate auth set step, and the secret is stored in the OS credential store rather than in a file you control.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Multi-CLI This agent | 48 · Major gaps | CLIFree | ★ 186 | 2mo ago | PowerShell | Codex · Claude Code |
| Claudexor | 76 · Good | CLIFree + model costs | ★ 516 | today | TypeScript | Codex · Claude Code |
| AI Switcher | 58 · Major gaps | CLIFree | ★ 134 | 4d ago | Rust | Codex · Claude Code |
| Clausona Account Manager | 74 · Some gaps | CLI | ★ 56 | 2d ago | TypeScript | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
README explicitly states narrowest-supported isolation boundaries (file overlay/process secret/OS user/isolated tool home), credentials stored in OS credential store, and session transfer never copies credentials; SECURITY.md requires fail-closed on unsupported boundaries, so least_privilege and sensitive_data_handling score 2. However delete only says 'after confirmation' with no concrete confirmation flow evidence, so user_confirmation is 1. Data flow has an isolation-mode table but no per-tool data-flow detail, scoring 2. Dependency security: CI pins actions to commits and SHA256-verifies actionlint/bashcov/simplecov, but jq auto-install and curl|bash uninstall lack verification evidence, scoring 2. External effects (install/uninstall scripts, OS user creation) lack rollback guidance, so external_effects and rollback are 1. Source attribution is only the MIT copyright line with no upstream tool attribution, scoring 1.
README command tables, isolation table, and SECURITY boundary descriptions are mutually consistent, self_consistency 2. Dependency availability requires Bash 3.2, PowerShell 5.1, jq 1.7.1 but lacks a detailed per-platform compatibility matrix, scoring 1. Failure messages only point to doctor/tools with no concrete error codes or message examples, failure_messages 1.
Targets multi-account concurrency across 17 tools and three platforms, audience_and_scenarios 2. Isolation-mode table clearly bounds capabilities, capability_boundaries 2. Trigger precision: many commands but no guidance on when to choose which mode, trigger_precision 1. Environment fit has platform columns and a support-matrix link, environment_fit 2.
README has a contents list and sectioned command tables, information_architecture 2. Install steps include source install and dependency notes, install_notes 2. Naming stability is weakened by schema v1/v2 migration and legacy behavior differences, naming_stability 1. Examples are limited to a quick start with no FAQ, examples_and_faq 1. Known limitations only link to support-matrix without inline listing, known_limitations 1. LICENSE is full MIT, license 2. Version badge v1.0.0 but no CHANGELOG, versioning_changelog 1. Maintenance responsibility is only a generic 'maintainer' in SECURITY and the publisher is unverified, maintenance_responsibility 1.
Command output, profile aliases, and session transfer improve multi-account usability, output_usability 2. Clear marginal value for users needing concurrent accounts, marginal_value 2. But costs include installing jq, creating OS users, and elevated terminals, with no performance/cost comparison evidence, cost_benefit 1.
README claims mostly map to docs links but lack per-claim mapping to code/tests, claim_traceability 1. CI workflows and test scripts corroborate that some tests exist, but no test results or coverage numbers are provided, cross_source_corroboration 1. Facts and inferences (e.g., 'narrowest boundary') are not clearly separated in docs, fact_inference_separation 1.
- Uninstall runs a remote script via curl|bash with no visible checksum verification, a supply-chain risk.
- The delete command only states 'after confirmation' with no evidence of the concrete confirmation mechanism.
- External effects such as jq auto-install and OS user creation lack rollback guidance.
- Schema v1/v2 migration and legacy behavior differences mean upgrades may change isolation behavior.
- Publisher identity is unverified; maintenance responsibility and update path are unclear.
- This is a static source review with no commands or tests executed; confidence is low.