Run multiple Claude Code sessions at once
The honest answer to “can I run multiple Claude Code sessions in parallel?” is yes — but Claude Code itself won't orchestrate them. It runs one process at a time. You can open three terminals and start three independent sessions, but then you are the orchestrator: switching tabs, copying output around, remembering which session is which.
This page covers the three real options.
Option 1: do it manually (free, painful)
# Terminal 1
cd ~/code/api && claude --model claude-sonnet-4-6
# Terminal 2
cd ~/code/web && claude --model claude-sonnet-4-6
# Terminal 3
cd ~/code/infra && claude --model claude-opus-4-7Works fine for two sessions. Falls apart at three because you are now the human MCP between them.
Option 2: write your own MCP wrapper
If you want Claude to orchestrate, you need an MCP server that exposes start/list/get/kill for Claude Code processes. The basic shape is:
@mcp.tool()
async def start_claude_session(prompt: str, model: str) -> dict:
session_id = uuid()
subprocess.Popen([
"tmux", "new-session", "-d", "-s", f"claude-{session_id}",
"claude", "--print", prompt, "--model", model,
])
return {"session_id": session_id}…plus output capture, lifecycle tracking, auth, transport. The real implementation is ~1,000 lines for good reason: streaming HTTP, OAuth 2.1 + PKCE, scrollback buffering, dead-session cleanup, multi-tenant routing.
Option 3: use Concerto
A hosted MCP server that does all of the above and runs sessions on a managed VPS so they survive your laptop closing. Five tools, one connection string.
- Solo: $49 / month — one managed VPS, parallel sessions, persistent.
- Pro: $99 / month — bigger VPS, more concurrent sessions, priority support.
What “parallel” actually buys you
In practice, the moment you can run three sessions concurrently you start using Claude Code differently:
- Fan-out exploration. Three sessions investigating three suspect commits for a regression, in parallel, instead of bisecting sequentially.
- Long-running background work. Spin a session to migrate a schema while another opens a PR for a feature flag in the same repo.
- Free chat from blocking. Your chat with Claude isn't held hostage by a 10-minute
npm install— that's running over there, on the VPS.