Skip to content

Instantly share code, notes, and snippets.

@hisasann
Last active March 24, 2026 10:50
Show Gist options
  • Select an option

  • Save hisasann/5f14822e2f2ac6060585d5e7c913d7e1 to your computer and use it in GitHub Desktop.

Select an option

Save hisasann/5f14822e2f2ac6060585d5e7c913d7e1 to your computer and use it in GitHub Desktop.
複数の Claude Code エージェントを並列で動かす方法

複数の Claude Code エージェントを並列で動かす方法

概要

複数の Claude Code セッションを同時に起動し、独立したタスクを並列で進めることで開発速度を上げる手法をまとめる。

前提となるリポジトリ構成

workspace/
├── acme-backend/       # Go API サーバー
├── acme-frontend/      # Next.js Web アプリ
├── acme-admin/         # 管理画面
├── acme-worker/        # バッチ処理
└── acme-protobuf/      # gRPC 定義

各サブディレクトリが独立した git リポジトリである、マルチリポ構成を想定する。

Level 1: リポジトリが異なるタスクの並列

最もシンプルで安全なパターン。リポジトリが異なればコンフリクトは発生しない。

# ターミナル1
cd workspace/acme-backend && claude

# ターミナル2
cd workspace/acme-frontend && claude

# ターミナル3
cd workspace/acme-admin && claude

それぞれのセッションで独立したタスクを指示するだけでいい。

Level 2: 同一リポジトリ内での並列作業

同じリポジトリで複数タスクを同時に進めたい場合は、リポジトリをもう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-b
workspace/
├── 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 worktree ではなく clone を選ぶ理由

観点 git clone git worktree
わかりやすさ 完全に独立 親リポとの依存関係がある
事故リスク 低い。削除すれば終わり prune 忘れ、lock ファイル等のトラブル
ブランチ制約 同じブランチを同時に checkout 可能 同じブランチは同時に開けない
ディスク容量 .git が重複する 共有するので軽い

リポジトリが巨大(数GB以上)でなければ clone で十分。管理の手軽さを優先する。

workspace2/ のようにまるごと複製しない理由

  • 使わないリポジトリまで clone する無駄が生じる
  • どちらのワークスペースで作業していたか混乱しやすい
  • ポートや環境変数の管理が二重になる
  • 必要なリポジトリだけ、必要な時に clone するのが原則

Level 3: 大規模並列(Docker + 自動ループ)

10以上のエージェントを長時間自動で回す場合は Docker が必要になる。

Docker が必要になる理由

理由 説明
環境分離 エージェント同士がファイルを壊し合わない
安全性 暴走しても他のエージェントに影響しない
再現性 同一環境を任意の数だけ立てられる
Git 競合管理 各コンテナで pull → 作業 → push のサイクルを独立して回せる

構成イメージ

┌─────────────────────────────────────────┐
│  Docker Host                            │
│                                         │
│  ┌───────────┐  ┌───────────┐           │
│  │ Agent 1   │  │ Agent 2   │  ...      │
│  │ container │  │ container │           │
│  │ claude    │  │ claude    │           │
│  │ git clone │  │ git clone │           │
│  └─────┬─────┘  └─────┬─────┘           │
│        │              │                 │
│        └──────┬───────┘                 │
│               ▼                         │
│         Remote Git Repository           │
└─────────────────────────────────────────┘

各コンテナがリモートリポジトリに対して pull/push することで同期を取る。

参考

Tips: 複数の Max プランアカウントで並列する

1つの Max プランアカウントではレート制限が共有されるため、並列セッションが多いとボトルネックになる。アカウントを分けることでレート制限枠を独立させられる。

設定ディレクトリを分ける

Claude Code の認証情報は ~/.claude/ 配下に保存される。CLAUDE_CONFIG_DIR 環境変数で設定ディレクトリを分けることで、複数アカウントの同時利用が可能になる。

# ターミナル1 — アカウントA(デフォルト)
claude

# ターミナル2 — アカウントB(設定ディレクトリを分離)
CLAUDE_CONFIG_DIR=~/.claude-account-b claude

fish シェルの場合:

# ターミナル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 に進むのが現実的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment