Claude Code特集2026年10月更新

Claude Codeのセッション間メッセージ機能とは|v2.1.224で追加・別ターミナルのClaude同士が要約を送り合う仕組み・macOS/Linux/Windows対応と使い方・並列開発での活用法【2026年10月最新】

公開日: 2026/08/10
更新日: 2026/10/29
Claude Codeのセッション間メッセージ機能とは|v2.1.224で追加・別ターミナルのClaude同士が要約を送り合う仕組み・macOS/Linux/Windows対応と使い方・並列開発での活用法【2026年10月最新】

この記事のポイント

Claude Codeのセッション間メッセージは、別ターミナルで動く自分のClaude同士がテキストを送り合える機能です。v2.1.224で追加され、現在はmacOS・Linux・ネイティブWindows(v2.1.234以降)で使えます。仕組み・使い方・受信設定・使えないときの確認手順・並列開発での使い方を公式情報をもとに整理しました。

Claude Codeのセッション間メッセージ(cross-session messaging)は、別々のターミナルで動いている自分のClaude Codeセッション同士が、Claudeの書いたテキストを送り合える機能です。2026年8月7日(日本時間)公開のv2.1.224で追加されました。当初はmacOSとLinux(WSL 2を含む)だけでしたが、現在はネイティブWindowsでも使えます(v2.1.234以降)。

渡るのはClaudeが書いたプレーンテキスト1通だけで、会話履歴・ファイル・権限は渡りません。条件を満たすセッションでは設定しなくても最初から有効です。

この機能は、並列セッション間のコピペの往復を減らすための連絡手段です。Agent Teamsのような協調の仕組みとは別のものです。導入前には、使えるOS・バージョン・接続方法、受信側の権限モードによっては既定で保留されること、届いたメッセージは自分で打ったプロンプトと同じく利用量(usage)を消費することを確かめておくと、つまずきにくくなります。

この記事でわかること

  • セッション間メッセージで何が渡り、何が渡らないのか
  • ListAgents と SendMessage の役割と、SendMessage が以前から存在したという時系列
  • 使える環境(v2.1.224以降、ネイティブWindowsはv2.1.234以降、Bedrock等は同一マシンのみ)と、v2.1.312までの主な追加機能
  • 同一マシン/別マシン/クラウドで経路と条件がどう変わるか
  • crossSessionInbound・dialogExpiry・isolatePeerMachines による安全設計と、組織単位で止める方法
  • 「バージョンを上げたのに動かない」ときの確認手順
  • Agent Teams・サブエージェント・/resume・Agent view・Remote Controlとの使い分け

この記事の対象読者:ターミナルを2〜4枚開いてClaude Codeを並列に動かしている開発者、git worktreeで並行開発しているチーム、claude -p の常駐ワーカーを運用している人、そして社内でClaude Codeを配布していて「エージェント同士が横につながる」ことの安全性を判断したい情報システム部門の方。

Claude Code本体の基本から確認したい場合は、Claude Codeとは?できること・料金・使い方を先に読むと理解しやすくなります。


セッション間メッセージとは何か

Claude Code公式ドキュメント「Message your other Claude Code sessions」のページ

出典: Anthropic公式ドキュメント「Message your other Claude Code sessions」

セッション間メッセージは、あるセッションでわかったことを、別のセッションのClaudeに要約テキストとして届ける機能です。公式ドキュメント「Message your other Claude Code sessions」は、この機能を次のように説明しています。

Let Claude list and message your other Claude Code sessions on this machine, and reach your sessions on other machines or in the cloud.

(このマシン上の他のClaude Codeセッションを一覧して送れるようにし、別マシンやクラウド上のセッションにも届けられるようにする)

典型的なのは、片方のセッションで、もう片方のセッションが前提にしている構造と合わなくなる変更を加えてしまう場面です。人間が気づく前に、変更した側のClaudeが影響範囲を要約して相手に伝えられます。

渡るもの/渡らないもの

この機能でいちばん誤解されやすいのは、何が相手に渡るかです。公式は「A message is a piece of text one Claude writes to another, never the sender's conversation history or files.」と書いています。

項目

渡るか

補足

Claudeが書いたプレーンテキスト

○

送信元の名前と返信先が付く

会話履歴(コンテキスト)

×

公式が「never the sender's conversation history」と明記

ファイル・差分

×

本文に @ファイル と書いても添付されず文字列のまま。受信側は自分の権限内でそのファイルを開ける

権限・承認の代理

×

他セッションからのメッセージは「ユーザーの同意」として扱われない

Agent Teamsの構造化メッセージ

×

チーム内に閉じており、セッション間には流れない

会話を別のターミナルで続けたい、コンテキストごと新しいセッションへ引き継ぎたいという場合は、この機能ではなくセッションの再開(/resume)を使うよう公式が案内しています。

届くメッセージは、たとえば次のような粒度のテキストです(公式ドキュメントの例)。

Schema migration finished: the new column is tenant_id, and rebasing on main is safe now.

ユーザーはツールを直接呼ばない

