16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeのセッション間通信、Windowsでも動きます(v2.1.234から)

16
Last updated at Posted at 2026-08-24

Claude Code には、自分の別セッションにメッセージを送る cross-session messaging という機能があります。ターミナルを2枚開いて並行作業しているとき、片方の変更をもう片方に伝えるやつです。

これ、「Windowsでは使えない」と思っている人が多いはずです。自分もそうでした。少し前の公式ドキュメントにはこう書いてありました。

Claude Code doesn't offer cross-session messaging on native Windows.
(ネイティブWindowsではセッション間メッセージングを提供していない)

8月15日時点のスナップショット(Wayback Machine)より。

これは過去の話です。 v2.1.234 で Windows 対応が入り、手元で動きました。実測と、まだ情報が食い違っている箇所を書いておきます。

一次情報
公式ドキュメント: https://code.claude.com/docs/en/cross-session-messaging
CHANGELOG: https://code.claude.com/docs/en/changelog

動作確認環境: Windows 10 Home(ネイティブ、WSLではない)+ Claude Code v2.1.241

何が変わったか

時点 記述
8/15 のドキュメント 「ネイティブWindowsでは提供していない」
8/17 の CHANGELOG (v2.1.234) Windows対応が入った(原文は下記)
現在のドキュメント 「ネイティブWindowsでは v2.1.234 以降が必要」

Windows: cross-session messaging is now available, so Claude Code sessions across your machines can message each other with SendMessage and find each other with ListAgents, as on macOS and Linux


実測1: 別セッションが見える

セッションを複数開いた状態で、片方に他を列挙させると、こう返ってきました。

Peer sessions (4):
  work-7a [12505d]  ·  interactive  ·  started 49m ago
  work-37 [72b59d]  ·  interactive  ·  started 34m ago
  work-a0 [7390f5]  ·  interactive  ·  started 49m ago
  work-f0 [f8a592]  ·  interactive  ·  started 7m ago

実測2: 送って、返ってくる

work-f0 にテキストを1通送ります。「work-f0 にこう伝えて」と頼むとClaudeが SendMessage で送ります。

{"success": true,
 "message": "“動作確認テスト” → work-f0 (another Claude session on this machine)"}

受信側に「受信OKと1行だけ返して」と頼んでおいたら、返ってきました。

<cross-session-message from="uds:\\.\pipe\cc-msg-dc2c…" from-name="work-f0">
受信OK
</cross-session-message>

送信元アドレスが uds: に続いて \\.\pipe\ になっています。これがWindowsの named pipe(名前付きパイプ) で、実装の違いがそのまま出ています。

実測3: 「暇になったら教えて」も届く

v2.1.236 で入った notify_when_idle も試しました。別セッションが次にアイドルになったとき、1回だけ通知が来る仕組みです。購読しておいたら、work-f0 が一段落したところで届きました。

[Cross-session idle notice] "work-f0" is idle now —
it finished a turn at 08:55.

ここだけ情報が食い違っている

その notify_when_idleCHANGELOG の記述は今も「(macOS and Linux)」のままです。

Added notify_when_idle to cross-session SendMessage ... opt-in, one-shot, no polling (macOS and Linux)

一方、現在の公式ドキュメントの該当セクションにOS制限はなく、条件は「両方のセッションが v2.1.236 以降」だけです。そして上のとおり、Windowsで通知が届きました。

CHANGELOG だけ見て諦めると、動く機能を使い損ねます。リリースノートと本体ドキュメントは両方見る、という教訓でした。


Windows実装はUnixソケットではなくnamed pipe

同一マシン内の配送はAnthropicのサーバーを経由しません。経路はOSで分かれます。

OS 配送経路
macOS / Linux(WSL 2含む) Unixドメインソケット
ネイティブWindows named pipe

セキュリティも別作りです。macOS/LinuxがOSユーザー単位のアクセス制限なのに対し、Windowsは接続ごとに認証トークンを最初に送ることが必須で、トークンなしの接続は1行目で切られます。

事故りそうな点: WSL 2とネイティブは混ざれない

これは踏むな、と思ったのがここです。

A session inside WSL 2 and a native Windows session on the same computer can't reach each other, because they register under different home directories and listen on different socket types.
(同じPC上でも、WSL 2内のセッションとネイティブWindowsのセッションは互いに到達できない。ホームディレクトリもソケットの種類も違うため)

Windows非対応だった頃の回避策が「WSL 2で動かす」だったので、WSL 2に逃がしたセッションとネイティブの新しいセッションが同居する環境が生まれます。互いに見えないので、どちらかに寄せる必要があります。

そのほかの条件はこちらです。

  • 両側のセッションが v2.1.234 以降(notify_when_idle は v2.1.236 以降)
  • Amazon Bedrock や Microsoft Foundry など、一部のプロバイダ経由では使えない
  • DISABLE_TELEMETRYDO_NOT_TRACK でフィーチャーフラグ評価を切っていると無効
  • 渡るのはテキスト1通だけ。会話履歴もファイルも渡らない

まとめ

  • cross-session messaging はネイティブWindowsで動く(v2.1.234以降)。列挙・送信・返信・idle通知まで v2.1.241 で確認できた
  • notify_when_idle の CHANGELOG は今も「(macOS and Linux)」だが、ドキュメントにOS制限はなく、Windowsで動く
  • WindowsはUnixソケットではなくnamed pipe + トークン認証の別実装
  • WSL 2のセッションとネイティブのセッションは、同じPCでも互いに見えない

関連記事


JQITのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。

コーポレートサイト

エンジニア採用も行っています。もしご興味あれば覗いてみてください。

採用サイト

16
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?