Claude Code並列開発を支えるセッション間通信とworktree

POINT

  • Claude Codeのセッション間メッセージング(ListAgents / SendMessage)がmacOS・Linuxで利用可能になり、worktree分離とself-hosted runnerを組み合わせた並列開発フローが実用段階に入ったv2.1.224
  • v2.1.222でworktree分離セッションのファイル編集・Bash実行分離が全セッション種別に適用され、複数エージェントを同時に走らせても作業領域が混線しにくくなったv2.1.222
  • 本記事を読むと、セッション間通信の到達範囲・権限の仕組みと、個人〜小規模チームがどこまで安全に並列稼働を任せられるかの判断基準がわかる

セッション間メッセージングとは何が変わった?

Claude Codeのクロスセッションメッセージングは、あるセッションから別のセッションへテキストを送る仕組みだ。会話履歴やファイルは運ばれない。文脈全体を渡したいなら、セッション再開が必要になるMessage your other Claude Code sessions

対象セッションの検出にはListAgents、送信にはSendMessageを使う。この2機能がmacOSおよびLinuxで利用可能になったのがv2.1.224だv2.1.224。受信側が処理中なら、ツール呼び出しの合間にメッセージが読み取られる。処理中でなければ新しいターンが立つ。配信・保留・拒否は受信側が制御し、配信されたメッセージは通常のプロンプトと同様に利用量へ計上される。

worktree分離とself-hosted runnerはどう噛み合う?

並列開発でまず問題になるのは、複数セッションが同じファイルを取り合うことだ。v2.1.222ではworktree分離セッションとそのサブエージェントに対し、ファイル編集とBash実行の分離がすべてのセッション種別に適用されるよう修正されたv2.1.222。branchごとに作業ディレクトリが分かれるので、複数のClaude Codeが同時にコードを書いても衝突しにくい。

実行場所の選択肢も広がった。v2.1.224で追加されたself-hosted環境機能は、TeamおよびEnterpriseプランで自社のマシンやコンテナを実行場所にできるv2.1.224。同一マシン上のセッション間通信はセッションごとのソケットを経由し、Anthropicのサーバーは経由しない。ただしコンテナ内のセッションとホスト上のセッションは互いに到達できない。同じコンテナ内のセッション同士なら送信できる。この境界線を把握しておくと、runnerの構成ミスで意図しない指示が飛ぶ事故を避けられる。

権限面も強化された。crossSessionInboundとdialogExpiryの設定が追加され、権限バイパス中のセッションへのメッセージは承認待ちになる仕様に変わったv2.1.224。他セッションからのメッセージはユーザーの同意として扱われず、権限確認の承認やCLAUDE.mdの設定変更には使えない。v2.1.222ではさらに、SendMessageで他エージェントに送るメッセージが送信前に権限分類器で評価されるようになったv2.1.222

Claude Code セッション間通信と到達可能性の境界
同一マシン(ホスト) セッション A 〇 直通ソケット通信 セッション B 通信仕様: ・セッションごとの ソケットで直接通信 ・Anthropicサーバーを 経由しない ・相互メッセージ送信可 コンテナ境界 ホスト上のセッション × 到達不可 コンテナ内部領域 コンテナ内 Session C 〇 通信可能 コンテナ内 Session D ・ホスト ↔ コンテナは遮断 ・同一コンテナ内のみ送信可 ※Team/Enterprise機能 (Self-hosted runner環境) 別マシン / Web 自社マシンセッション △ 返信のみ送信可 別マシン / Web (Claude Code on the web) 通信制限: ・新規メッセージの 送信は不可 (×) ・受信済みメッセージへの 「返信」のみ可能 (〇) 1. 同一マシン(ホスト内通信) セッション A 〇 直通 セッション B ・ソケット経由で直接通信(Anthropicサーバー非経由) ・同一マシン上の全セッション間で相互通信が可能 2. コンテナ境界(ホスト vs コンテナ) ホストセッション × 到達不可 コンテナ領域 Session C ↔ D (〇) ・ホストとコンテナ間の境界をまたぐ通信はブロック ・同一コンテナ内部のセッション同士であれば通信可能 ※Team/EnterpriseプランのSelf-hosted実行場所 3. 別マシン / Claude Code on the web 自社マシン △ 返信のみ