Claude Codeで複数のタスクを同時に進めたいとき、ターミナルを1つしか使わない運用では待ち時間が積み重なります。機能追加の裏でテストを回す、フロントエンドとバックエンドを同時に実装する――こうした場面で並列実行が効果的です。

並列実行の手段は大きく3つあり、それぞれ得意な場面が異なります。

手法概要向いている場面
git worktree + 複数ターミナルブランチごとに作業ディレクトリを分離し、各ターミナルでClaude Codeを起動独立した機能の同時開発、PR単位の並行作業
サブエージェント(Task tool)Claude Code内部から別エージェントを起動し、調査・テスト・レビューを委譲コードベース調査、テスト実行、コードレビュー
tmux / iTerm2 による多重化ターミナルマルチプレクサでセッションを分割し管理短時間のタスク並行、セッション監視

git worktreeで作業ディレクトリを分離する

git worktreeは、1つのリポジトリから複数の作業ディレクトリを切り出す機能です。各worktreeは独立したブランチをチェックアウトできるため、ファイルの競合を気にせずClaude Codeを複数同時に動かせます。

worktreeの作成手順

# feature-authブランチ用のworktreeを作成
git worktree add ../my-project-auth -b feature/auth

# feature-api用のworktreeを作成
git worktree add ../my-project-api -b feature/api

# 作成済みworktreeの一覧を確認
git worktree list

各ディレクトリに移動して、別々のターミナルでClaude Codeを起動します。

# ターミナル1
cd ../my-project-auth
claude

# ターミナル2
cd ../my-project-api
claude

VSCodeのgit worktreeサポート

VSCode 1.103(2025年7月版)以降、標準でgit worktreeの管理機能が搭載されました。GUIからworktreeの作成・削除が可能です。コマンドパレットからGit: Create Worktreeを実行し、ブランチ名と保存先ディレクトリを指定するだけで新しいworktreeが開きます。

worktree運用で押さえておくポイント

共有ファイルに注意する

.gitディレクトリはworktree間で共有されます。git stashやブランチの操作は全worktreeに影響するため、stashの代わりに一時コミットを使う運用が安全です。

node_modulesなどの依存パッケージ

worktreeごとにnode_modulestargetディレクトリは独立して存在します。新しいworktreeを作成したらnpm installcargo buildを忘れずに実行してください。

worktreeの整理

マージ済みのworktreeは速やかに削除します。

git worktree remove ../my-project-auth

サブエージェントによるClaude Code内並列処理

Claude Codeには、Task toolを使ったサブエージェント機能が組み込まれています。メインの会話コンテキストを消費せずに、別のエージェントインスタンスへ作業を委譲できます。

組み込みサブエージェントの種類

エージェント用途利用できるツール
Exploreコードベースの高速検索・調査Read, Glob, Grep
Planアーキテクチャ設計・実装計画Read, Glob, Grep(編集不可)
general-purpose汎用タスク実行全ツール

Claude Codeはタスクの性質を判断し、自動的にサブエージェントへ委譲します。明示的に指定する場合はプロンプトに記載します。

認証モジュール、データベース層、APIルーティングを
それぞれ別のサブエージェントで並行調査してください

フォアグラウンドとバックグラウンド

サブエージェントはフォアグラウンド(完了まで待機)またはバックグラウンド(並行実行)で動作します。

  • フォアグラウンド: 権限確認や質問をユーザーに転送できる。結果が出るまでメイン会話はブロックされる
  • バックグラウンド: メイン会話で作業を続けながら裏で処理が進む。起動前に必要な権限をまとめて承認する

実行中のタスクをバックグラウンドに切り替えるには Ctrl+B を押します。

カスタムサブエージェントの作成

.claude/agents/ディレクトリにMarkdownファイルを配置すると、独自のサブエージェントを定義できます。

---
name: test-runner
description: テストスイートを実行し、失敗箇所を報告する
tools: Bash, Read, Grep
model: haiku
---

テストを実行し、失敗したテストのエラーメッセージのみを返してください。
成功したテストの詳細は不要です。

frontmatterで指定できる主なフィールドは以下のとおりです。

フィールド必須説明
nameはい一意の識別子(小文字・ハイフン)
descriptionはいエージェントの用途の説明
toolsいいえ利用可能なツールを制限
modelいいえsonnet / opus / haiku / inherit
permissionModeいいえ権限モード(default, acceptEdits, plan等)
memoryいいえ永続メモリスコープ(user, project, local)

memoryフィールドを設定すると、サブエージェントはセッションを超えて知識を蓄積します。コードレビューのパターンやデバッグのノウハウを学習させる用途に有効です。

tmuxやiTerm2によるセッション管理

tmuxを使うと、1つのターミナルウィンドウ内で複数のペインやウィンドウを管理し、それぞれでClaude Codeを実行できます。

# 新しいtmuxセッションを作成
tmux new-session -s claude-work

# ウィンドウを水平分割
tmux split-window -h

# 左ペインでClaude Codeを起動
claude

# 右ペイン(Ctrl+b → 矢印キーで移動)でも起動
claude