もう1つの大事な点は、ユーザーが SendMessage を自分で呼ぶわけではないことです。公式も「you never call either tool yourself」と書いています。ユーザーは、いま開いているセッションに日本語(または英語)で頼むだけです。

別のターミナルで動いているセッションに、マイグレーションが終わったか聞いて
決済APIを触っているセッションに、いま何を変更したか説明して

文面はClaudeが書きます。さらに、頼まれなくても「自分の変更が他セッションの作業に影響する」と判断すれば、Claudeが自分から送ることがあります。並列でセッションを回しているなら、この「頼んでいなくても届く」挙動を前提に受信設定を確認しておくのが安全です。


ListAgents と SendMessage の2ツールによる仕組み

ListAgentsとSendMessageが記載されたClaude Code公式ツールリファレンス

出典: Anthropic公式ドキュメント「Tools reference」

Claudeはこの機能で2つのツールを使います。公式のツールリファレンスでは、どちらも既定で権限プロンプトは出ません。

ツール

役割

権限プロンプト

ListAgents

届く相手(サブエージェント、Agent Teamsのチームメイト、同じマシン上の他セッション、クラウドセッション、別マシンのRemote Controlセッション)を一覧する。スラッシュコマンド /list-agents(別名 /peers)と同じ一覧

不要

SendMessage

相手を名前で指定してメッセージを届ける。サブエージェントやチームメイトへの送信にも同じツールを使う

不要

「権限プロンプトなし」は送ること自体に承認が要らないという意味で、受信側に届くかどうかは別の話です。届くかどうかは、受信側の crossSessionInbound 設定と、双方の権限モードの組み合わせで決まります。

Auto Modeのセッションでは、他セッションへの SendMessage は送信のたびに権限分類器(permission classifier)が事前に評価します(v2.1.222以降)。Auto Modeは2026年8月14日から既定の権限モードになっています。仕組みはClaude Code Auto Modeとは|2層防御・自律コーディングの仕組みで整理しています。

/list-agents で見えるもの

/list-agents を実行すると、1行目に自分のセッション名、その下に届く相手が並びます(自分の名前の表示はv2.1.239以降)。

  • 同じマシン上の他セッション(バックグラウンドで動いているものも含む)
  • このセッションのサブエージェント、Agent Teamsのチームメイト(v2.1.239以降は一覧に出る)
  • クラウドセッション(cloud と表示)
  • 別マシンのRemote Controlセッション(切断中は offline と表示。v2.1.229以降)

セッションの「名前」の決まり方

宛先はセッション名で指定します。

  • /rename <名前> か、起動時の claude --name <名前> で付けた名前で呼べる
  • 付けなければClaude Codeが自動で名前を付ける
  • 同じマシンで同名の対話セッションを起動すると、name-word-word のような別名が自動で付き、取り違えを防ぐ
  • 名前に空白を含む場合、@ メンションでは @"release notes" のように引用符で囲む

並列で動かすなら、起動時に claude --name migration、claude --name payments のように役割名を付けておくと、宛先の取り違えが減ります。スラッシュコマンドの扱いはClaude Code スラッシュコマンド 作り方|.claude/commands 完全ガイドも参考になります。

メッセージの通り道

同じマシンの中のやり取りは、Anthropicのサーバーを通りません。

相手の場所

経路

必要なもの

同じマシン

macOS/LinuxはセッションごとのUnixドメインソケット、ネイティブWindowsは名前付きパイプ。Anthropicのサーバーを経由しない

特になし(APIキーやBedrock等でもv2.1.248以降は可)

自分の別マシン

Anthropicのサーバー経由で、相手マシンのRemote Control接続に届く

双方がRemote Controlに接続していること(Pro / Max / Team / Enterprise。APIキー不可)

クラウドセッション

Anthropicのサーバー経由で直接届く

送信側がRemote Controlに接続していること

ソケットはOSユーザー単位で制限されていて、共有マシンでも他ユーザーのセッションからは届きません。macOS/Linuxでは、他ユーザー所有のディレクトリやシンボリックリンクを拒否し、/tmp/cc-socks-<uid> を使います。ネイティブWindowsでは、自分のユーザーしか読めない鍵による認証が必須です。

各セッションが同じファイルを見られることが前提なので、コンテナ内のセッションとホスト側のセッションは互いに届きません。同じ理由で、WSL 2の中のセッションとネイティブWindowsのセッションも、同じPC上でも届きません。同じコンテナ内の2セッション同士なら届きます。

自分のセッションのソケットは、/status の Peer address 行(uds: 付き)で確認できます。

SendMessage は v2.1.224 より前からある(正確な時系列)

「v2.1.224で SendMessage が新登場」という説明を見かけますが、正確ではありません。

バージョン

内容(要点)

v2.1.77ごろ

SendMessage はサブエージェントの再開(SendMessage({to: agentId}))用にすでに存在

v2.1.162

CLAUDE_CODE_TMPDIR / $TMPDIR が深い階層を指すと、気づかないうちにセッション間メッセージが使えなくなる不具合を修正

v2.1.166

中継されたメッセージはユーザー権限を持たないよう厳格化(受信側は中継された権限要求を拒否、auto modeでもブロック)

v2.1.224

