プログラミング
他のClaude Codeセッションにメッセージを送る
Message your other Claude Code sessions (code.claude.com)
要約
Claude Codeの新機能であるクロスセッションメッセージングは、異なるセッション間でClaudeがテキストメッセージをやり取りできるようにします。これにより、あるセッションでの変更が他のセッションに影響を与えた場合に警告したり、問題の解決策を共有したりすることが可能になります。この機能は、特定のバージョン以上のClaude CodeとmacOS/Linux環境で利用でき、ユーザーはClaudeにメッセージ送信を促すことも、Claudeが自律的に必要と判断した場合に送信させることもできます。
全文翻訳
クロスセッションメッセージングには、Claude Code v2.1.224以降が必要で、macOSとLinuxで動作します。セッションが要件を満たしている場合、メッセージングは有効になり、有効化するための特別な操作は不要です。プロバイダーの要件と、セッションでそれが利用可能かどうかの確認方法については、可用性を参照してください。
クロスセッションメッセージングにより、ClaudeはあなたのClaude Codeセッションの1つから別のセッションへメッセージを配信できます。あるセッションでの変更が別のセッションの作業に影響を与えた場合、Claudeはあなたが気づく前にそのセッションに警告できます。あるセッションが別のセッションがブロックされている問題を解決した場合、Claudeはその回答を転送できます。メッセージとは、あるClaudeが別のClaudeに書き込むテキストの一部であり、会話履歴やファイルではありません。会話全体やそのコンテキストを移動するには、代わりにセッションを再開してください。
Claudeはこれに2つのツールを使用します: ListAgents(到達可能なエージェントを検出するため)と SendMessage(名前でエージェントにメッセージを配信するため)です。同じSendMessageツールを使用して、Claudeは単一のセッションまたはチーム内のサブエージェントやエージェントチームのメンバーにもメッセージを送ることができます。このページでは、独立したセッション間のメッセージについて説明します。
クロスセッションメッセージングを使用するタイミング
一方のセッションがもう一方のセッションが必要としているものを持っている場合に、メッセージングを使用します。Claudeは必要性を認識した場合、例えば他のセッションの作業に影響する変更を行った後などに、自律的にメッセージを送信できます。また、ユーザーが送信を依頼することもできます。一般的なケースは以下の通りです。
発見事項の引き継ぎ: あるセッションが破壊的な変更を発見したり、決定を下したりした場合、Claudeは影響を受ける領域で作業しているセッションのためにそれを要約し、ユーザーがそこで再説明する必要がなくなります。
並列ワークツリーの調整: セッションが別々のワークツリーで同じリポジトリを操作している場合、Claudeは他のセッションに着陸した内容を伝えることができます。
長時間実行される作業からのステータスの取得: マイグレーションやテスト実行の結果を、あなたが監視しているセッションに報告させたり、そこから自分で問い合わせたりできます。
マシンを跨いだ返信: 別のマシンまたはWeb上のセッションから届いたメッセージに返信します。マシンを跨いだ場合、Claudeは返信のみ可能です。交換を開始することはできません。
ユーザーが開始および制御する独立したセッション間でメッセージングを使用します。Claude Codeには、他の方法で複数のセッションを実行または到達するための専用機能があるため、実行していることに適した組み込み機能を使用してください。
別の端末で1つの会話を続ける場合、またはそのコンテキストを新しいセッションと共有する場合は、セッションを再開してください。
Claudeが生成および監視するセッションの協調チームの場合は、エージェントチームを使用してください。
1つの場所から多くのセッションを監視および制御する場合は、エージェントビューを使用してください。
電話や他のデバイスからセッションを制御する場合は、セッション同士がメッセージをやり取りするのではなく、リモートコントロールを使用してください。
CIの結果やチャットメッセージなどの外部イベントをセッションにプッシュするには、チャンネルを使用してください。
他のセッションにメッセージを送る
一方のセッションが、もう一方のセッションが必要とする情報(発見事項、ステータス、決定など)を学習した場合、Claudeは端末間でのコピー&ペーストなしでそれを転送します。ClaudeはListAgentsでターゲットを見つけ、SendMessageで送信するため、ユーザーがこれらのツールを直接呼び出す必要はありません。Claudeは、要求されなくてもメッセージを送信することを決定できますし、ユーザーが依頼することもできます。自分で依頼するには、Claudeに他のセッションに知ってほしいことや行ってほしいことを伝えます。この例は、Claudeが送信するメッセージではなく、ユーザーが入力するプロンプトです。
私の他の端末で実行中のセッションに、マイグレーションが完了したかどうか尋ねてください。
Claudeは実際のメッセージ自体を作成するため、プロンプトは内容を指示する必要はありません。このプロンプトは、要約を依頼していますが、その文言は指定していません。Claudeが送信する内容は変動します。
決済APIで作業しているセッションに、私たちが今行ったことの概要を説明してください。
Claudeが送信するメッセージがどのように表示されるか、例を含めて確認するには、メッセージの外観を参照してください。
メッセージ配信
受信側のClaudeは、アクティブなターンの間にツール呼び出しの合間にメッセージを読み取るため、実行中のツールが中断されることはありません。受信セッションがアイドル状態の場合、Claude Codeはメッセージで新しいターンを開始します。デフォルト設定の2つの通常のインタラクティブセッション間では、Claude Codeはメッセージを配信します。ただし、すべての構成で配信が保証されるわけではありません。受信セッションは、各受信メッセージを自身の受信制御に対してチェックし、チェックは3つの結果のいずれかで終了します。
配信済み: Claude Codeはメッセージを受信側のClaudeに渡します。
保留中: Claude Codeはメッセージを未配信のまま保留します。保留中のメッセージは、ユーザーが承認するか、後続のモードまたは設定の変更が許可した場合にのみClaudeに到達します。
拒否: Claude Codeはメッセージを配信せずに破棄します。
配信されると、メッセージはタイプしたプロンプトと同様に使用量としてカウントされ、受信側のClaudeは同じ方法で送信者に返信できます。ただし、一方通行のクロスマシンケースを除く。
パーミッションの境界はセッションごとに維持されます。Claudeは、自身のセッションで拒否またはブロックされたアクションを別のセッションに要求しないように指示されており、または自身のパーミッション設定でブロックされるようなアクションを要求しないように指示されており、そのような作業は代わりにユーザーにルーティングされます。受信側では、受信セッション自身のパーミッションプロンプトとルールは、メッセージが要求するすべてのものに引き続き適用されます。
Claudeが到達できるセッションを確認する
Claudeはメッセージのターゲットを自律的に見つけるため、送信を依頼する前に何かを実行する必要はありません。Claudeが到達できるセッションを自分で確認するには、/list-agents コマンドを実行します。これは、応答する名前とともに各セッションをリストし、その名前がClaudeがメッセージを宛てる場所です。リストには以下が含まれます。
サブエージェント: 現在のセッション内で実行されているエージェント。エージェントチームのメンバーはリストされません。Claudeはチーム独自の担当者リストを通じて彼らにメッセージを送ります。
他のローカルセッション: 同じマシンで実行されているClaude Codeセッション(バックグラウンドセッションを含む)。セッションは、インボックスソケットをバインドしている場合にのみ表示されます。
このマシン以外のセッション: リモートコントロールが接続されている間表示され、「リモートコントロール」とラベル付けされます。これらは、他のマシン上のあなたのセッションや、Web上のClaude Codeセッションです。Claudeは、これらのセッションとの会話を開始するためにメッセージを送信することはできません。それらから届いたメッセージに返信することしかできません。他のマシン上のセッションへのメッセージを参照してください。
セッションは、/rename コマンドまたは --name フラグで設定した名前で応答します。設定しない場合、Claude Codeがセッションに名前を付けます。インタラクティブセッションには、作業ディレクトリのフォルダ名から派生した名前が付けられます。例えば、myapp-3f のようになります。2つのセッションが同じ名前を持つ可能性があります。/list-agents の出力には、各ローカルセッションの作業ディレクトリが表示され、同じ名前のセッションが異なるディレクトリで実行されている場合に区別するのに役立ちます。Claude自身のリストは、各行に短い識別子を追加し、名前が衝突した場合にアドレスで使用します。
他のマシン上のセッションにメッセージを送る
他のセッションがどこで実行されているかによって、メッセージの移動方法とClaudeがここで送信できるものが決まります。
他のセッションの実行場所 | メッセージの移動方法 | ここでClaudeが送信できるもの
---|---|---
このマシン上 | セッションごとのソケット経由、Anthropicサーバー経由ではない | 新規メッセージと返信
他のマシン上 | Anthropicサーバー経由、そのマシンのリモートコントロール接続経由で到着 | 返信のみ
Web上のClaude Code | Anthropicサーバー経由、クラウドセッションに直接 | 返信のみ
同じマシンでの配信は、機能が有効になっている場所ならどこでも機能します。各セッションはディスク上のファイルに自身を登録し、そこにインボックスソケットをバインドします。Claudeがローカルセッションをリストまたはメッセージングする場合、Claude Codeはこれらのファイルを読み取ってそれらを見つけるため、2つのセッションは同じファイルを見ることができる場合にのみ互いに到達できます。コンテナには独自のファイルシステムがあるため、コンテナ内のセッションとホスト上のセッションは互いに到達できません。同じコンテナ内の2つのセッションは、セルフホストランナー上でもメッセージをやり取りできます。返信には返信アドレスが必要であり、ほとんどのメッセージにはそれが含まれています。このマシン以外のセッションへの返信は、返信セッションがリモートコントロールに接続されていない間に送信された場合でも、Anthropicサーバーへの直接リクエストとして送信されますが、返信アドレスなしで到着するため、受信者はそれに答えることができません。Claudeはそのように指示されています。