About claude-multi.
claude-multi is a CLI that runs multiple Claude Code instances side-by-side. Each is pointed at a different AI provider with its own config directory.
A config directory is a single shared state.
Claude Code stores everything in ~/.claude: settings, MCP servers, plugins, skills, and history. The moment you want to try a second model, share plugins between an experimental setup and your primary one, or A/B two providers on the same project, you start juggling environment variables, copying files around, and silently losing context.
claude-multi gives every provider its own alias and config directory. One alias per provider (claude-glm, claude-deepseek, claude-anthropic), each rooted under ~/.claude-multi/. Plugins and skills symlink from your primary install, so you maintain them in one place.
No daemons. No background services. No telemetry. Every "instance" is a real directory you can cd into and inspect with the tools you already use.
What we optimize for.
Zero magic
Every instance is a real directory at ~/.claude-multi/<name>. Open it, edit it, delete it. No hidden state.
Native passthrough
Each alias is a thin wrapper around the official claude binary. Every flag, every command, every keybinding, unchanged.
Templates over docs
Provider templates come with the right base URLs, model mappings, and defaults. Drop in your API key and go.
Reversible everything
Migrations back up config files. Plugin operations rename to backup before deleting. Health checks help you recover broken state.
A wrapper, not a fork.
When you run claude-multi add glm --provider glm, four things happen:
- 1 A directory is created at
~/.claude-multi/glm/with its ownsettings.json,.claude.json, and history. - 2 Provider-specific env vars (base URL, model mappings) are merged into the instance's settings, without modifying your primary
~/.claude. - 3 Plugins and skills are symlinked from your primary install. Update once; every instance sees it.
- 4 A wrapper script at
~/.bun/bin/claude-glmlaunches the officialclaudebinary withCLAUDE_CONFIG_DIRpointed at the new instance.
That's the whole trick. No proxy, no monkey-patching, no daemon. Just a config-dir environment variable and a symlink graph.
At a glance.
Built by hmziqrs.
Independent developer, builds open-source tooling for developer workflows. claude-multi started because switching providers mid-day was annoying and nothing else solved it cleanly.
Ready to try it?
One npm install, a couple of commands, and you're running every Claude.