mcpField
G
gemini-use-claude-acp

gemini-use-claude-acp

github.com/genericserviceAgent 工作流038 次安装23 周前更新
代码仓库

关于 gemini-use-claude-acp

gemini-use-claude-acp 让 Gemini 将单条提示交给 Claude Code ACP 适配器,并将回复流式输出到标准输出。适用于需要 Claude 视角或 MCP 编码辅助的任务,且不保留会话。

主要功能

  1. 01启动 Claude Code ACP 子进程
  2. 02发送提示并流式输出回复
  3. 03通过 CLAUDE_MODEL 选择模型
  4. 04通过 TARGET_CWD 指定工作目录

适用场景

  1. 01征询 Claude 对问题的看法
  2. 02委派多步骤编码任务
  3. 03获取另一个模型的观点

MCP 相关

它通过 ACP 连接 Claude Code;生成的 Claude 会话可使用其 MCP 工具,包括 filesystem 和 shell。

安装

复制下面的命令,在终端中运行。

$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 → Claude via ACP

启动 Claude Code ACP 适配器子进程,发送提示词,将响应流式输出到 stdout,并干净地终止进程。不会保留会话 — 一个提示词,一次响应。

适用场景

  • 任务需要通过 MCP 工具访问来完成复杂的多步骤 Agentic 编码
  • 你想听听 Claude 对某个具体问题的推理
  • 用户说“问问 Claude”“这件事用 Claude 处理”等
  • 你想听听不同模型的第二种意见

设置(仅首次使用)

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

这会将 @agentclientprotocol/sdk 安装到本地 node_modules/。后续运行会跳过此步骤。

用法

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 生成响应时,会将其流式输出到 stdout。捕获响应:

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 增量时,将其流式输出到 stdout
  5. 提示词响应完成后,终止子进程

构造提示词的技巧

  • 在提示词字符串中包含所有相关上下文 — 这是一个没有先前历史记录的新会话
  • 如果希望 Claude 读取或编辑文件,请使用绝对路径引用文件
  • 让提示词保持聚焦:每次调用只处理一个明确的任务
  • Claude 可以在会话期间使用其 MCP 工具(文件系统、shell 等)

错误处理

如果脚本以非零状态退出,请检查 stderr 中是否有以下信息:

  • pnpm dlx 下载失败(网络、身份验证)
  • Claude 身份验证错误 — 确保 claude CLI 已完成身份验证
  • 已设置 CLAUDECODE 环境变量(表示你正在 Claude Code 中运行;适配器拒绝嵌套运行)
  • ACP 初始化失败

脚本不会重试 — 将错误告知用户,并建议在修复根本原因后重新运行。

评论

支持 Markdown