独立したセッション同士で SendMessage が使えるように。ListAgents で相手を発見(当初はmacOS / Linux)

v2.1.224で新しくなったのは届く範囲です。自分で別々に立ち上げたセッション同士が、互いを見つけて送り合えるようになりました。同じツールがサブエージェントでも使われる点は、Claude Code サブエージェント 使い方|Task tool・並列処理完全ガイドと合わせて読むと整理しやすくなります。


動作要件(v2.1.224以降・macOS/Linux/Windows対応)

セッション間メッセージの追加と改善を確認できるClaude Code公式チェンジログ

出典: Anthropic公式ドキュメント「Claude Code changelog」

2026年10月29日時点では、macOS・Linux・ネイティブWindowsのいずれでも使えます。 公開直後の8月上旬は「ネイティブWindowsは非対応」「Bedrock等では提供なし」でしたが、どちらもその後のアップデートで変わっています。

項目

条件

補足

バージョン

v2.1.224以降

満たさないと /list-agents が「Unknown command」になる

OS

macOS / Linux(WSL 2含む)/ ネイティブWindows

ネイティブWindowsはv2.1.234以降(公式ドキュメントの記載。チェンジログでの告知は8月下旬のv2.1.239)

接続方法(同一マシン)

Anthropic公式のログイン、APIキー、Amazon Bedrock / Claude Platform on AWS / Google CloudのAgent Platform / Microsoft Foundry

Bedrock等とテレメトリ無効時の同一マシン内メッセージはv2.1.248以降

接続方法(別マシン・クラウド)

Remote Controlに接続したセッション

Remote ControlはPro / Max / Team / Enterpriseのみ。APIキーやBedrock等からは送れない

更新チャンネル

latest / stable どちらでも可

2026年10月29日時点で latest=2.1.312、stable=2.1.308

更新は claude update、確認は次のコマンドで行えます。

claude --version
npm view @anthropic-ai/claude-code dist-tags

プラン・接続方法別の早見表

使い方

同じマシン内

別マシン・クラウドへ

Free

×(Claude Code自体が含まれない)

×

Pro / Max

○

○(Remote Control接続時)

Team / Enterprise

○

○(Ownerが管理画面でRemote Controlを有効にした場合)

APIキー(従量課金)

○

×

Bedrock / Claude Platform on AWS / Agent Platform / Foundry

○(v2.1.248以降)

×

Team / Enterpriseは、席の種類や契約内容によってClaude Codeを使えるかどうかが変わってきた経緯があります。自社の契約で使えるかは、管理者画面か社内の管理者に確認してください。プランごとの月額は改定が多いので、Claude料金を日本円で解説で最新の金額を確認してください。

追加・改善の時系列(v2.1.224〜v2.1.312)

公開後も細かい改善が続いています。公開直後の記事にある「Windowsでは使えない」「別マシンへは返信のみ」といった記述は、現在は当てはまりません。

バージョン

公開日(UTC)

内容

2.1.222

2026-08-04

auto modeで他セッションへの SendMessage を送信前に権限分類器が評価

2.1.224

2026-08-07 01:36(日本時間 8/7 10:36)

セッション間 SendMessage と ListAgents を追加(macOS / Linux)。crossSessionInbound / dialogExpiry 設定を追加

2.1.225

2026-08-07

別マシンのRemote Controlセッションへ名前指定でこちらから会話を始められるように(それまでは返信のみ)。ヘッドレス時などにメッセージが期限なく保留され続ける不具合を修正

2.1.229

2026-08

ListAgents が切断中のRemote Controlセッションを offline、クラウドセッションを cloud と表示

2.1.232

2026-08-13

プロンプトで @セッション名 のメンションが可能に。/config に「Messages from your other sessions」「Dialog expiry」の行を追加

2.1.234

2026-08-17

公式ドキュメント上のネイティブWindowsの必要バージョン

2.1.235 / 2.1.236

2026-08-19

大きすぎるメッセージや連投を送信前に拒否。notify_when_idle を追加(別セッションが次に手すきになったら1回通知)

2.1.239

2026-08-21

チェンジログで「Windows: cross-session messaging is now available」と告知。/list-agents が自分の名前とチームメイトを表示

2.1.243

2026-08

受信ソケットは30秒以内に1行を送らない接続を切断

2.1.247

2026-08

受信メッセージを1行プレビューに折りたたみ(Ctrl+O で全文)

2.1.248

2026-08-27

Bedrock / Agent Platform / Foundry、テレメトリ無効時でも同一マシン内のメッセージが可能に。不正な crossSessionInbound の値を警告

2.1.309

2026-10

Ctrl+O のトランスクリプトで、配信待ちのメッセージを「Waiting to be delivered」と表示

2.1.311

2026-10

Remote Control・クラウドへClaudeが送ったメッセージが、モバイルアプリで自分の発言のように見える不具合を修正

公開日は米国時間では8月6日にあたるため、海外記事では「8月6日リリース」と書かれていることがあります。


使い方の流れ

