Claude Code の複数セッション管理:コンテキストを失わない並列実行のコツ
コンテキストを失わずにClaude Code の複数セッションを管理(並列実行)するには、コンテキストを自分の頭やスクロールバックではなくファイルに置きます。1セッションにつき1タスクとし、タスクはエージェントが読む計画書や要求に書き出し、プロジェクトのルールは CLAUDE.md に書きます。セッションにはプロジェクト名とタスク名を付け、やり直す代わりに claude --resume や claude --continue で再開し、同じリポジトリで2つのセッションが作業する場合は git worktree を使います。そうすれば Claude Code 組み込みの エージェントビュー(Agent View)(claude agents)で、すべてのバックグラウンドセッションと、あなたの対応が必要なものを一覧できます。Agent View が保持しないのは、セッションの周りにある文書化された作業、つまり要求、計画、未解決の疑問、ドキュメントです。
並列の Claude Code セッションはなぜコンテキストを失うのですか?
Claude Code のセッションを1つ動かすのは簡単です。3つのプロジェクトで5つ動かすあたりから破綻が始まりますが、壊れるのはエージェントの中ではほとんどありません。壊れるのは、それを指揮する人間の側です。
よくある失敗はこうです。プロジェクト A でインポートのバグ修正のセッションを始め、別のセッションからの質問に答えるためにプロジェクト B へ移り、20分後に戻ってくると、ターミナルのタブは他の9個と同じ zsh と表示されています。何を頼んだのかをスクロールして確かめます。エージェントは、その20分のうち15分間、コマンド実行の許可を待ち続けています。その間に、プロジェクト C のセッションはやることがなくなっていたのに、あなたは気づいていません。
どれもモデルの問題ではありません。コンテキストは存在していましたが、タブを切り替えると残らない場所、つまりあなたのプロンプト、スクロールバック、記憶の中にありました。ターミナル側の話は ターミナルの乱立がエージェント開発の本当のボトルネックである理由 で書きました。この記事では、その大半を解決する習慣と、ツールが上乗せできるものを扱います。
並列の Claude Code セッションに作業をどう分ければよいですか?
1セッション1タスク
バグを直し、機能を追加し、デプロイに関する質問に答えるセッションは、その3つすべてをコンテキストに抱えます。エージェントは遅く、精度も落ち、そのセッションが何のためのものか分からなくなります。各セッションには、終わりがはっきりした1つのタスクを割り当ててください。タスクが終わったらセッションを終了するか、次のタスク用に新しいセッションを始めます。セッション内では、ターミナルを使い回したいときに /clear で会話をリセットできます。
目安として、「auth: fix token refresh」のような短いフレーズでセッションを説明できないなら、やらせすぎです。
セッションにプロジェクトとタスクの名前を付ける
ターミナルを複数開いていると、見えるラベルはタブのタイトルだけです。シェルのデフォルトのままにせず、billing / invoice export のようなタイトルにしてください。5秒でできて、これ以上ないほど安上がりにコンテキストを残せます。
プロジェクトごとにディレクトリとウィンドウを分ける
Claude Code は、起動したディレクトリを基準に動きます。履歴も CLAUDE.md も権限も、そのディレクトリに紐づきます。1つのターミナルウィンドウに複数のプロジェクトを混ぜると、間違った相手に入力しやすくなります。プロジェクトごとにウィンドウ(またはタブのグループ)を1つ用意すれば、境界が目に見えます。
エージェントが再開できるよう、コンテキストはどこに置くべきですか?
基本の考え方は、休憩のあとに説明し直す必要があるものは、チャットのメッセージではなく、エージェントが読むファイルに置くことです。
変わらないルールは CLAUDE.md に
リポジトリのルートにある CLAUDE.md は、セッション開始時に自動で読み込まれます。すべてのセッションが知っておくべきこと、たとえばテストの実行方法、コーディングスタイル、触ってはいけないもの、コミットの書き方をここに入れます。同じ指示を新しいセッションに何度も貼り付けているなら、それは CLAUDE.md に置くべきものです。
タスク自体は計画書と要求に
簡単な修正より大きな作業では、渡す前にタスクを書き出します。何をなぜ求めるかを書いた要求と、番号付きタスクの計画です。たとえば plans/ フォルダのようにリポジトリ内に保存し、そのファイルを読むようエージェントに伝えます。これでタスクは、ターミナルを閉じても、新しいセッションでも、別のエージェントでも残ります。戻ってきたときは、履歴をスクロールする代わりに計画書を読めば済みます。
計画があれば、進捗も確認できます。各コミットが実装したタスクに言及していれば(「Task 3: add export endpoint」)、エージェントに聞かなくても git log で作業がどこまで進んだか分かります。
コードの状態は Git に
エージェントには、区切りのよいところでコミットするよう頼みます。コミットメッセージはどのセッションよりも長く残るコンテキストであり、作業ツリーがきれいなら、再開やタスクの切り替えを安全に行えます。
最初からやり直さず、Claude Code のセッションを再開するにはどうしますか?
Claude Code はプロジェクトのディレクトリごとに各会話の履歴を保持するので、ゼロから始め直す必要はめったにありません。
claude --continue(またはclaude -c)は、現在のディレクトリで直近の会話を開き直します。claude --resume(またはclaude -r)は、そのディレクトリの過去の会話を一覧表示し、選べるようにします。セッション ID を渡すこともできます。- 実行中のセッション内では、
/resumeコマンドで以前の会話に切り替えられます。
再開で戻ってくるのは会話であって、あなたの意図ではありません。計画書が重要なのはそのためです。セッションを再開したら、エージェントに計画書を示してどこで止まったかを尋ねます。この2つがあれば、エージェントとあなたは1通のメッセージで足並みがそろいます。
長いセッションはコンテキストウィンドウも埋めていきます。/compact はそれまでの会話を要約して作業を続けられるようにしますが、新しいタスクには、圧縮した古いセッションよりも、計画書を読む新しいセッションのほうがたいていすっきりします。
Claude Code の複数セッションを管理する組み込みの方法(エージェントビュー)はありますか?
あります。Agent View は現在リサーチプレビューで、バックグラウンドセッション用の Claude Code 自身の画面です。claude agents で開くか、claude --bg "<prompt>" でセッションを最初からバックグラウンドで始められます。
- プロジェクトをまたいだ1つの一覧。 デフォルトでは、あなたが始めたすべてのプロジェクトのバックグラウンドセッションをすべて表示します。
claude agents --cwd <path>で1つに絞り込めます。 - ステータス。 セッションは Needs input、Working、Completed などの状態でグループ化されます。Agent View を開いている間は、セッションが入力を必要としたとき、終了したとき、失敗したときに Claude Code が通知します。
- 分離。 Agent View から起動したセッションは、ファイルを編集する前に
.claude/worktrees/配下の専用の git worktree に移ります。 - ターミナル不要。 バックグラウンドセッションは、ターミナルを開いていなくても動き続けます。Space で中をのぞいて返信し、Enter でアタッチでき、デタッチしてもセッションは止まりません。
ドキュメントにある2つの制限を知っておく価値があります。バックグラウンドセッションも対話型と同様にサブスクリプションの利用枠を消費するため、エージェント10個ならおよそ10倍の速さで使い切ります。また、マシンがシャットダウンすると止まります。ほかのツールを足す前の最初の一歩は、自然に Agent View です。この記事の習慣はその上でも有効です。Agent View が追跡するのはセッションであり、セッションに渡すコンテキストではないからです。
同じリポジトリで並列のセッションを動かすにはどうしますか?
2つのエージェントが同じ作業ツリーを編集すると、互いに邪魔をします。片方がテストを走らせているときにもう片方が変更の途中だったり、両方が同じファイルを編集したりします。git worktree は、同じリポジトリのチェックアウトを、各セッションにそれぞれのブランチで用意することでこれを解決します。
git worktree add ../myapp-export -b feature/export
git worktree add ../myapp-auth -b fix/token-refresh
それぞれのフォルダで Claude Code のセッションを1つずつ始めます。Agent View からセッションを起動する場合は、worktree を作成してくれます。git の履歴は共有しますが作業ファイルは共有しないので、各エージェントは干渉なしにビルドとテストができます。ブランチの作業が終わったらマージし、git worktree remove ../myapp-export で worktree を削除します。
各 worktree には、それぞれ依存関係をインストールする必要があります。また、ローカルのテスト用データベースのように、リポジトリの外で共有されているものは衝突する可能性があります。テストがデータを書き込む場合は、worktree ごとに専用のデータベースやポートを割り当ててください。
チェックリスト:コンテキストはどこにありますか?
セッションを離れて別の作業をする前に、あらゆる種類のコンテキストが頭の外に置き場所を持っているか確認します。
| コンテキスト | 置くべき場所 |
|---|---|
| プロジェクトのルールと規約 | リポジトリの CLAUDE.md |
| タスクの内容と理由 | リポジトリ内の要求または計画ファイル |
| タスクがどこまで進んだか | タスクに言及したコミットと計画書 |
| 会話そのもの | Claude Code のセッション履歴(--resume、--continue) |
| どのセッションがどれか | タブまたはセッションの名前:プロジェクトとタスク |
| どのセッションがあなたを必要としているか | Agent View の Needs input 状態、またはセッションマネージャー |
| 1つのリポジトリでの並列作業 | セッションごとに1つの git worktree とブランチ |
| あとで確認する疑問 | 返信しようと思ったメッセージではなく、Todo ファイル |
空の行があれば、それが次の切り替えで失うコンテキストです。
セッションを管理できたあとに、まだ足りないものは何ですか?
Agent View が答えるのは「どのセッションが私を必要としているか?」です。「自分は何を頼んだのか、クライアントの仕様書はどこか、計画はどこまで進んだのか?」には答えません。その答えは上の表の各行にあり、各リポジトリのファイル、フォルダ、git log に散らばっています。この隔たりは、複数のプロジェクトを同時に指揮するとき、作業が顧客資料から始まるとき、ターミナルに常駐していない人(PM やレビュアー)が追いかける必要があるときに広がります。
セッションの上位に立つツールなら、書かれたコンテキスト(要求、計画、Todo、ドキュメント、レビュー)をセッションの隣に置くことでこの隔たりを埋められます。そうすれば「コンテキストはどこにあるか」の表は、7か所ではなく1つのウィンドウになります。Agent View、tmux、Conductor、PMDesk の比較は Agent View・Conductor・tmux・PMDesk を比較:複数の Claude Code エージェントを動かす環境の選び方 にまとめています。
PMDesk は複数の Claude Code エージェントをどう管理しますか?
PMDesk は、複数のプロジェクトにまたがって AI コーディングエージェントを指揮する人のための macOS デスクトップアプリです。Claude Code と Codex に対応しており(インストールとサインインはご自身で行います)、この記事の習慣にそのまま対応します。
- プロジェクトごとに1つのタブ。 各プロジェクトにタブがあり、本物のターミナルで Claude Code または Codex が動きます。プロジェクトを切り替えてもセッションはバックグラウンドで動き続けます。デフォルトでは同時に5つまでです(変更可能)。
- 再開、名前変更、アーカイブ。 過去のセッションはプロジェクトごとに一覧表示されます。履歴から再開でき、何のためのものか分かる名前を付けられ、タスクが終わったらアーカイブできます。
- 「回答待ち」バッジ。 エージェントがターンを終えたとき、または許可を求めているとき、セッション、そのプロジェクトのタブ、サイドバーに 「回答待ち」バッジが表示され、macOS の通知も任意で出せます。タブを順に確認して回る必要がなくなります。
- ファイルとしての要求と計画。 要求や変更要求を書いて、ワンクリックでエージェントに渡せます。そのタスク用に新しいセッションが始まり、これは1セッション1タスクのルールが組み込まれたものです。計画はプロジェクト内にあり、Tasks ペインには計画のタスクが表示され、コミットで言及されるとチェックが付きます。Claude Code が委任したサブエージェントも表示されます。
- Todo。 後回しにすることがあるとき、エージェントまたはあなたが Todo を追加でき、それを書いたセッションをあとで開けます。
- 顧客資料とレビュー。 顧客資料フォルダ(Box、Google Drive、または任意のフォルダ)を登録すれば、エージェントがその場で読めます。PMDesk がそこに書き込むことはありません。エージェントが生成した Markdown と HTML を読み、箇所にコメントを付け、修正要求をまとめて送り返せます。

