Visual Studio CodeのAgents windowで、長く続いたCopilot/Claudeとの会話から別の方針を試したいものの、要件や前提条件を最初から説明し直すのは非効率です。この問題は、multi-chatとpeer chatへのforkで解決できます。
対応するagent host sessionでは、1つのセッション内に複数のチャットを作成できます。さらに、会話途中のチェックポイントからforkすると、その地点までのcontextを引き継いだpeer chatが開きます。元の会話はそのまま残り、分岐後のチャットは独立して進行します。
GitHubが2026年7月30日に公開した公式情報は、VS Code 1.127~1.131の更新をまとめたものです。この期間に、Copilot向けmulti-chatの管理改善、peer chatへのfork、Claudeへのmulti-chat対応、チャット操作用キーボードショートカットなどが追加されました。Agents window自体はpublic previewのため、今後UIや対応範囲が変わる可能性があります。(The GitHub Blog)
VS Code Agents windowのmulti-chatとpeer chat forkとは
multi-chatは、1つのagent sessionの中に複数のチャットを持たせる機能です。
従来のように会話を1本の長い履歴として続けるだけでなく、次のような作業ができます。
- 実装とテストを別チャットで並行して進める
- 同じ要件に対して複数の設計案を比較する
- メインチャットを止めずに別の作業を依頼する
- 会話途中から別案を試し、元の方針と比較する
- チャットごとに異なるモデルを選択する
各チャットは、それぞれ独自の会話履歴、タイトル、進行状態、agentまたはlanguage modelの選択を保持します。一方で、同じセッションに属するチャットは、セッションのworkspaceとworktreeを共有します。現在の公式ドキュメントでは、multi-chatに対応する代表的なセッションとしてCopilot CLIとClaudeが挙げられています。(Visual Studio Code)
VS Code 1.127と1.128で何が追加されたのか
| バージョン | 主な変更 |
|---|---|
| VS Code 1.127 | Copilotのagent host sessionでチャットのclose、reopen、deleteに対応。fork先が別セッションではなく、同じセッション内のpeer chatになるよう改善 |
| VS Code 1.128 | Claudeのagent host sessionでもmulti-chatに対応。チャットの作成、切り替え、再表示、終了などをキーボードで操作可能に |
| VS Code 1.127~1.131 | 2026年7月の更新として、Agents window、multi-chat、モデル選択、レビュー操作などを総合的に改善 |
peer chatへのfork自体はVS Code 1.127のリリースノートで詳しく説明され、VS Code 1.128ではClaudeへの対応とキーボード操作が追加されています。(Visual Studio Code)
New Chat、peer chatへのfork、新しいsessionの違い
multi-chatを使う際に混同しやすいのが、+ New Chat、fork、新しいsessionの違いです。
| 操作 | 元の会話履歴 | Sessions一覧での扱い | workspace・worktree | 適した用途 |
|---|---|---|---|---|
+ New Chat | 引き継がない | 同じsession内のタブ | 元のsessionと共有 | 同じプロジェクトの独立した別作業 |
| peer chatへfork | fork地点まで引き継ぐ | 同じsession内のタブ | 元のsessionと共有 | 同じ前提から別案を試す |
| New Session | 引き継がない | 別のtop-level session | 設定により別worktreeを利用可能 | 作業環境や変更内容も分離したい場合 |
重要なのは、New Chatは空の会話として開始される点です。元の会話のcontextを使いたい場合は、New Chatではなくforkを選びます。
forkしたpeer chatは、指定した地点までの会話履歴を継承します。その後は元のチャットとは独立して進むため、一方で追加したプロンプトや回答が、もう一方の会話履歴へ自動的に混ざることはありません。(Visual Studio Code)
Copilot/Claude会話を元の履歴を残したままpeer chatへ分岐する方法
Agents windowを開く
Agents windowは、次のいずれかの方法で開けます。
- VS Codeのタイトルバーにある「Open in Agents」を選択する
- コマンドパレットで「Chat: Open Agents Window」を実行する
- ターミナルやコマンドプロンプトで次を実行する
code --agents
Agents windowを利用するには、VS CodeへのGitHubサインインとGitHub Copilotへのアクセスが必要です。(Visual Studio Code)
対応するagent sessionを開く
Agents windowの左側にあるSessions一覧から、fork元にするセッションを選択します。
multi-chatを利用する場合は、Copilot CLIまたはClaudeなど、multi-chatに対応したagent host sessionを使用します。すべてのCopilotセッションが同じ挙動になるわけではありません。Copilot Cloudなど、セッション形式によってはチャットが1つだけ表示される場合があります。(Visual Studio Code)
分岐したい地点の「Fork Conversation」を選択する
任意の地点から分岐する手順は次のとおりです。
- 元のチャットを開く
- 分岐点にしたいユーザーのリクエストへマウスポインターを合わせる
- 表示されたチェックポイント用ツールバーから「Fork Conversation」を選択する
- 同じsession内に新しいpeer chatが作成される
- peer chatで別の方針や追加作業を指示する
fork先には、選択したリクエストを含む、その地点までの会話履歴が引き継がれます。新しいpeer chatにはタイトルが自動生成され、以後は元のチャットから独立して動作します。(Visual Studio Code)
実際のプロンプト例は次のとおりです。
ここまでの要件は維持したまま、既存コードへの変更量を最小限にする案を作成してください。
元のチャットでは抜本的なリファクタリングを進め、forkしたpeer chatでは最小変更案を作らせる、といった比較ができます。
会話全体を引き継いでforkする
現在の会話を最後まで含めて分岐したい場合は、チャット入力欄で次を実行します。
/fork
/forkでは、現在のチャットの全履歴がfork先へコピーされます。
使い分けは次のとおりです。
| fork方法 | 引き継ぐ範囲 | 適したケース |
|---|---|---|
| Fork Conversation | 選択したチェックポイントまで | 途中の設計判断からやり直したい |
/fork | 現在の全会話 | 最新状態を維持したまま別案を試したい |
single-chat sessionやagent hostを使用していないsessionでは、fork先が同じsession内のpeer chatではなく、別の独立したsessionとして作成されます。forkしたのにSessions一覧へ新しい項目が増えた場合は、不具合とは限りません。(Visual Studio Code)
空のpeer chatを追加して別作業を始める方法
会話履歴を引き継ぐ必要がなく、同じプロジェクト内で別の作業を始めたい場合は、forkではなくNew Chatを使用します。
- 対応するagent host sessionを開く
- セッション上部の「+ New Chat」を選択する
- 新しいタブにプロンプトを入力する
WindowsとLinuxでは、Agents window内でCtrl + Tを押しても新しいチャットを作成できます。macOSではCommand + Tです。
New Chatで作成したチャットは空の状態から始まります。ほかのチャットの履歴は自動的に引き継がれません。ただし、同じsessionのworkspaceとworktreeは共有します。(Visual Studio Code)
たとえば、次のような役割分担に向いています。
| チャット | 担当させる作業 |
|---|---|
| Main Chat | APIエンドポイントの実装 |
| Peer Chat 1 | 単体テストの追加 |
| Peer Chat 2 | READMEと利用手順の更新 |
| Peer Chat 3 | 変更内容のコードレビュー |
作業対象のファイルを分けると、複数のチャットを並行稼働させても変更内容を整理しやすくなります。
チャットのclose、reopen、deleteを使い分ける
multi-chatでは、チャットを閉じてもすぐには削除されません。
チャットを一時的に閉じる
チャットタブの×を選択すると、そのチャットは非表示になります。会話履歴は残っているため、作業が終わったチャットや一時的に使わないチャットを整理する目的に向いています。
閉じたチャットを再表示する
セッション内の「Conversations」ドロップダウンを開き、再表示したいチャットを選択します。
直前に閉じたチャットは、WindowsとLinuxではCtrl + Shift + T、macOSではShift + Command + Tでも再表示できます。
チャットを完全に削除する
不要になった非メインチャットは、タブのコンテキストメニューから「Delete Chat」を選択して削除できます。
closeとは異なり、deleteしたチャットは元に戻せません。会話を一時的に隠したいだけの場合は、Delete Chatではなくタブの×を使用してください。表示中と非表示のチャットは、会話履歴を含めてウィンドウの再読み込み後も復元されます。(Visual Studio Code)
Agents windowのmulti-chat用キーボードショートカット
multi-chatのショートカットはAgents window内に限定して動作します。
| 操作 | Windows | Linux | macOS |
|---|---|---|---|
| 新しいチャットを作成 | Ctrl + T | Ctrl + T | Command + T |
| 直前に閉じたチャットを再表示 | Ctrl + Shift + T | Ctrl + Shift + T | Shift + Command + T |
| 次/前のチャットへ移動 | Ctrl + Shift + ] / [ | Ctrl + Shift + ] / [ | Shift + Command + ] / [ |
| 開いているチャットを切り替え | Ctrl + Tab / Ctrl + Shift + Tab | Ctrl + Tab / Ctrl + Shift + Tab | Control + Tab / Control + Shift + Tab |
| アクティブなチャットを閉じる | Ctrl + F4 | Ctrl + W | Command + W |
| 非メインチャットを削除 | Delete | Delete | Command + Backspace |
| チャット検索用pickerを開く | Ctrl + Shift + O | Ctrl + Shift + O | Shift + Command + O |
チャット検索用pickerでは、開いているチャットと閉じているチャットの両方を検索できます。タブが増えて目的の会話を探しにくくなった場合に便利です。(Visual Studio Code)
peer chatへのforkはGitブランチの分岐ではない
実務で最も注意したいのは、会話をforkしても、コードの作業領域まで自動的に分離されるわけではないことです。
同じmulti-chat sessionに属するチャットは、それぞれ独立した会話履歴を持ちますが、workspaceとworktreeを共有します。また、セッション上部のChangesには、すべてのpeer chatによる変更がまとめて表示されます。(Visual Studio Code)
つまり、次のような使い方には注意が必要です。
Main Chat:認証処理を方式Aへ書き換える
Peer Chat:同じ認証処理を方式Bへ書き換える
両方のチャットが同じファイルを並行して編集すると、変更内容が混在し、どちらの案による編集なのか判断しにくくなります。
multi-chatに向いている分担
- 実装とテストで担当ファイルを分ける
- コード変更とドキュメント更新を分ける
- 一方には実装させ、もう一方にはレビューだけを依頼する
- 複数案をコード化する前に、設計案だけ比較させる
別worktreeに分けたほうがよいケース
- 同じファイルへ異なる実装を加えたい
- 大規模なリファクタリング案を比較したい
- 一方の変更がもう一方へ影響してほしくない
- それぞれを独立してビルド、テスト、commitしたい
この場合はpeer chatではなく、別のsessionを作成し、Copilot sessionの作成時に「New Worktree」を有効にする方法が適しています。Agents windowでは、新しいCopilot sessionをworktree isolationで開始するか、既存フォルダーを共有するかを選択できます。(Visual Studio Code)
multi-chatが表示されない場合の確認ポイント
「+ New Chat」が表示されない
現在開いているsessionがmulti-chatに対応しているか確認します。
現行の公式ドキュメントでは、Copilot CLIとClaudeが対応例として挙げられています。対応していないsessionでは、チャットは1つだけ表示されます。(Visual Studio Code)
forkすると別のsessionが作成される
single-chat sessionまたはagent hostを使用していないsessionでは、fork先はpeer chatではなく、独立した新しいsessionになります。
同じsession内にforkしたい場合は、対応するmulti-chat agent host sessionで操作してください。(Visual Studio Code)
Claudeでmulti-chatを利用できない
ClaudeをAgents windowのagent host経由で実行できるか確認します。環境によっては、次の設定が組織によって管理されています。
chat.agentHost.enabled
chat.agents.claude.preferAgentHost
企業や組織の管理下にある端末では、ユーザー自身で設定を変更できない場合があります。その場合は、VS CodeやGitHub Copilotの管理者へagent hostの利用可否を確認する必要があります。(Visual Studio Code)
閉じたチャットが見つからない
タブの×で閉じたチャットは削除されていません。「Conversations」ドロップダウンから再表示できます。
ただし、「Delete Chat」を実行したチャットは復元できません。(Visual Studio Code)
Changesに複数チャットの編集が混ざる
これはmulti-chat sessionの仕様です。セッションのChangesには、すべてのpeer chatによる変更が集約されます。
変更元を把握しやすくするには、チャットごとに担当ファイルを分け、各プロンプトに編集対象を明記してください。(Visual Studio Code)
最初に試すなら設計方針の比較がおすすめ
VS Code Agents windowのmulti-chatとpeer chat forkを初めて使う場合は、同じファイルを並行編集させるより、設計方針の比較から始めると安全です。
たとえば、要件整理が終わった地点で会話をforkし、次のように役割を分けます。
元のチャット:
既存構造を整理するリファクタリング案を作成する
forkしたpeer chat:
現在の構造を維持した最小変更案を作成する
両方の提案を比較してから、採用するチャットだけに実装を依頼すれば、元のcontextを再入力せずに複数案を検討できます。
まずはVS Codeを該当機能を含むバージョンへ更新し、Agents windowでCopilot CLIまたはClaudeのsessionを開いてください。そのうえで、設計判断を行ったリクエストへマウスポインターを合わせ、「Fork Conversation」からpeer chatを作成するのが最も分かりやすい試し方です。

コメント