操作は単純で、専用のセットアップはありません。

  1. claude --version でv2.1.224以降(ネイティブWindowsはv2.1.234以降)か確認する。古ければ claude update
  2. ターミナルを2枚以上開き、それぞれでClaude Codeを起動する。役割が分かれるなら claude --name payments のように名前を付けておく
  3. どちらかのセッションで /list-agents(または /peers)を実行し、相手が一覧に出るか確認する
  4. 送りたい側のセッションに、ふつうの文で頼む
  5. Claudeが ListAgents で宛先を探し、SendMessage で本文を書いて送る

頼み方の例です(公式ドキュメントの例を日本語にしたもの)。

別のターミナルで動いているセッションに、マイグレーションが終わったか聞いて
いまやったことを、決済APIを触っているセッションに説明して
@api-worker にスキーマのマイグレーションが終わったと伝えて

@ に続けてセッション名を打つと、宛先をはっきり指定できます(v2.1.232以降)。

受信側の見え方と割り込みの挙動

  • 受信側のClaudeはツール呼び出しの合間にメッセージを読む。実行中のツールが途中で止められることはない
  • 受信側が手すき(アイドル)なら、メッセージをきっかけに新しいターンを始める
  • 画面には › Message from @api-worker: Schema migration finished (ctrl+o to expand) のような1行のプレビューが出る。全文は Ctrl+O、フルスクリーン表示でのクリック、--verbose で見られる
  • プレビューは表示上の省略で、Claude自身は全文を読んでいる
  • 受信側も SendMessage で返信できる(例外はクラウドセッション。別マシンから届いたメッセージには SendMessage で返せず、返答は claude.ai/code のトランスクリプトで確認する)

「終わったら教えて」と頼める notify_when_idle

v2.1.236以降(送る側・受ける側の両方)では、「マイグレーションのセッションが終わったら教えて」と頼むと、同じマシンの別セッションが次に手すきになるか終了したときに、1回だけ通知を受け取れます。

  • 12時間以内に通知が来なければ、待ち受けは自動で解除される
  • 使えるのはメイン会話のClaudeだけで、相手は同じマシン上のセッションに限られる
  • この待ち受けだけなら、見張られる側のセッションでターンを始めたりトークンを使ったりはしない

長いテストやマイグレーションを別セッションで回しているときに、何度も「終わった?」と聞きに行く手間が省けます。


相手セッションの場所で、条件と送れるものが変わる

同じマシン内は条件なしで双方向、別マシンとクラウドはRemote Controlへの接続が前提です。 v2.1.225以降は、別マシンのセッションにもこちらから会話を始められます。

相手の場所

こちらから会話を始める

返信

主な条件・注意

同じマシン

○

○

Anthropicのサーバーを通らない

自分の別マシン

○(v2.1.225以降)

○

双方がRemote Controlに接続。相手が offline なら、相手マシンが再接続するまで届かない

クラウドセッション

○

△

クラウド側は、別マシンから届いたメッセージに SendMessage で返せない

別マシン・クラウド宛てで気をつけたいのは、次のような場面です。

  • 別マシン・クラウドのセッションは、Remote Controlに接続しているセッションからしか見つけられません
  • 送信側がRemote Controlに接続しないまま別マシン・クラウドへ送ると、返信先が付かず、相手は返信できません
  • クラウドや別マシンのセッション一覧は新しい順に一定数までしか読み込まないため、古いセッションは名前で見つからないことがあります

Remote Control自体の使い方は公式のRemote Controlのドキュメントで確認できます。


「他セッションからの指示」をユーザーの同意として扱わないセキュリティ設計

crossSessionInboundなどを定義するClaude Code公式の設定リファレンス

出典: Anthropic公式ドキュメント「Claude Code settings」

他のセッションから届いたメッセージは、ユーザーの指示や同意としては扱われません。 セッションAからBへ送ると、Claude CodeはB側のClaudeに「これはユーザーではなく別セッションから来た」と伝え、できることを制限します。

制限

内容

承認の代理はできない

保留中の権限プロンプトに、ユーザーの代わりに答えることはできない

設定変更はさせない

「他セッションに言われたから」という理由で、権限設定・CLAUDE.md などを変えないよう受信側Claudeに指示されている

コマンドは実行されない

本文に /compact などが含まれていてもただの文字列として届く

権限プロンプトは通常どおり出る

メッセージに従って動くときに権限が足りなければ、いつもの承認プロンプトが出る

送る側にも決まりがあります。自分のセッションで拒否・ブロックされた操作を、他のセッションに代わりにやらせようとしてはいけないとClaudeは指示されていて、その場合はユーザーに判断を戻します。権限の境界はセッションごとに保たれる、という考え方です。

権限モードやサンドボックスの全体像はClaudeのセキュリティと安全な使い方|サンドボックス・権限・--dangerously-skip-permissions徹底解説で扱っています。

受信制御 crossSessionInbound(v2.1.224以降)

受信側の挙動をはっきり決める設定です。v2.1.232以降は /config の「Messages from your other sessions」行からも選べます(選んだ値はuser settingsに保存されます)。

値

挙動

想定する使い方

accept

受け取ってClaudeに渡す

無人で動かす -p ワーカー、worktree並列で積極的に連携させたいとき

hold

