// About

About claude-multi.

claude-multi is a CLI that runs multiple Claude Code instances side by side. Each one talks to a different AI provider and keeps its own config directory.

// Why it exists

A config directory is a single shared state.

Claude Code stores everything in ~/.claude: settings, MCP servers, plugins, skills, history. Try a second model and that one directory becomes a problem. I ended up editing settings by hand, swapping keys, and keeping shell aliases nobody asked for. Sessions and context get overwritten and you find out later.

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 still maintain them in one place.

There are no daemons and no background services. Nothing phones home. Every instance is a real directory you can cd into and inspect with the tools you already use.

// Principles

What I optimize for.

Zero magic

Every instance is a real directory at ~/.claude-multi/<name>. Open it, edit it, or delete it. Nothing is hidden from you.

Native passthrough

Each alias is a thin wrapper around the official claude binary. All flags, commands, and keybindings pass through 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.

// How it works

A wrapper, not a fork.

When you run claude-multi add glm --provider glm, four things happen:

  1. 1claude-multi creates a directory at ~/.claude-multi/glm/ with its own settings.json, .claude.json, and history.
  2. 2It merges the provider's env vars (base URL, model mappings) into that instance's settings and never touches your primary ~/.claude.
  3. 3It symlinks plugins and skills from your primary install. Update once and every instance sees it.
  4. 4A wrapper script at ~/.bun/bin/claude-glm launches the official claude binary with CLAUDE_CONFIG_DIR pointed at the new instance.

That's the whole trick. One environment variable pointing at a config directory, plus a few symlinks. Nothing proxies your traffic and nothing patches the binary.

// Project

At a glance.

0.12.0
Current version
27
Releases shipped
MIT
License
8+
AI Providers
// Author

Built by hmziqrs.

I'm an independent developer and I build open-source tooling for my own workflow first. claude-multi exists because switching providers halfway through a day kept breaking my setup, and every alternative meant learning a new CLI I did not want to learn.

Ready to try it?

One npm install, two commands, and you have your first provider running.