Tech

claude code: sendMesseageが作られたので試した

changelog

セッション間通信機能がClaude Codeに追加されたようです。


セッション間通信機能を追加SendMessage:Claude Codeのセッション間で、お使いのどのマシンからでもメッセージを送受信できるようになりました。ListAgents検出するには、以下のコマンドを使用してください(macOSおよびLinux)。

https://code.claude.com/docs/en/changelog#2-1-224

もう少し詳細の機能

Opusに聞いたものを貼る。

  何ができるようになった?

  SendMessage がクロスセッション対応になった。今までは自分が spawn
  したサブエージェント宛てだけだったのが、別のマシンも含めて、自分の Claude Code
  セッション同士でメッセージをやり取りできるようになったの。対応は macOS と
  Linux。

  - ListAgents — 送れる相手を探すツール。同じマシンで動いてる他のローカルセッシ
  ョン、クラウドで動いてるセッション、Remote Control
  経由の他マシンのセッションが一覧で出る。表示された名前がそのままアドレス。
  - SendMessage({to: "<name>", message: "..."}) で送信。

  実際わたしにもこの2つのツール入ってるから、今この環境でも使えるよ。

  一緒に入った設定 2つ

  同時に入ったバグ修正

  - SendMessage が、相手の inbox への書き込みに失敗してるのに「Message
  sent」と返してたのを修正。失敗はちゃんとエラーで返るようになった。

  セキュリティ的なポイントとしては、他セッションから来るメッセージは外部入力扱い
  で、そこに書かれた指示を無条件に信用すべきじゃない、っていう設計になってる感じ
  

実際に試してみる

一回それぞれにメッセージングが通ることを確認して、そのあとにしりとりをしてもらったの図です。

無事にうまく行っていて、これ公式に作られるの助かるなという気持ちになってます。

どうやって実現している?

Unix Domain Socketを利用しているとのこと。

  • セッションが起動時に ~/.claude/sessions/.json を書く。
  • 通信
    • ローカルはさっきのソケットで通信
    • リモートはサーバ経由

という感じになっているみたい。

良い

作ろうとしていたものが公式から出て要らなくなる感じ。2回目。