通知だけ出して渡さない。後で accept が効けば保留分を渡す

中身を見てから通したいとき

refuse

渡さずに捨てる

受信を止めたいセッション、組織での無効化

どの設定が効くかの順番に注意してください。 managed settings → --settings フラグ → user settings の順に見て、最初に見つかった値を使います。project / local settings の値は、accept < hold < refuse の並びでより厳しいときだけ効きます。

つまり、リポジトリにコミットしたプロジェクト設定では、受信を緩めることはできず、締める方向にしか効きません。不正な値を書いた場合、user settings などでは警告を出して hold、managed settingsでは refuse として扱われます(v2.1.248以降)。

値を書いていないときの既定(権限モードの2分類)

crossSessionInbound を書いていない場合、Claude Codeは送る側と受ける側の権限モードを見て、メッセージごとに判断します。分類は2つだけです。

  • 権限プロンプトを飛ばすセッション:bypassPermissions。対話ターミナルでbypassに切り替えられる状態のplan modeもこちら
  • それ以外:通常のモード、auto、acceptEdits、dontAsk

受信側

送信側

結果

それ以外

それ以外

届く

それ以外

権限プロンプトを飛ばす

保留(承認を求める)

権限プロンプトを飛ばす

それ以外

保留(承認を求める)

権限プロンプトを飛ばす

権限プロンプトを飛ばす

届く

--dangerously-skip-permissions で動かしているセッションには、外から勝手に指示を入れられないようになっています。逆に言うと、bypassで動かしている人が「メッセージが届かない」と感じるのは不具合ではなく既定の動作です。

承認ダイアログと dialogExpiry

保留になると、受信側の対話ターミナルに送信元とプレビュー付きの承認ダイアログが出ます。

  • Approve で1通だけ届け、Deny(または閉じる)で捨てる
  • 答えないまま dialogExpiry(既定5分)を過ぎると、ダイアログが閉じてメッセージは捨てられる
  • 指定できる値は "60s" / "5m" / "10m" / "never"。この設定はuser / managed / --settings からだけ読まれ、project・localは無視される
  • claude -p ではダイアログを出せないので、期限まで保持し、期限切れは送信者に通知される
  • VS Code拡張とデスクトップアプリも承認ダイアログを出せないため、保留分は期限まで保持される
  • 保留メッセージは最大100件で、超えると古いものから捨てられる

別マシンへの送信に承認を必須にする isolatePeerMachines

企業で導入するときに特に役立つ設定です。

{
  "isolatePeerMachines": true
}
  • true にすると、このマシンの外にあるセッションへ SendMessage が出ていく前に、必ず承認を求める
  • bypassPermissions のセッションでも承認を求める
  • どの階層の設定でも true が優先される。リポジトリにコミットしたプロジェクト設定で「オンにはできるがオフにはできない」
  • 同じマシン内のメッセージは対象外

「マシン内で完結するやり取りは許すが、Anthropicのサーバーを通って外に出るものは人が確認する」という運用を、設定1行で作れます。

組織単位で止める

受信と送信は別々に止めます。両方止めるなら、managed settingsに次のように書きます(公式の例)。

{
  "permissions": {
    "deny": ["SendMessage", "ListAgents"]
  },
  "crossSessionInbound": "refuse"
}
  • 受信を止める:crossSessionInbound: "refuse"
  • 送信・一覧を止める:権限のdenyルールに SendMessage と ListAgents をツール名だけで追加する

止めるときは、次の副作用も把握しておいてください。

  1. SendMessage をdenyすると、サブエージェントやAgent Teamsのチームメイトへの送信も止まります(同じツールのため)。Agent Teamsを業務で使っている組織は、影響を必ず確かめてください
  2. refuse にしても受信ソケットは開いたままで、届いたものを捨てているだけです
  3. refuse のセッションは見た目が変わりません。自分の /status にも他セッションの一覧にも違いが出ないので、設定ファイルで確認するしかありません

組織での配布・権限設計はClaude Code チーム導入ガイド|Team/Enterpriseプラン・権限設計・管理者設定、エージェント同士がつながること自体のリスクはAIエージェントのセキュリティガイドも参考になります。


制限と、見落としがちなコスト

Claude Codeの利用量とコスト管理に関する公式ドキュメント

出典: Anthropic公式ドキュメント「Manage costs effectively」

機能そのものに追加料金はありませんが、届いたメッセージは利用量を消費します。 送れる量や届く範囲には、公式に数値で決まった上限が多くあります。

公式が明記する制限

制限

内容

プレーンテキストのみ

会話履歴・ファイル・権限は渡らない

サイズの上限

同じマシン宛ては、直列化した後で約100万文字を超えると送信側で拒否される

連投の制限

同じ相手に短時間で送りすぎて受信箱がいっぱいになると、送信側で拒否される。まとめて1通にするか、少し待つ

ループの抑止

送信者ごとのレート制限、短時間に届いた同じ内容の破棄、Claudeが読むのを待つメッセージは1セッション50件まで。2セッション間の無限ループは自然に止まる

保留の上限

保留メッセージは最大100件。超えると古いものから破棄

届かない組み合わせ

