複数の Claude Code セッションを同時に起動し、独立したタスクを並列で進めることで開発速度を上げる手法をまとめる。
workspace/
├── acme-backend/ # Go API サーバー
├── acme-frontend/ # Next.js Web アプリ
├── acme-admin/ # 管理画面
├── acme-worker/ # バッチ処理
└── acme-protobuf/ # gRPC 定義
各サブディレクトリが独立した git リポジトリである、マルチリポ構成を想定する。
最もシンプルで安全なパターン。リポジトリが異なればコンフリクトは発生しない。
# ターミナル1
cd workspace/acme-backend && claude
# ターミナル2
cd workspace/acme-frontend && claude
# ターミナル3
cd workspace/acme-admin && claudeそれぞれのセッションで独立したタスクを指示するだけでいい。
同じリポジトリで複数タスクを同時に進めたい場合は、リポジトリをもう1つ clone する。
cd workspace
# 並列作業用に追加 clone
git clone <remote-url> acme-backend-2
# それぞれ別ブランチで作業
cd acme-backend && git checkout -b feature/task-a
cd ../acme-backend-2 && git checkout -b feature/task-bworkspace/
├── acme-backend/ # タスクA を作業中
├── acme-backend-2/ # タスクB を作業中(一時的)
├── acme-frontend/
└── ...
# ターミナル1
cd workspace/acme-backend && claude
# ターミナル2
cd workspace/acme-backend-2 && claude- 並列作業が必要な時だけ clone する。常に2つ持つ必要はない
- 作業が終わったらディレクトリごと削除してよい
docker composeのポート番号が衝突しないよう注意する.env等の環境設定ファイルは clone 先にも用意する
| 観点 | git clone |
git worktree |
|---|---|---|
| わかりやすさ | 完全に独立 | 親リポとの依存関係がある |
| 事故リスク | 低い。削除すれば終わり | prune 忘れ、lock ファイル等のトラブル |
| ブランチ制約 | 同じブランチを同時に checkout 可能 | 同じブランチは同時に開けない |
| ディスク容量 | .git が重複する |
共有するので軽い |
リポジトリが巨大(数GB以上)でなければ clone で十分。管理の手軽さを優先する。
- 使わないリポジトリまで clone する無駄が生じる
- どちらのワークスペースで作業していたか混乱しやすい
- ポートや環境変数の管理が二重になる
- 必要なリポジトリだけ、必要な時に clone するのが原則
10以上のエージェントを長時間自動で回す場合は Docker が必要になる。
| 理由 | 説明 |
|---|---|
| 環境分離 | エージェント同士がファイルを壊し合わない |
| 安全性 | 暴走しても他のエージェントに影響しない |
| 再現性 | 同一環境を任意の数だけ立てられる |
| Git 競合管理 | 各コンテナで pull → 作業 → push のサイクルを独立して回せる |
┌─────────────────────────────────────────┐
│ Docker Host │
│ │
│ ┌───────────┐ ┌───────────┐ │
│ │ Agent 1 │ │ Agent 2 │ ... │
│ │ container │ │ container │ │
│ │ claude │ │ claude │ │
│ │ git clone │ │ git clone │ │
│ └─────┬─────┘ └─────┬─────┘ │
│ │ │ │
│ └──────┬───────┘ │
│ ▼ │
│ Remote Git Repository │
└─────────────────────────────────────────┘
各コンテナがリモートリポジトリに対して pull/push することで同期を取る。
- Building a C compiler with a team of parallel Claudes — 16エージェントで10万行のCコンパイラを構築した事例
1つの Max プランアカウントではレート制限が共有されるため、並列セッションが多いとボトルネックになる。アカウントを分けることでレート制限枠を独立させられる。
Claude Code の認証情報は ~/.claude/ 配下に保存される。CLAUDE_CONFIG_DIR 環境変数で設定ディレクトリを分けることで、複数アカウントの同時利用が可能になる。
# ターミナル1 — アカウントA(デフォルト)
claude
# ターミナル2 — アカウントB(設定ディレクトリを分離)
CLAUDE_CONFIG_DIR=~/.claude-account-b claudefish シェルの場合:
# ターミナル2
set -x CLAUDE_CONFIG_DIR ~/.claude-account-b
claude初回のみ /login でアカウントBのブラウザ認証を通す。以降は各ターミナルが独立したアカウントで動く。
- 月額は Max プラン × アカウント数 かかる
CLAUDE_CONFIG_DIRを変えると~/.claude/CLAUDE.mdやメモリも別ディレクトリになる。共有したい場合は symlink を使うCLAUDE_CONFIG_DIRが未サポートの場合は/logout→/loginで切り替える運用になるが、同時並列はできない
| やりたいこと | 推奨レベル | Docker |
|---|---|---|
| 別リポのタスクを同時に進める | Level 1 | 不要 |
| 同一リポで2〜3タスクを並列 | Level 2 | 不要 |
| 10+ エージェントの自動長時間実行 | Level 3 | 必要 |
まずは Level 1 → Level 2 の順で試し、必要になったら Level 3 に進むのが現実的。