これらはすべて、お使いのマシン上のプロジェクトフォルダ内にとどまります。PMDesk に AI モデルは含まれておらず、エージェントはご自身の Claude Code または Codex のサブスクリプションで動きます。PMDesk は git worktree を管理しないため、2つのセッションが1つのリポジトリを共有する場合は、上記の worktree の設定(または Agent View)が引き続き必要です。
複数のプロジェクトで毎日エージェントを指揮しているなら、PMDesk for Mac をダウンロードして、いま進めているプロジェクトで試してみてください。
FAQ
複数の Claude Code セッションを同時に実行できますか?
はい。claude を実行している各ターミナルは独立したセッションで、claude --bg はバックグラウンドでセッションを始め、Agent View(claude agents)が1か所にまとめて一覧表示します。マシンとプランの利用上限が許す限り実行できます。各セッションは1つのタスクに絞り、2つのセッションが同じリポジトリで作業する場合は別々の git worktree を使ってください。
Claude Code の Agent View とは何ですか?
claude agents で開く組み込みの画面で、プロジェクトをまたいだバックグラウンドの Claude Code セッションを一覧し、Needs input、Working、Completed などの状態でグループ化します。そこから起動したセッションには専用の git worktree が割り当てられます。リサーチプレビューです。
Claude Code のセッションを再開するにはどうすればよいですか?
プロジェクトのディレクトリで claude --continue(または claude -c)を実行すると直近の会話を開き直し、claude --resume(または claude -r)を実行すると一覧から選べます。実行中のセッション内では /resume が同じ働きをします。そのあと、計画ファイルをエージェントに示して、タスクの現状を伝えてください。
2つの Claude Code エージェントが同じファイルを編集しないようにするにはどうすればよいですか?
git worktree add <path> -b <branch> で各エージェントに専用の git worktree を用意し、各セッションをそれぞれの worktree フォルダで始めます。あるいは、これを自動で行う Agent View からセッションを起動します。履歴は共有しますが作業ファイルは共有しません。各タスクが終わったらブランチをマージしてください。
CLAUDE.md には何を書くべきですか?
プロジェクトのすべてのセッションが必要とするルールです。ビルドとテストの方法、コーディング規約、触ってはいけないフォルダやファイル、コミットの書き方などです。タスク固有の詳細は入れないでください。それらは、そのタスクのためにエージェントが読む計画や要求のファイルに置きます。
エージェントセッションマネージャーとは何ですか?
プロジェクトをまたいで AI コーディングエージェントのセッションを追跡するツールです。どれが実行中か、どれがあなたを待っているか、どう再開するかが分かります。Claude Code の Agent View は Claude Code 向けのその1つです。PMDesk のように Codex も動かし、要求、計画、Todo、ドキュメントをセッションの隣に置いて、各タスクのコンテキストを1か所にまとめるものもあります。