Claude Code Desktop 自動タスク受信機能の実装指示

目的

Antigravity(親エージェント)から dispatch_task(target='claude-code-desktop', instruction='...') でタスクが投入されたとき、Claude Code デスクトップアプリが自動的にそのタスクを受信・実行・報告する仕組みを実装する。

現在、タスクは Agent Bus MCP の inbox (C:\ai_work\quartz-site\obsidian valut\09_AgentSync\inbox\claude-code-desktop\) に JSON ファイルとして保存される。デスクトップアプリのユーザーが手動で「receive_task(‘claude-code-desktop’) でタスクを受信して実行して」とチャットに入力すれば動作するが、この手動入力を自動化したい

現在のシステム構成

Agent Bus MCP Server

  • 場所: C:\ai_work\agent-bus-mcp\server.py
  • 起動方法: py C:/ai_work/agent-bus-mcp/server.py (stdio MCP)
  • MCP設定: C:\ai_work\.mcp.json に登録済み(Claude Code CLI/Desktop 両方から利用可能)

タスクフロー(現在の手動版)

1. Antigravity: dispatch_task(target='claude-code-desktop', instruction='...')
2. Agent Bus: inbox/claude-code-desktop/ にタスクJSON保存 → Discord通知
3. [手動] ユーザーがデスクトップアプリに "receive_task('claude-code-desktop')" と入力
4. デスクトップアプリ: receive_task → 実行 → submit_report → update_status('idle')
5. Agent Bus: Discord に完了通知

目標フロー(完全自動)

1. Antigravity: dispatch_task(target='claude-code-desktop', instruction='...')
2. Agent Bus: inbox にタスク保存 → 何らかの方法でデスクトップアプリに通知
3. [自動] デスクトップアプリがタスクを検知して自動的に receive_task → 実行 → submit_report
4. Agent Bus: Discord に完了通知

実装方針の候補

以下の方法を検討し、最も堅実で実装しやすい方法を選んで実装してほしい。

方式A: CDP(Chrome DevTools Protocol)でテキスト注入

  • デスクトップアプリを --remote-debugging-port=9333 付きで起動
  • CDP WebSocket でチャット入力欄にテキストを設定し Enter イベントを発火
  • 利点: 最も直接的
  • 懸念: Electronアプリの DOM 構造に依存、UIの変更で壊れやすい

方式B: Claude Code Desktop API / Extension

  • デスクトップアプリに組み込みのAPIやプラグイン機構があればそれを利用
  • /slash-commands や MCP 経由でメッセージを送る方法があるか調査
  • 利点: 公式サポートなら安定
  • 懸念: そのようなAPIが存在しない可能性

方式C: ファイル監視 + CLAUDE.md トリガー

  • CLAUDE.md やカスタムフックを使って、inbox にファイルが追加されたら自動応答
  • デスクトップアプリのプロジェクト設定で自動実行を仕込む
  • 利点: CDP不要、シンプル
  • 懸念: デスクトップアプリの自動実行機能の有無に依存

方式D: claude CLI の --resume でデスクトップセッションに注入

  • claude --resume <session-id> -p "receive_task..." でデスクトップの既存セッションにCLIからメッセージ注入
  • 利点: CDP不要、CLI が使える
  • 懸念: CLI とデスクトップが同一セッションを共有できるか不明

方式E: WebSocket / ローカルHTTPサーバー ポーリング

  • デスクトップアプリ側にMCPポーリングの仕組みを組み込む
  • 定期的に list_tasks('claude-code-desktop') を呼んで新規タスクを自動受信
  • 利点: 完全にMCP内で完結
  • 懸念: ポーリング間隔の問題、デスクトップアプリに定期実行を仕込む方法

環境情報

  • OS: Windows 11
  • Claude Code Desktop: v1.1.4088.0 (Windows Store Electron App)
    • 実行ファイル: C:\Program Files\WindowsApps\Claude_1.1.4088.0_x64__pzs8sxrjxfjjc\app\Claude.exe
  • Python: 3.14
  • websocket-client: 1.9.0 (インストール済み)
  • Agent Bus MCP: C:\ai_work\agent-bus-mcp\server.py

要件

  1. dispatch_task(target='claude-code-desktop') が呼ばれたとき、デスクトップアプリが自動的にタスクを受信・実行する
  2. 実装は server.py に追加するか、別ファイルとして作成してもよい
  3. CDP方式を採用する場合は server.pydispatch_task 関数(489行目付近)に統合
  4. 別方式を採用する場合はその理由と仕組みを説明すること

server.py の関連コード(dispatch_task 部分)

# 489行目付近
cli_targets = {"claude-code", "claude-code-cli"}
if target in cli_targets:
    _launch_claude_code(task_id, instruction, new_session=new_session)
    auto_launched = True
# ↑ ここに claude-code-desktop 用の自動注入ロジックを追加する

作業完了後

実装が完了したら、Agent Bus MCP の submit_report で報告してください:

submit_report(
    task_id='<このタスクのID>',
    worker='claude-code-desktop',
    status='completed',
    summary='<実装内容の要約>',
    artifacts='["変更・作成したファイルパス"]'
)