コンテナ内⇔ホスト、WSL 2内⇔ネイティブWindows(同じPCでも不可)

制限モード

--restricted(CLAUDE_CODE_RESTRICTED=1)のセッションは受信ソケットを開かない

bareモード

bareモードで起動した claude -p は受信できず、一覧にも出ない

課金への影響(メッセージは usage を消費する)

公式は「Once delivered, the message counts toward usage like a prompt you type.」と書いています。届いたメッセージは、自分で打ったプロンプトと同じように利用量に数えられます。

並列運用のコストに直接関わる点です。4枚のターミナルで互いに状況を共有させると、1通ごとに受信側で新しいターンが始まり、レート上限やクレジットを使います。公式の並列実行のページにも「Running several sessions or subagents at once multiplies token usage.」とあります。常に連携させるより、マイグレーション完了や破壊的変更の連絡など、必要な場面に絞るほうが費用対効果は上がります。

一方、notify_when_idle で「終わったら教えて」と待つだけなら、見張られる側のセッションではトークンを使いません。

プラン別の考え方はClaude Code 料金、節約のコツはClaude Code コスト最適化完全ガイドを参照してください。

理解しておきたい運用上のリスク

  • 要約の正しさは誰も確かめません。 送信側のClaudeが誤った要約を書けば、そのまま別セッションの前提になります。重要な変更ほど、届いた内容を人が確認する運用が必要です
  • Claudeが自分から送ることがあります。 機密性の高いリポジトリを別セッションで開いている場合は、crossSessionInbound を明示しておくと安心です

「使えない」ときの確認手順

まず /list-agents を実行し、「Unknown command」になるかどうかで原因を2つに分けます。 コマンド自体が通らなければ機能がないので次の表の1〜5、コマンドは通るのに届かないなら6〜12を確認します。Windowsでは、WSL 2とネイティブWindowsのセッションが混ざっていないかを最初に確かめてください。

#

確認すること

確認方法

対処

1

バージョン

claude --version

v2.1.224未満(ネイティブWindowsはv2.1.234未満)なら claude update

2

古いバイナリが先に動いていないか

which -a claude(Windowsは where claude)

複数のインストールを整理する

3

配布バージョンの固定

社内で特定バージョンに固定していないか

管理者に確認する

4

制限モード

--restricted / CLAUDE_CODE_RESTRICTED=1 で起動していないか

制限モードではソケットが開かない

5

denyルール

SendMessage / ListAgents がdenyされていないか

denyされているとツール自体が使えない

6

WSL 2とネイティブWindowsの混在

両方のセッションが同じ環境で動いているか

WSL 2内同士、またはネイティブ同士にそろえる

7

コンテナの境界

送信側と受信側が同じファイルシステムを見ているか

コンテナ内⇔ホストは届かない。同一コンテナ内なら届く

8

起動モード

bareモードの claude -p ではないか

bareモードは受信できず一覧にも出ない

9

受信側の crossSessionInbound

設定ファイル・/config

hold / refuse なら届かない。refuse は見た目に出ない

10

受信側の権限モード

片方だけbypassになっていないか

この組み合わせは既定で保留。承認するか設定を明示

11

別マシン・クラウド宛て

送信側・受信側がRemote Controlに接続しているか。APIキーやBedrock等で使っていないか

Remote Controlに接続する。APIキー・Bedrock等は同一マシンのみ

12

相手の状態

一覧で offline になっていないか

相手マシンが再接続するまで待つ

送ったはずのメッセージがどうなったかは、Ctrl+O のトランスクリプトで確認できます。配信待ちのものは「Waiting to be delivered」と表示されます(v2.1.309以降)。

公開直後は「テレメトリ無効の環境変数(DISABLE_TELEMETRY など)が効いていると使えない」という制約がありましたが、v2.1.248以降は同じマシン内のメッセージなら使えます。


ヘッドレスワーカーとフックからの活用

claude -p ワーカーに受信させる

claude -p のセッションも受信ソケットを持つので、長時間動かすヘッドレスワーカーもメッセージを受け取れ、一覧にも出ます。ただし -p は承認ダイアログを出せないため、保留になったものは期限まで保留のままです。

無人で受け取らせたいときは、起動時に --settings で crossSessionInbound を accept にします。

claude -p "テストが落ちたら原因を要約して報告" \
  --settings '{"crossSessionInbound":"accept"}'

user settingsに accept を書いても効きますが、その場合は自分が起動するすべてのセッションに適用される点に注意してください。

フックやBashから自分のセッションへメッセージを送る

フックとBashコマンドには、次の環境変数が渡されます。

環境変数

中身

使い方

CLAUDE_CODE_MESSAGING_SOCKET

自分のセッションの受信ソケットのパス(/status の Peer address と同じ)

接続先

CLAUDE_CODE_MESSAGING_TOKEN

認証用のトークン

1行目に {"type":"auth","token":"..."} を送る。ネイティブWindowsでは必須、macOS/Linuxでは任意

受信ソケットは、30秒以内に1行を送ってこない接続を切ります(v2.1.243以降)。長い処理の結果を送るときは、出力をためてから接続するようにします。

