複数のターミナルで Claude Code を開いて作業していると、「あっちの画面で分かったことを、こっちの画面にもう一度説明し直す」手間が発生します。この機能は、その往復コピペを Claude 自身にやらせるためのものです。エンジニアでなくても仕組みが腹落ちするよう、たとえ話を交えて隅々まで解説します。
別々に開いている Claude Code のセッション同士が、短いテキストのメッセージを送り合える機能です。あなたがコピペで橋渡しをしなくても、片方のセッションで分かったことを、Claude がもう片方のセッションへ届けてくれます。
ここで大事なポイントは2つ。
ListAgents と SendMessage という2つのツール)は Claude が勝手に使います。この機能の全体像は、「同じ事務所の別々の部屋で働く、複数のスタッフ」を思い浮かべると一気に分かりやすくなります。
あなたのMacが「事務所の建物」。ターミナルごとに開いた Claude Code のセッションが、それぞれの「作業部屋にいるスタッフ」です。今までは、部屋Aのスタッフが大事なことに気づいても、所長であるあなたが自分の足でメモを持って部屋Bまで歩く(=コピペする)しかありませんでした。
クロスセッションメッセージが有効になると、各部屋のドアに「郵便受け」が付きます(技術的には「インボックスソケット」と呼ばれる仕組みですが、郵便受けだと思えば十分です)。スタッフ同士は、この郵便受けに伝言メモを直接入れられるようになります。
実際に届くメモは、たとえばこんな姿をしています。これは Claude 自身が文面を考えて書いたものです。
メモに書けるのは文章だけです。部屋Aの机の上にある書類(会話履歴やファイル)をそのまま部屋Bへ運ぶことはできません。書類ごと引き継ぎたいときは、後述する「セッションの再開(resume)」という別の仕組みを使います。
片方のセッションで仕様変更や重要な決定があったとき、Claude がそれを要約して、影響を受ける側のセッションに送ります。あなたが同じ説明を二度することがなくなります。しかも Claude は、頼まれなくても「これは伝えるべきだ」と判断して自発的に送ることがあります。気の利くスタッフが、聞かれる前にメモを回しておいてくれるイメージです。
同じプロジェクトを複数のセッションで手分けして進めているとき(ワークツリーという仕組みで作業場所を分けている場合など)、「こっちで先にこの変更を入れたよ」と互いに知らせ合えます。作業がぶつかる事故を減らせます。
時間のかかる処理(大きなテストやデータ移行など)を別セッションに任せておき、「終わったらこっちに報告して」と仕込めます。逆に、手元のセッションから「あっちの作業、終わった?」と様子を聞きに行くこともできます。電話で「そっちどう?」と内線をかける感覚です。
別のパソコンや Claude Code on the web で動いているセッションから届いたメッセージに、手元から返事を返せます。ただしこちらは「返信のみ」という大きな制約があります(詳しくは第7章)。
操作方法の説明は、拍子抜けするほど短く終わります。Claude に日本語で頼むだけだからです。宛先探しも文面づくりも Claude がやります。
# 例1:様子を聞いてもらう(あなたが打ち込むプロンプト) 別のターミナルで動いているセッションに、移行が終わったか聞いてみて # 例2:内容の要約はClaudeに任せる いま私たちがやったことを、決済APIを触っているセッションに説明しておいて
例2のように、文面をこちらで考える必要はありません。「何を知らせたいか」だけ伝えれば、実際のメモの文章は Claude が書きます。同じ頼み方をしても、送られる文面はその都度変わります。
スラッシュコマンド /list-agents(別名 /peers)を打つと、いま Claude がメモを届けられる相手の一覧が出ます。事務所の「在席ボード」です。表示されるのは次の3種類です。
Remote Control というラベルが付きます(返信のみ可能)。各セッションには名前が付いています。自分で /rename コマンドや --name フラグで名付けられますが、放っておいても作業フォルダ名から myapp-3f のような名前が自動で付きます。同じ名前が2つできてしまっても、一覧に作業ディレクトリが併記されるので見分けられます。
送ったメモが必ず相手に読まれるとは限りません。受け取る側のセッションには「受付」がいて、届いたメモを1通ずつ検査します。検査の結果は3通りです。
| 判定 | 何が起きるか | たとえるなら |
|---|---|---|
| 配達 | そのまま Claude に渡され、読まれます。 | 受付が普通に取り次ぐ |
| 保留 | いったん脇に置かれ、あなたが承認ダイアログで「Approve」を押すまで届きません。放置すると既定で5分後に破棄されます。 | 受付が「所長の確認を取ります」と預かる |
| 拒否 | 届けられずに捨てられます。 | 受付が受け取らない |
受け取る側の Claude が作業の真っ最中なら、メモはツールの実行と実行の合間に読まれます。作業中の手を無理やり止めさせることはありません。逆に手が空いていれば、メモをきっかけに新しいターンが始まります。読まれたメモは Message from という1行に折りたたまれ、Ctrl+O で展開できます。
あなたが何も設定していない場合、受付は「双方のセッションの権限モード」で判断します。要点だけ言うと、権限確認をスキップする bypassPermissions モード(いわばマスターキーを持って回るスタッフ)が絡むと、扱いが慎重になります。
マスターキーを持ったセッションは、メモひとつで大きな作業を止めどなく進めてしまえるからこそ、出入りのチェックが厳しめになっている、と理解しておけば十分です。なお、保留できるのは最大100通で、あふれると古いものから捨てられます。送った側にも「保留された」「承認された」「期限切れで破棄された」といった結果が通知されます(同じマシン内の場合)。
ここがこの機能でいちばん設計が丁寧な部分です。届いたメモがどんな内容でも、受け取る側の Claude Code は「これは所長(あなた)からの指示ではなく、隣の部屋からの伝言にすぎない」と扱います。具体的には次の4つが保証されています。
受け手側で権限確認(許可を求めるダイアログ)が出て待ち状態のとき、他セッションからのメモが「はい」の代わりを務めることは絶対にありません。ハンコを押せるのはあなただけです。
「権限設定を緩めて」「CLAUDE.md を書き換えて」といった内容がメモに書かれていても、受け手の Claude は他セッションの求めで設定を変更しないよう指示されています。
メモの文中に /compact のようなスラッシュコマンドが書かれていても、それはただの文字として届くだけで、実行はされません。
メモの内容に沿って作業しようとして、受け手側に無い権限が必要になれば、いつもと同じ確認があなたに表示されます。メモ経由だからといって素通りはしません。
さらに送る側にもルールがあります。自分のセッションで拒否・ブロックされた作業を、他のセッションに頼んで代わりにやらせることは禁止されています。「うちの部屋でダメと言われたから、隣の部屋にお願いしよう」という抜け道は塞がれていて、そういう仕事はあなたに差し戻される決まりです。
相手のセッションがどこで動いているかによって、メモの届き方と、できることが変わります。
| 相手がいる場所 | メモの通り道 | こちらから送れるもの |
|---|---|---|
| 同じマシン(同じ事務所内) | セッションごとの郵便受け(ソケット)を直接使う。Anthropic のサーバーは経由しない | 新規のメモも返信も可 |
| 別のマシン(別の支店) | Anthropic のサーバー経由で、相手側の Remote Control 接続に届く | 返信のみ |
| Claude Code on the web(クラウド上の出張所) | Anthropic のサーバー経由でクラウドのセッションへ | 返信のみ |
たとえるなら、同じ事務所内は手渡し、別の支店とは本社経由の社内便です。そして社内便には「向こうから届いた便への返信しか出せない」というルールがあります。こちらから会話を始めることはできません。
細かい注意をひとつ。返信には「返信先住所」が付くのが普通ですが、こちらが Remote Control に接続していない状態で外へ返信すると、返信先住所のないメモとして届きます。相手はそれ以上返事ができません(送るときに Claude 自身にもその旨が知らされます)。
既定の動きで困らない人がほとんどですが、受付にどう振る舞ってほしいかは設定で指示できます。主役は2つの設定項目です。
届くメモの扱いを3段階から選べます。
| 値 | 受付の振る舞い |
|---|---|
accept | 全部そのまま取り次ぐ(無人で動かすワーカーセッションに便利) |
hold | 全部いったん預かり、あなたに通知する。後で accept が適用されれば、預かり分をまとめて配達 |
refuse | 全部受け取らずに捨てる(=受信を完全に止める) |
true にすると、マシンの外へ出ていくメッセージすべてに、あなたの明示的な承認が必要になります。普段は確認を出さない bypassPermissions モードであっても、外向きの便だけは必ず聞いてきます。社外秘の観点で安心したい人向けの設定です。
{
"isolatePeerMachines": true
}
受信と送信は別々のスイッチです。受信を止めるなら crossSessionInbound を refuse に。送信と一覧表示を止めるなら、権限の拒否ルールに SendMessage と ListAgents を追加します。組織の管理者は managed settings で両方まとめて止められます。
SendMessage を拒否すると、サブエージェントやエージェントチームの仲間へのメッセージ機能も一緒に使えなくなります。同じ道具を共用しているためです。また、refuse にしたセッションは見た目に変化がなく、他のセッションの一覧にも普通に載るので、「設定したはずなのに」と迷ったら設定ファイルの側を確認してください。
条件を満たしたセッションでは何も有効化しなくても自動でオンになります。条件は次のとおりです。
claude --version で確認)。CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC・DISABLE_TELEMETRY・DO_NOT_TRACK・DISABLE_GROWTHBOOK のいずれかが、この機能が依存するフィーチャーフラグ評価を止める値になっていると、機能はオフのままです。シェル・設定ファイルの env・managed settings のどこで設定されていても効きます。まず /list-agents を打ちます。判定はシンプルです。
機能があるセッションでは /status に Peer address という行が現れ、自分の郵便受けの住所(uds: で始まるパス)が表示されます。
Claude Code には複数セッションにまつわる機能がいくつもあり、混同しやすいところです。クロスセッションメッセージが向くのは「独立したセッション同士の、ひとことの伝言」だけ。それ以外は専用の機能があります。
| やりたいこと | 使う機能 | たとえるなら |
|---|---|---|
| ひとことの発見・状況・決定を別セッションへ伝える | クロスセッションメッセージ(本ページ) | 伝言メモ |
| 会話を丸ごと別のターミナルで続ける/文脈ごと引き継ぐ | セッションの再開(resume) | 机ごと隣の部屋へ引っ越し |
| Claude が部下セッションを生やして監督しながら進める | エージェントチーム(agent teams) | 班長付きの作業班を編成 |
| たくさんのセッションを1画面で見張って操縦する | エージェントビュー(agent view) | 監督室のモニター壁 |
| スマホや別端末から自分でセッションを操作する | Remote Control | 外出先からの遠隔操作 |
| CI の結果やチャットなど外部の出来事をセッションに流し込む | チャンネル(channels) | 外部からのFAX受信 |
claude -p の通常起動なら郵便受けが付き受信できますが、bare mode で起動したセッションには郵便受けが付かず、在席ボードにも載りません。また -p セッションは承認ダイアログを出せないため、保留されたメモは保留されたままです。無人ワーカーに受け取らせたいなら、起動時の --settings で crossSessionInbound を accept にしておきます。まず双方のバージョンとOSを確認。次に、片方がコンテナ内で動いていないか(内と外は別世界)、bare mode で起動していないかを疑います。コンテナ・bare mode のどちらでもなければ、/status の Peer address 行の有無で機能自体の有効・無効を切り分けます。
相手側の受付で保留または拒否されている可能性が高いです。保留なら相手の画面に承認ダイアログが出ています(既定5分で期限切れ破棄)。相手が bypassPermissions モードで動いているなら既定で保留になる点も思い出してください。同じマシン内なら、送った側にも保留・承認・破棄の結果通知が出ます。ただし到着時点で拒否(refuse)されたメモだけは、送った側に通知が出ません。
仕様上できません。マシンの外とは「向こうから来た便への返信のみ」です。こちらから会話を始めたい場合は、Remote Control で自分がそのセッションを直接操作するのが正解です。
受信側は crossSessionInbound を hold(全件あなたが確認)または refuse(全件遮断)に。マシンの外へ出る送信が心配なら isolatePeerMachines: true で全件承認制にできます。そもそもメモは承認の代わりにならず、コマンドも実行されない設計(第6章)である点も安心材料です。