Antigravity ⇔ Claude Code 双方向チャット注入 — 実装指示
実現したいこと
私(Uさん)は AI エージェント同士が自律的にタスクをやり取りしている様子を、各アプリのUI上でリアルタイムに見たい。
理想の体験
- Antigravity が Claude Code にタスクを投げると、Claude Code Desktop のチャット欄にメッセージが自動入力され、Claude Code がそれに応答している様子が画面上で見える
- 逆に Claude Code が Antigravity にタスクを投げると、Antigravity IDE のチャット欄にメッセージが自動入力され実行される様子が見える
- 私は2つのウィンドウを並べて、AIエージェント同士の会話が目の前で動いているのを眺められる
- さらに Discord でも完了通知やストリームが流れるので、離れていても進捗が分かる
重要なポイント
- 裏で動くヘッドレスCLI方式ではダメ。見えないところで処理されても意味がない
- チャット欄にテキストが入力され、Enterが押され、AIが応答を返す — この通常の対話と同じ見た目で自動実行されることがゴール
- つまり人間が手でチャットに入力する動作を、プログラムで再現したい
現在のシステム構成
| アプリ | 種類 | CDPポート | 状態 |
|---|---|---|---|
| Antigravity IDE | VS Code ベース (Electron) | 9222 | ✅ CDP稼働中 |
| Claude Code Desktop | Electron (Windows Store) | 未設定 | ❌ CDP無効 |
Agent Bus MCP
C:\ai_work\agent-bus-mcp\server.py— タスクの投入・受信・報告を管理C:\ai_work\.mcp.jsonに登録済み(両アプリから利用可能)dispatch_task(target, instruction)でタスク投入receive_task(agent_name)でタスク受信
既存の自動実行フロー(CLI版 — 参考)
dispatch_task(target='claude-code')
→ server.py が claude -p で CLI を裏で起動
→ CLI が receive_task → 実行 → submit_report
→ Discord に完了通知
↑ これは動くが見えない。今回はこれをUIに見える形にしたい。
方式候補(6つ)
以下を検討し、最も実現可能で安定した方法 を選んで実装してほしい。複数方式を組み合わせてもよい。
方式A: CDP (Chrome DevTools Protocol)
- 対象アプリを
--remote-debugging-port=XXXX付きで起動 http://127.0.0.1:XXXX/jsonでページ一覧取得- WebSocket接続 →
Runtime.evaluateでチャット入力欄にテキスト設定 Input.dispatchKeyEventで Enter 送信- Antigravity (9222): 既にCDP稼働中なので即利用可能
- Claude Code Desktop: Windows Store版にCDPを有効化する方法を調査が必要
- 利点: 最も直接的、DOMレベルで制御可能
- 懸念: Claude Code Desktop のCDP有効化が困難な可能性
方式B: Windows UI Automation (pywinauto / uiautomation)
- Windowsのアクセシビリティ API でウィンドウの入力欄を特定
- テキスト入力 → Enter送信をプログラムで実行
- CDP不要、アプリの起動方法を変えなくていい
- 利点: CDPポート設定不要
- 懸念: Electronアプリ内のUI要素の特定精度
方式C: クリップボード + SendKeys
- テキストをクリップボードにコピー
win32guiでウィンドウをフォーカスpyautoguiで Ctrl+V → Enter- 利点: 最もシンプル、どんなアプリでも動く
- 懸念: フォーカスが奪われる、ユーザー操作と競合する可能性
方式D: Claude CLI --resume セッション共有
- デスクトップアプリのセッション(worktree名:
beautiful-jackson)を CLIの--resumeで指定 claude --resume beautiful-jackson -p "receive_task(...)"- CLIの入力がデスクトップUIにリアルタイム反映される可能性
- 利点: CDP不要、最もクリーン
- 懸念: CLI入力がデスクトップUIに反映されるか未検証
方式E: Electron Deep Link / カスタムプロトコル
claude://chat?message=...のようなカスタムURLスキームStart-Process "claude://chat?message=hello"で起動- 利点: OS標準機能
- 懸念: Claude Codeがこのプロトコルをサポートしているか不明
方式F: Antigravity Extension API
- VS Code ベースなので
vscode.commands.executeCommandで内部コマンド実行 - チャットパネル入力用のコマンドがあるか調査
- 利点: Antigravity側は最も正攻法
- 懸念: 利用可能なコマンドの特定が必要
比較表
| 方式 | CDP要否 | 起動方法変更 | 安定性 | UI可視化 | 実装難度 |
|---|---|---|---|---|---|
| A: CDP | 必要 | 必要 | ○ | ✅ | 中 |
| B: UI Automation | 不要 | 不要 | ○ | ✅ | 中 |
| C: クリップボード | 不要 | 不要 | ◎ | ✅ | 低 |
| D: CLI —resume | 不要 | 不要 | △ | ✅? | 低 |
| E: Deep Link | 不要 | 不要 | △ | ✅? | 高 |
| F: Extension API | 不要 | 不要 | ○ | ✅ | 中 |
環境情報
- OS: Windows 11
- Python: 3.14
- websocket-client: 1.9.0
- pywinauto: 未インストール(必要ならインストール可)
- pyautogui: 未インストール(必要ならインストール可)
- Claude Code Desktop:
C:\Program Files\WindowsApps\Claude_1.1.4088.0_x64__pzs8sxrjxfjjc\app\Claude.exe - Antigravity CDPポート: 9222
- server.py:
C:\ai_work\agent-bus-mcp\server.py
依頼事項
- 上記方式を調査・検証し、最も実現可能な方式を選定
- 選んだ方式で 双方向のメッセージ注入 を実装
server.pyのdispatch_taskに統合- 動作確認テスト
submit_reportで結果報告
方式選定の理由も報告に含めてください。