
2026/08/09 0:34
他の Claude コードセッションにメッセージを送信する
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Claude Code から強力な新機能「Cross-session messaging」が導入されました。これにより、履歴やファイルを共有せずに、別のコーディングセッション間で直接通信できるようになります。これにより、特殊なツールの使用を介して並行タスク、サブエージェント、およびチームメンバー間のシームレスな調整が可能になります。ユーザーは
ListAgents を使用して到達可能なセッションを特定し、SendMessage を使用して特定のターゲットへメッセージを送信できます。重要なのは、送信者の権限に関わらず、成功裏に配信されたあらゆるメッセージが使用制限にカウントされることです。エージェントの再開やリモート制御を必要とする方法とは異なり、このシステムは同マシンのタスクでは共有ファイルシステム、ピア間の処理では特定のコンテナ設定に依存します。メッセージはセッションがアクティブまたはアイドル状態の際には自動的に読み込まれますが、権限の不一致により承認ダイアログが表示され、未解決の場合には 5 分後に期限切れになる場合があります。現時点で macOS と Linux(WSL 2 を含む)においてバージョン 2.1.224+ で利用可能であり、Windows や Amazon Bedrock などの主要なクラウドプラットフォームは除外されています。制限事項としては、プレーンテキストだけの送信と、クロスマシンの相互作用におけるシステム負荷を防ぐためのスロットルされたループが含まれ、セッションあたり最大 50 の待機メッセージが可能で、必要に応じてクロスマシンの承認を可能にする isolatePeerMachines オプションがあります。本文
クロスセッションメッセージングとは?
クロスセッションメッセージングは、Claude Code の独立したセッション間で情報をやり取りする機能です。以下の特性があります。
- 影響の事前警告: 一つのセッションでの変更が別のセッションに影響を与える場合、ユーザーに気づかれる前に警告できます。
- 情報の共有: あるセッションで得た答えを、他のセッションの課題解決に活用可能です。
- 独立した文脈: 「メッセージ」は会話履歴やファイルに含まれないテキスト片です。
注意: 特定の対話を完全に新しいコンテキストで行いたい場合は、**セッションを再開(resume)**してください。
使用するツールと範囲
この機能の実行には以下の 2 つのツールが使用されます。
: 到達可能なエージェント(宛先)を検出するためのツールListAgents
: 名前で指定された宛先へメッセージを送達するためのツールSendMessage
同じセッション内や、チーム内のサブエージェント・チームメイトへの通信も
SendMessage で可能ですが、本機能はあなた自身が開始・管理する独立したセッション間での通信に焦点を当てています。
使用タイミングとユースケース
あるタスクの進行中、以下のいずれかの場合にメッセージングを使用します:
- Claude が自主的に送信する場合: 他のセッションに影響を与える変更を行った後など、必要と判断した場合
- ユーザーが指示して送信する場合: Claude に具体的な依頼を行う場合
代表的なユースケース
- 発見事項の引き継ぎ:
- あるセッションで破壊的な変更や重要決定を下した際、Claude が影響を受けるエリアで作業中のセッションへ要約を伝えます。
- ユーザーが逐一説明する必要をなくせます。
- 並列ワーキングツリーの調整:
- セッション同士が別々のワークスペース(ワーキングツリー)で同一リポジトリを操作する場合、Claude が他のセッションへのコミット内容を通知します。
- 長期実行タスクの状況把握:
- 移行処理やテストランなどの長期間実行中のタスクから、監視するセッションへレポートを送信したり質問を受け付けたりできます。
- 異なるマシン間での返信:
- 他のマシン上のセッションや Web ブラウザ版からのメッセージへの回答が可能です。
- 注意: マシン間通信では会話を開始することはできず、宛先からのメッセージに対する返信のみ可能です。
他の機能との使い分け
Claude Code には、以下の他の方法に対応する専用機能があります。用途に合わせて選択してください:
- 対話を継続・文脈共有: 他のターミナルで作業を続けたい場合 → [セッションを再開(resume)]
- 自動生成チームの管理: Claude が複数セッションからなるチームを生成・管理する場合 → [エージェントチーム]
- 多数のセッション監視: 一つの地点から多くのセッションを見渡したい場合 → [エージェントビュー]
- モバイル/別デバイス操作: スマートフォンなどで直接セッションを操作したい場合 → [リモートコントロール]
- 外部イベント投入: CI 結果やチャットメッセージなどをセッション内に入れる場合 → [チャンネル]
メッセージの送信と確認
あるセッションが他者に必要な情報(発見事項、状況報告など)を持っている場合、Claude が直接伝達します。
宛先の検出
- ユーザーがツールを直接呼ぶ必要はありません。
- 宛先は
で検出され、ListAgents
で送付されます。SendMessage - コマンド:
(または/list-agents
)を実行して到達可能なセッションを確認します。/peers
到達可能なセッションのリスト
/list-agents の出力には以下の要素が含まれます:
- サブエージェント: 現在のセッション内で実行中のエージェントです。
- 注: エージェントチーム内のメンバーは別管理のため、このリストに含まれません。
- ローカルセッション: 同じマシンで稼働中の他のセッション(バックグラウンド含む)。
- リモートセッション: リモートコントロール接続中に表示されるセッション(他マシンのものや Web ブラウザ版)。
セッション名の確認
- 明示的に設定:
コマンドまたは/rename
フラグを使用。--name - 自動割り当て: 名称未指定の場合は、作業ディレクトリのフォルダ名から派生した名前(例:
)が与えられます。myapp-3f - 同名セッションの識別:
の出力には各セッションのワーキングディレクトリが表示されるため、同名でも区別できます。/list-agents
他マシンの制限
- ファイルシステム制約: セッションはディスク上のファイルを介して相互到達します。コンテナ内や異なるホスト間では相互到達できません(同一マシン内のみ可)。
- 返信アドレス: マシン外のセッションへの返信には、返信アドレスが必要です。これを欠いている場合は回答不能です。
- 承認の必須化:
をisolatePeerMachines
に設定すると、マシン外への送信にユーザーの明示的承認を必須とします。true
メッセージの配送と制御
受信側の Claude はアクティブなターンの隙間にメッセージを読み込みます。
配信のステータス
受信セッションは入局制御に基づき、メッセージを以下のいずれかに処理します:
- 配送済み(Delivered): Claude Code がメッセージを正常に引き渡します。
- 保留中(Held): ユーザー承認を得るまで、または設定変更により許可されるまで保留されます。
- 拒否(Refused): 配信前に破棄されます。
利用料の扱い: 配送されたメッセージは、ユーザーが直接入力したプロンプトと同様に使用量にカウントされます。
権限と安全性
- アクションの禁止: セッション内でブロックされたアクションを他セッションで実行させることはできません。
- 設定変更不可: 他のセッションから構成や
を変更させることはできません。CLAUDE.md - コマンド実行不可: メッセージ内の
などのコマンドはプレーンテキストとして処理され、決して実行されません。/compact - 権限プロンプト: 他セッションからのメッセージも受信側の権限ルールに従い、必要な場合のみプロンプトを表示します。
表示例
メッセージが到着すると:
- 送信元との会話中に表示されます(ターンの途中の場合はキュー待ち)。
- セッションがアイドル状態の場合には即座に処理され、
で展開可能な「Message from」行として表示されます。Ctrl+O
設定と制御(crossSessionInbound
)
crossSessionInbound他のセッションからのメッセージをどう扱うかを決定するために
crossSessionInbound を使用します。
プレセデンスルール
- 権限モードバイパスクラス(Plan モードなど): メッセージは配送され、送信セッションもバイパスすると判定された場合のみ保留されます。
- 通常の権限クラス(
,auto
,acceptEdits
など): 通常通り処理されます。dontAsk
デフォルト設定の場合
デフォルトではメッセージを保留し、承認ダイアログを開きます:
- [Approve]: そのメッセージを配送。
- [Deny] または閉じる: メッセージを破棄(期限切れ 5 分経過しても同様)。
- モード変更時の扱い: 権限クラスが変更されると再適用され、新しいルールに適合するメッセージのみ配送されます。
インバウンド制御の変更
- [受信停止]:
をcrossSessionInbound
に設定すると、入局メッセージをすべて破棄します(プロジェクト設定より優先)。refuse - [送信/リスト停止]: 権限拒否ルールで
とSendMessage
の名指し禁止を設定することで、送信と宛先検出自体を無効化できます。ListAgents
非対話型セッションへの扱い
または-p session
フラグで開始した長期間実行セッションもメッセージを受信・表示できます。-p worker- bare モード: ソケットをバインドしないため、メッセージ受信不可です。
- 承認ダイアログ:
セッションでは承認ダイアログを表示できず、設定変更により許可された場合に限り配送されます。-p
インボックスソケットの仕組み
クロスセッションメッセージング有効化時に、Claude Code はインボックスソケットをバインドします。
-
パスの確認方法:
コマンド実行時の/status
行(Peer address
で接頭)。uds:- 環境変数
(すべてのフック実行前)。CLAUDE_CODE_MESSAGING_SOCKET - ※各セッションは自身でソケットを使用し、親から継承しません。
-
到達条件:
- 自子プロセスからのメッセージ: クロスセッション制御の対象外ですが、検証により配送可能です(Linux では終了後も可能、macOS は動作中のみ可)。コンテナ内では検証不可。
- サンドボックス設定:
またはsandbox.network.allowAllUnixSockets
で制御されます。allowUnixSockets
制限事項と利用環境
必要バージョン
- Claude Code v2.1.224 以降が必要です。
プラットフォームの依存性
- OS: macOS と Linux(WSL 2 含む)のみ対応。ネイティブ Windows では利用不可。
- クラウドプロバイダー: Amazon Bedrock、AWS Claude Platform、Google Cloud Agent Platform、Microsoft Foundry では利用不可。
- 機能フラグ: 以下のフラグをオフにすると機能が無効化されます。
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICDISABLE_TELEMETRYDO_NOT_TRACKDISABLE_GROWTHBOOK
検出とブロックの診断
/list-agents の実行結果により、以下を区別できます:
- 機能なし: セッションが存在せず、クロスセッションメッセージングが設定されていません。
- 送信失敗(制限あり): 機能は有効だが、権限ルールや入局制御によりブロックされています。
ツールが無効化されている場合や、マシン外への一方向通信のみ許可される場合など。SendMessage
チャネル特性の制限
- プレーンテキストのみ: 構造化されたエージェントチームプロトコルメッセージは使用できません(チーム内限定)。
- メッセージループ防止:
- 送信元ごとのレート制限が有効。
- 同一メッセージの短期重複は破棄されます。
- セッションあたりの待機中メッセージ数は最大 50 に上限設定。
- ループは自律的に停止します。