サンドボックス内のBashからソケットに届くかどうかは、sandbox.network.allowAllUnixSockets / sandbox.network.allowUnixSockets で決まります。フックの書き方全般はClaude Code Hooks 使い方|PreToolUse/PostToolUse/Stop完全ガイドで解説しています。


他の並列実行機能との使い分け

セッション間メッセージは、独立したセッション同士の連絡手段です。仕事の分担や監督をさせる機能ではありません。 公式の並列実行のページでは、主な手段としてサブエージェント・agent view・agent teams・dynamic workflows・Projectsが挙げられ、セッション間メッセージやworktreeはそれらを補う手段として位置づけられています。

やりたいこと

使う機能

渡るもの

主導するのは

状態(2026年10月時点)

自分で立てた別々のセッションに、作業の途中で要点を伝えたい

セッション間メッセージ

テキスト1通

Claude(頼まれて/自分から)

一般提供

1つの作業の中で調査や処理を分担させたい

サブエージェント

指示と結果

親のClaude

一般提供

Claudeにチームを組ませ、協調させたい

Agent Teams

チーム内の構造化メッセージ

リーダー役のClaude

実験的機能(既定でオフ)

複数のバックグラウンドセッションを1画面で見て操作したい

Agent view

画面上の操作

人間

リサーチプレビュー

会話そのものを別ターミナルで続けたい

セッションの再開(/resume)

会話履歴

人間

一般提供

スマホや別の端末からセッションを操作したい

Remote Control

人間の操作

人間

Pro / Max / Team / Enterprise

迷ったときは、次の目安で選ぶと選び間違えにくくなります。

  • Claudeにチーム編成そのものを任せたい → Agent Teams(Claude Code Agent Teamsの使い方)
  • 1つの作業を内側で分けたい → サブエージェント
  • 自分で立てたセッションはそれぞれ独立させたまま、要点だけ伝えたい → セッション間メッセージ
  • コンテキストごと引き継ぎたいだけ → /resume

「並列で動かす」という見た目が似ているため混同されがちですが、Agent Teamsとサブエージェントは1つの作業をClaudeが分担・監督する仕組み、セッション間メッセージは人が別々に立てたセッションをつなぐ連絡手段、という違いがあります。


実務でどう使うか(並列開発での活用シーン)

向いているのは「片方の変化を、もう片方が知らないと困る」場面です。 公式が挙げる4つの用途(発見の引き渡し、並列worktreeの調整、長時間作業の状況確認、マシンをまたぐ連絡)を、開発の流れに当てはめると次のようになります。

シーン

送る側

受け取る側

送る内容・頼み方の例

破壊的変更の連絡

DBスキーマを変えたセッション

APIを実装中のセッション

「カラム名を tenant_id に変えた。mainへのリベースは安全」

並列worktreeの調整

機能Aのworktree

機能Bのworktree

「共通ユーティリティの引数を変えてmainに入れた。呼び出し側の修正が必要」

長時間処理の完了待ち

手元で作業中のセッション

マイグレーション中のセッション

「migrationのセッションが終わったら教えて」(notify_when_idle)

テスト結果の報告

claude -p の常駐テストワーカー

実装中のセッション

「E2Eが3件失敗。原因はタイムアウト設定」

別マシンとの連絡

手元のPC

自宅のPCやクラウドのセッション

「@build-server に、リリースブランチのビルド結果を聞いて」(Remote Control接続時)

うまく回すには、次の3つを決めておくと効果的です。

  1. セッションに役割名を付ける(--name migration など)。@ メンションで宛先を指定しやすくなる
  2. 連絡させる場面を決めておく。何でも共有させると利用量が増え、受信側のコンテキストも余計な情報で埋まる
  3. 届いた内容をうのみにしない。要約の正しさは誰も確かめていない

チームで使う場合は、isolatePeerMachines: true を入れ、受信設定をmanaged settingsでそろえておくと、誰のセッションがどこへ送っているのかを後から説明しやすくなります。また、Claude Codeで作った社内ツールや試作アプリを、社内の実データや既存システムにつないで業務で使う段階になると、認証・権限・データの持ち方・運用の担当といった、並列開発とは別の準備が必要になります。その段階で何をそろえるかはバイブコーディング・Lovableで作ったアプリを本番運用するにはにまとめています。

並列作業の組み立て方はClaude Code 使い方ガイド、使いどころの例はClaude Code 活用事例も合わせてどうぞ。


こんな人におすすめ

  • いつも2〜4枚のターミナルで同じリポジトリを触っている人。セッション間のコピペ往復が多い人ほど効果があります
  • git worktreeで並行開発している人・チーム。何がmainに入ったかを人が伝え直す手間が減ります
  • 長いマイグレーションやテストを別セッションで回す人。notify_when_idle で終わるまで手元の作業を続けられます
  • claude -p の常駐ワーカーを運用している人。crossSessionInbound: "accept" で無人受信させられます
  • WindowsでClaude Codeを使っている人。v2.1.234以降ならネイティブWindowsでも使えます(WSL 2と混ぜなければ)