iTerm2(macOS)では、ネイティブのタブ・ペイン分割を使うほうがスクロールや検索の面で快適です。tmuxのスクロールバッファはデフォルトで2000行しかなく、長い出力が切れることがあります。

tmux vs 複数ターミナルウィンドウ

tmuxは便利ですが、Claude Codeの並列運用においてはデメリットもあります。

  • tmuxのスクロールバッファ制限により長い出力が見切れる
  • 複数のターミナルウィンドウを別々に開く方が、物理的な分離で「どのウィンドウがどのタスクか」を識別しやすい
  • OS標準のターミナルでネイティブスクロールを使うほうが操作性が良い

git worktreeと組み合わせる場合、各worktreeディレクトリに対して別々のターミナルウィンドウを開く構成がシンプルで管理しやすい方法です。

Agent SDK(ヘッドレスモード)によるプログラム的な並列実行

Claude Codeは-pフラグを付けて実行することで、非対話モード(ヘッドレスモード)で動作します。Agent SDKとしてCLI・Python・TypeScriptから呼び出せるため、スクリプトやCI/CDパイプラインに組み込めます。

基本的な使い方

# 非対話モードでプロンプトを実行
claude -p "auth.pyのバグを修正して" --allowedTools "Read,Edit,Bash"

# JSON形式で結果を受け取る
claude -p "このプロジェクトの概要を教えて" --output-format json

# 前回の会話を継続
claude -p "データベースクエリに注目して" --continue

複数プロセスの並列実行

シェルスクリプトでバックグラウンドプロセスとして複数のClaude Codeを同時起動するパターンです。

#!/bin/bash
# 3つのタスクを並列実行
claude -p "認証モジュールをレビュー" --allowedTools "Read,Grep" &
claude -p "APIエンドポイントのテストを実行" --allowedTools "Bash,Read" &
claude -p "ドキュメントを更新" --allowedTools "Read,Edit" &

wait
echo "全タスク完了"

CI/CDとの統合

GitHub ActionsやGitLab CI/CDから呼び出すことで、PRのコードレビューやテスト実行を自動化できます。--output-format json--json-schemaを組み合わせれば、構造化された結果を後続のステップで処理できます。

# PR diffをパイプしてセキュリティレビュー
gh pr diff "$PR_NUMBER" | claude -p \
  --append-system-prompt "セキュリティエンジニアとして脆弱性をレビュー" \
  --output-format json

並列実行時に発生しやすい問題と対処法

ファイル競合

同一ファイルを複数のClaude Codeセッションが同時に編集すると、変更が上書きされるリスクがあります。git worktreeでブランチを分離するか、サブエージェントにRead権限のみ付与して書き込みを制限する方法が有効です。

権限待ちによるセッション停止

並列運用で最も多いトラブルは、あるセッションが権限確認を待っている間にユーザーが気づかず放置してしまうケースです。対策として以下があります。

  • --allowedToolsで事前に必要なツール権限を付与し、確認回数を減らす
  • Claude Code Hooksを利用して、権限待ち発生時に通知を送るスクリプトを設定する
  • 監視ダッシュボードを自作し、各セッションのステータスを可視化する

コンテキストウィンドウの肥大化

1つのセッションで大量のファイルを読み込むと、コンテキストウィンドウが圧迫されます。サブエージェントに調査を委譲すれば、メイン会話のコンテキストは要約のみを受け取る形になります。

用途別のおすすめ構成

個人開発で2〜3タスクを同時進行する場合

git worktreeで機能ブランチを分離し、ターミナルを2〜3個開く構成が最もシンプルです。tmuxは不要で、OS標準のターミナルアプリで十分です。

チーム開発でPR単位の並行作業を行う場合

git worktreeに加え、ブランチの命名規則と依存チェーンPRの運用を組み合わせます。PRを小さく分割し、依存関係をgh pr create --baseで明示することで、レビュー待ちのブロックを回避できます。

コードベース全体の調査やリファクタリング

サブエージェントの並行調査が最適です。モジュールごとにExploreエージェントを起動し、結果をメイン会話で統合する流れになります。

認証・データベース・APIの各モジュールを
それぞれExploreエージェントで並行調査してください

CI/CDパイプラインへの組み込み

Agent SDK(claude -p)をGitHub ActionsやGitLab CI/CDから呼び出します。--output-format jsonで結果を構造化し、後続ステップで処理します。

まとめ

Claude Codeの並列実行には、git worktree・サブエージェント・tmux / 複数ターミナル・Agent SDKの4つの手段があります。

  • git worktree: 独立したブランチ作業を同時に進めたいときの基本構成。ファイル競合がなく、PRごとにworktreeを分離する運用が安定する
  • サブエージェント: Claude Code内部で調査・テスト・レビューを並行処理する仕組み。コンテキストウィンドウを節約でき、カスタムエージェントで用途に特化できる
  • tmux / 複数ターミナル: セッション管理の手段。git worktreeと組み合わせて使うのが一般的
  • Agent SDK: CI/CDやスクリプトからの自動実行に対応。-pフラグで非対話モード、--output-format jsonで構造化出力が得られる

用途に合わせてこれらを組み合わせることで、開発のスループットを大幅に高められます。並列実行の公式ガイドはClaude Code Docsで確認できます。