mcpField
G
gemini-use-claude-acp

gemini-use-claude-acp

github.com/genericserviceエージェントワークフロー038 回インストール23 週間前に更新
リポジトリ

gemini-use-claude-acp について

gemini-use-claude-acpは、GeminiからClaude Code ACPアダプターに単一のプロンプトを送り、応答を標準出力へストリーミングします。Claudeの見解やMCP対応のコーディング支援が必要なタスク向けで、セッションは保持しません。

主な機能

  1. 01Claude Code ACPサブプロセスの起動
  2. 02プロンプト送信と応答のストリーミング
  3. 03CLAUDE_MODELによるモデル選択
  4. 04TARGET_CWDによる作業ディレクトリ指定

活用シーン

  1. 01問題についてClaudeの意見を求める
  2. 02複数段階のコーディングタスクを委任
  3. 03別モデルの視点を得る

MCP 対応

ACP経由でClaude Codeに接続します。起動したClaudeセッションでは、filesystemやshellを含むMCPツールを利用できます。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/genericservice/claude-skills --skill gemini-use-claude-acp

インストール後、Claude Code で/gemini-use-claude-acpを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

scripts/
.gitignore
claude-delegate.mjs
package.json
pnpm-lock.yaml

詳細

Gemini → ACP 経由の Claude

Claude Code ACP アダプターのサブプロセスを起動し、プロンプトを送信して、応答を標準出力にストリーミングし、正常に終了します。永続的なセッションはありません。プロンプト1件に対して、応答は1件です。

使用する場面

  • MCP ツールにアクセスしながら、複雑な複数ステップのエージェント型コーディングを行う必要がある場合
  • 特定の問題について Claude の推論を得たい場合
  • ユーザーが「Claude に聞いて」「これには Claude を使って」などと言った場合
  • 別のモデルのセカンドオピニオンがほしい場合

セットアップ(初回のみ)

cd ~/.gemini/skills/gemini-use-claude-acp/scripts
pnpm install

これにより、ローカルの node_modules/ に @agentclientprotocol/sdk がインストールされます。以降の実行では、この手順はスキップされます。

使い方

CLAUDE_MODEL=claude-sonnet-4-6 \
TARGET_CWD=/path/to/project \
node ~/.gemini/skills/gemini-use-claude-acp/scripts/claude-delegate.mjs \
  "Refactor the auth module to use JWT tokens. The code is in src/auth/."

Claude が生成した応答は、標準出力にストリーミングされます。キャプチャするには、次のようにします。

response=$(node ~/.gemini/skills/gemini-use-claude-acp/scripts/claude-delegate.mjs "your prompt")

環境変数

変数デフォルト説明
CLAUDE_MODELclaude-sonnet-4-6使用するモデル(ACP の unstable_setSessionModel で適用)
TARGET_CWD現在の作業ディレクトリClaude のセッションに渡す作業ディレクトリ

仕組み

  1. 次の設定で pnpm dlx @zed-industries/claude-code-acp を起動します。
    • CLAUDE_CODE_SKIP_PERMISSIONS=1 — すべてのツール呼び出しを自動承認します
    • TERM=dumb — 出力に ANSI エスケープシーケンスが含まれないようにします
    • CLAUDECODE を解除 — 別の Claude セッション内でアダプターを起動した際に、起動が拒否されないようにします
    • ~/.local/bin を PATH の先頭に追加 — claude バイナリが見つかるようにします
  2. @agentclientprotocol/sdk の ClientSideConnection と ndJsonStream を使用して接続します
  3. ACP 経由で initialize → newSession → unstable_setSessionModel → prompt を送信します
  4. agent_message_chunk の差分を受信次第、標準出力にストリーミングします
  5. プロンプトへの応答が完了したら、サブプロセスを終了します

プロンプト作成のヒント

  • 以前の会話履歴がない新しいセッションなので、関連するコンテキストをすべてプロンプト文字列に含めてください
  • Claude にファイルを読み取り・編集させたい場合は、絶対パスでファイルを指定してください
  • プロンプトは焦点を絞り、1回の呼び出しにつき明確なタスクを1つにしてください
  • セッション中、Claude は MCP ツール(ファイルシステム、シェルなど)を使用できます

エラー処理

スクリプトがゼロ以外の終了コードで終了した場合は、標準エラー出力で次の項目を確認してください。

  • pnpm dlx のダウンロード失敗(ネットワーク、認証)
  • Claude の認証エラー — claude CLI が認証済みであることを確認してください
  • CLAUDECODE 環境変数が設定されている — Claude Code 内で実行中であることを示します。アダプターは入れ子での起動を拒否します
  • ACP の初期化失敗

スクリプトは再試行しません。エラーをユーザーに伝え、根本原因を修正してから再実行するよう案内してください。

コメント