おすすめしない人・使えない人

  • 1つのセッションで完結している人。送る相手がいないので恩恵がありません
  • Agent Teamsで作業が完結しているチーム。チーム内は専用のメッセージでやり取りできるため、わざわざ使う理由が薄めです
  • コンテキストごと引き継ぎたいだけの人。それは /resume の役割です
  • Freeプランの人。Claude Code自体が含まれていません
  • APIキーやBedrock・Foundry等で使っていて、別マシンのセッションと連絡したい人。同じマシン内なら使えますが、マシンをまたぐ送信はRemote Control(Pro / Max / Team / Enterprise)が前提です
  • エージェント同士の自動連絡を管理できない組織。まずmanaged settingsで crossSessionInbound: "refuse" にし、isolatePeerMachines の方針を決めてから解禁するほうが安全です

よくある質問

Q. 有効にするための設定は必要ですか?

必要ありません。条件を満たすセッションでは、公式の表現どおり「messaging is on with nothing to enable」です。止めたい場合のほうが明示的な設定が要ります。

Q. ネイティブWindowsで使えますか?

使えます。公式ドキュメントでは、ネイティブWindowsの必要バージョンはv2.1.234以降です。ただし、WSL 2の中のセッションとネイティブWindowsのセッションは、同じPCでも互いに届きません。片方をWSL 2、片方をPowerShellで動かしている場合は、どちらかにそろえてください。

Q. 相手のセッションの会話内容は読まれますか?

読まれません。渡るのは送信側のClaudeが書いたテキスト1通と、送信者名・返信先だけです。

Q. 同じマシン内のやり取りはAnthropicのサーバーを通りますか?

通りません。macOS/LinuxはUnixドメインソケット、ネイティブWindowsは名前付きパイプでマシン内だけでやり取りします。別マシンやクラウド宛てはAnthropicのサーバーを経由します。

Q. 別マシンのセッションに、こちらから話しかけられますか?

v2.1.225以降は、Remote Controlに接続していれば名前を指定して会話を始められます。公開直後に「返信のみ」と書かれていたのは、v2.1.224時点の仕様です。

Q. AWS(Bedrock)やGoogle Cloud経由で使っていますが、使えますか?

同じマシン内のセッション同士なら、v2.1.248以降で使えます。別マシンやクラウドのセッションへは送れません。

Q. SendMessage をdenyすれば安全に止められますか?

送信と一覧は止まりますが、サブエージェントやAgent Teamsのチームメイトへの送信も一緒に止まります。受信を止めるには、別に crossSessionInbound: "refuse" が必要です。

Q. 追加料金はかかりますか?

機能専用の料金は公式に書かれていません。ただし、届いたメッセージは自分で打ったプロンプトと同じく利用量に数えられます。頻繁に連絡させるほどレート上限やクレジットを使います。

Q. bypassPermissionsで動かしているのに、メッセージが届きません。

既定の動作です。権限プロンプトを飛ばすセッションは、送信側も同じモードでない限りメッセージを保留し、承認を求めます。答えないと dialogExpiry(既定5分)で捨てられます。常に受け取りたいなら crossSessionInbound: "accept" を明示してください。


まとめ

Claude Codeのセッション間メッセージは、別ターミナルで動く自分のセッション同士に要点だけを流すための連絡手段です。協調の仕組みというより、並列で開発している人が「コピペで橋渡ししていた作業」を減らす道具と考えると、使いどころを判断しやすくなります。

導入前に押さえておきたいのは次の点です。

  • 要件:v2.1.224以降。ネイティブWindowsはv2.1.234以降。latest・stableどちらのチャンネルでも使える
  • 接続方法:同じマシン内ならAPIキーやBedrock等でも可(v2.1.248以降)。別マシン・クラウドへはRemote Control接続が必要
  • 渡るのはテキストだけ:会話履歴・ファイル・権限は渡らない。コンテキストごと渡したいなら /resume
  • 届かない組み合わせ:コンテナ内⇔ホスト、WSL 2⇔ネイティブWindows
  • 既定の保留:bypassで動かしているセッションは、外からの指示を勝手には受け付けない
  • 止め方:受信は crossSessionInbound: "refuse"、送信は SendMessage / ListAgents のdeny(サブエージェントやAgent Teamsも止まる点に注意)、マシン外への送信は isolatePeerMachines: true
  • コスト:届いたメッセージは利用量を消費する。notify_when_idle の待ち受けだけなら見張られる側はトークンを使わない

アップデートの頻度が高い機能なので、使う前に claude --version で手元のバージョンを確認し、公式のチェンジログで最近の変更を見ておくと安心です。

次に読む記事

このツールを自社のシステムや業務にどう組み込むか、ご提案します

この記事の著者

AI革命

AI革命

編集部

AI革命株式会社の編集部です。最新のAI技術動向から実践的な導入事例まで、企業のデジタル変革に役立つ情報をお届けしています。豊富な経験と専門知識を活かし、読者の皆様にとって価値のあるコンテンツを制作しています。

AI・システム開発は、開始価格を公開しています

既存システムの改修 100万円〜・PoC 300万円〜(税別)。相談内容を送っていただくと、2営業日以内に担当者からご返信します