Claude Codeを worktreeで 並列に 動かす 方法 複数 セッションの 分け方と 注意点
- 並列にするなら、セッションごとに別のworktreeを使います。
- claude --worktree 名前で、ファイルとブランチが分かれます。
- ポートと依存パッケージは、worktreeごとに別に用意します。

Claude Codeを複数同時に動かすなら、セッションごとに別のgit worktreeを使います。worktreeは、同じリポジトリの履歴を共有しながら、ファイルとブランチを別にした作業フォルダです。1つのセッションで機能を作りながら、別のセッションでバグを直しても、編集中のファイルを直接上書きし合うことがありません(同じ箇所を直した場合は、あとで統合するときに衝突します)。
いちばん簡単な始め方は、ターミナルでclaude --worktree 名前と打つことです。別のターミナルで名前を変えてもう一度打てば、2つめの独立したセッションが始まります。
手順は、2026年10月23日に公式のworktreeの説明と並列実行の比較と照らし合わせました。
worktree とは何か
gitのworktreeは、1つのリポジトリから、別のフォルダに別のブランチを取り出せるgitの標準機能です。履歴とリモートは共有し、ファイルは別になります(gitの説明)。用語集ではGit Worktreeにあたります。
Claude Codeのセッションを、それぞれ別のworktreeで動かすと、各セッションが自分用のファイルのコピーを編集します。同じファイルを同時に直して壊し合う事故を防げます。
claude --worktreeで 始める
--worktree(短くは-w)に名前を付けると、独立したworktreeを作って、その中でClaudeを始めます。
claude --worktree feature-auth公式の説明では、既定でリポジトリのルートの.claude/worktrees/<名前>/にフォルダができ、worktree-<名前>という新しいブランチが作られます。名前を省略すると、bright-running-foxのような名前が付きます。
- 初めてのフォルダでは、先に一度
claudeを実行して、信頼の確認に応じておきます。しないと--worktreeはエラーで止まります .claude/worktrees/は、.gitignoreに入れておくと、元のフォルダに未追跡のファイルとして出ません- worktreeは新しい取り出しなので、必要に応じて、依存パッケージの導入など開発環境の用意を、そのフォルダで行います。Claudeに頼んでも構いません
- 既存のブランチから始めたいときや、リポジトリの外に置きたいときは、gitで直接作ります
git worktree add ../project-feature-a -b feature-a
cd ../project-feature-a
claudeセッションの中で「worktreeで作業して」と頼むこともできます。
何を 元に 分かれるか
新しいworktreeは、既定では、リモートの既定ブランチ(たいていmain)から分かれます。リモートがない場合や、origin/HEADを取得できない場合は、手元のHEADから分かれます。手元の未pushのコミットを持ち込みたいときは、設定のworktree.baseRefを"head"にします。ブランチ名は指定できません。
{
"worktree": {
"baseRef": "head"
}
}#1234のように番号を付けてclaude --worktree "#1234"とすると、そのプルリクエストの先頭のコミットから始められます。
.envなどを 持ち込む
worktreeは新しい取り出しなので、gitに入れていない.envなどはありません。プロジェクトのルートに.worktreeincludeというファイルを置くと、新しいworktreeに自動で写されます。書き方は.gitignoreと同じです。写されるのは、パターンに一致し、かつgitの対象外(ignore)になっているファイルだけです。.gitignoreに入っていない.envは、ここに書いても写りません。
.env
.env.local終わった ときの 片付け
対話のセッションを終えるとき、Claudeはworktreeに消すと失われる作業(変更、未追跡のファイル、新しいコミット)があるか調べます。
- きれいなとき 名前を付けなかったセッションは、worktreeとブランチを自動で消します。名前を付けたセッションは、残すかどうかを先に聞きます
- 作業が残っているとき 残すか消すかを聞かれます。残すと、フォルダとブランチが残ります。消すと、そこにある作業ごと消えます
- 確かめられないとき 自動では消さず、聞かれます
残した作業に戻るには、終了時に表示されるclaude --worktree <名前> --resumeを使います。-pで動かした非対話のセッションは、終了時の確認がないので、自動では片付きません。自分でgitのコマンドで消します。未コミットの変更や未追跡のファイルがあるworktreeは、git worktree removeが断るので、消してよいときは--forceを付けます。
git worktree list
git worktree remove ../project-feature-aサブエージェントと 並列セッションの違い
公式は、Claudeに複数の作業を任せる方法を、いくつか挙げています。worktreeは、その土台の1つで、ファイルの編集を分けるためのものです。
| 方法 | 何を | 向いている場面 |
|---|---|---|
| 方法サブエージェント | 何をするか1つの | 向いている場面検索結果や |
| 方法自分で | 何をするかセッションごとに | 向いている場面独立した |
方法エージェントビュー(claude agents) | 何をするか背景の | 向いている場面独立した |
| 方法エージェントチーム | 何をするか共有の | 向いている場面プロジェクトを |
サブエージェントも、worktreeの中で動かせます。「エージェントにはworktreeを使って」と頼むか、自作のサブエージェントのフロントマターにisolation: worktreeを書きます。変更がなければ、一時のworktreeは自動で消えます。サブエージェント自体は、次の記事で説明しています。
次の表は、「同じファイルを触るか」で選ぶときの目安です。公式の説明にあわせています。
| 状況 | 公式の説明 |
|---|---|
| 状況作業が | 公式の説明worktreeで |
| 状況エージェントチーム | 公式の説明チームの |
| 状況セッション同士で | 公式の説明セッション間の |
エージェントチームの有効にし方、頼み方、トークンの使い方は、次の記事にまとめています。
関連記事気を つけること
まず、公式の説明にあることです。
- 名前を再利用すると、前のworktreeを開き直します。 同じ名前で
--worktreeを実行すると、新しく作らず、すでにあるものを開きます - 許可の承認は共有されます。 worktreeで、Bashのコマンドに「今後は聞かない」を選ぶと、元のフォルダの
.claude/settings.local.jsonに保存され、ほかのworktreeにも効きます。Windowsなど、リポジトリのルートを使わない場合は、そのworktreeだけに残ります - 使う量も増えます。 複数のセッションやサブエージェントを同時に動かすと、トークンの使用量が増えます(費用の説明)
- gitに入れていないファイルは、自動では写りません。
.worktreeincludeで指定します - Git LFSをこのリポジトリだけに入れていると、Claudeが作るworktreeには、実体でなくポインタのファイルが入ります
次は、公式の説明には書かれていない、編集部の考えです。
- 統合。 worktreeごとにブランチが分かれるので、並列で進めた結果は、最後にマージなどで1つにまとめる必要があります。同じ場所を直していれば、そのときに衝突が起きます
- ポート。 worktreeを分けても、動かす開発サーバーは同じPCの上のプロセスです。2つのセッションが同じポート番号で開発サーバーを動かそうとすると、サーバーや起動の設定によっては、後から動かしたほうが起動に失敗します。セッションごとにポートを変えます
- ディスク。 worktreeごとに、ファイルのコピーと、導入した依存パッケージが増えます。使い終わったworktreeは消します
- データベース。 同じ開発用データベースを複数のセッションが書き換えると、結果が混ざります
使う ときの流れ
- 作業ごとに
claude --worktree 名前で始める - 必要なら依存パッケージを入れ、開発サーバーのポートを分ける
- 終えたらコミットして、ブランチをまとめる(プルリクエストなど)
- worktreeを片付ける
作業を始める前に方針を固めたいときは、プランモードが使えます。用語集のプランモードと、次の記事を見てください。
関連記事コマンドの全体は、次の記事にあります。
関連記事デスクトップアプリ で使う
デスクトップアプリには、セッションごとに独立したworktreeで動かす機能があります。公式は、デスクトップアプリの並列セッションの説明を案内しています。アプリの概要は、次の記事にあります。
関連記事よく ある質問
Claude Codeを 並列に 動かすには、 どうしますか?
セッションごとに別のworktreeで動かします。claude --worktree 名前を、別のターミナルで名前を変えて実行すれば、独立したセッションが増えます。
worktreeは、 どこに できますか?
既定では、リポジトリのルートの.claude/worktrees/<名前>/にできます。ブランチはworktree-<名前>です。gitで直接作れば、好きな場所に置けます。
サブエージェントと、 並列の セッションは 何が 違いますか?
サブエージェントは、1つのセッションの中で、横道の作業を別の文脈で行って要約を返します。並列のセッションは、自分で複数開いて、worktreeでファイルを分けます。
worktreeを 使い 終わったら、 どうしますか?
対話のセッションを終えるときに、状態に応じて、残すか消すかを聞かれます。何も変更がなく名前も付けていないworktreeは、自動で消えます。自分で消すならgit worktree removeで、未コミットの変更があれば--forceが要ります。作業が残っているものを消すと、その作業も消えます。
.envなどが worktreeに ありません。
worktreeは新しい取り出しなので、gitに入れていないファイルは写りません。プロジェクトのルートに.worktreeincludeを置いて、写したいファイルを書きます。


