About claude-multi.
claude-multi is a CLI that runs several Claude Code setups on one machine. Each instance points at a different provider and keeps its own config directory. Your normal ~/.claudesetup stays as it is.
Why one config directory is not enough.
Claude Code stores settings, MCP servers, plugins, skills, and history in~/.claude. That works while you use one provider. Add a second and the same directory has to hold both setups. You end up editing settings by hand, swapping keys, and keeping shell aliases. Change one thing for GLM and your Anthropic session inherits it.
claude-multi gives every provider its own command and config directory.claude-glm,claude-deepseek,claude-kimi, and the rest each point at~/.claude-<name>/, for example~/.claude-glm/. The central registry, health status, and backups live in~/.claude-multi/, separate from the instance settings. Plugins and skills symlink from your primary install.
There are no daemons and no background services. Every instance is a real directory you cancdinto and inspect.
Design decisions.
Plain directories
Each instance is a real directory at~/.claude-<name>. Open it, edit it, or delete it. The registry in~/.claude-multi/ only tracks instances, health, and backups.
Thin wrapper
Each command is a thin wrapper that setsCLAUDE_CONFIG_DIR and execs the official claude binary. Flags, slash commands, and keybindings pass through unchanged.
Provider templates
Templates for six providers fill in the base URL, model mappings, and defaults. There are eight in total. Add your API key and the config is ready.
Reversible changes
Migrations back up config files first. Plugin operations rename to a backup before deleting.claude-multi doctor checks for broken symlinks and stale settings.
A wrapper, not a fork.
When you runclaude-multi add glm, four things happen:
- 1claude-multi creates a directory at
~/.claude-glm/with its ownsettings.json,.claude.json, and history. - 2It merges the provider's env vars (base URL, model mappings) into that instance's settings. Your primary
~/.claudeis not touched. - 3It symlinks plugins and skills from your primary install. Update once and every instance sees the change.
- 4A wrapper in your PATH, for example
~/.bun/bin/claude-glm, launches the officialclaudebinary withCLAUDE_CONFIG_DIRpointed at the new instance.
One environment variable pointing at a config directory, plus a few symlinks. Nothing proxies your traffic and nothing patches the binary.
The project in numbers.
Six providers and eight templates. Anthropic is not a template: your existing~/.claude setup stays as it is.
Maintained by hmziqrs.
I built claude-multi because switching providers halfway through a day kept breaking my setup. I wanted to keep my Claude Code workflow and change the model behind it, not learn another CLI.
I am hmziqrs, also known as Hamza. I have been on GitHub since 2014 and have worked as a software engineer for more than nine years, mostly with TypeScript, Rust, and Flutter. claude-multi is MIT-licensed and the source is public.
Bug reports and questions go toGitHub issues. That is the fastest way to reach me.