IDEA 的 ACP 报 Cannot run program pnpm?TaoToken 这样改 Claude Code 通道
IDEA 的 ACP 报 Cannot run program pnpmTaoToken 这样改 Claude Code 通道在 JetBrains IDEA 里通过 ACP 接入 Claude Code 时很多人第一步就卡在IOException: Cannot run program pnpm。这个报错跟模型通道无关纯粹是 ACP 适配器claude-code-acp没被 IDE 找到。本文按排障视角先把 pnpm 路径问题解决再用 TaoToken官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 给 Claude Code 配一条可用的模型通道让 IDEA 的模型下拉框里真正能跑起来。一、原问题与场景ACP 初始化为什么找不到 pnpmJetBrains AI Assistant 从 2025 年底开始支持自定义 ACPAgent Client Protocol配置。ACP 底层走 JSON-RPC 2.0Agent 作为独立进程运行IDE 通过 stdin/stdout 通信。也就是说IDE 并不关心 Claude Code 内部怎么调模型它只负责按acp.json里的command字段去启动一个进程。问题就出在这个command上。很多教程里写的是command: pnpm或者干脆写claude-code-acp。但 IDEA 启动 ACP Server 时用的是它自己的进程环境PATH 往往和你终端里的 PATH 不一致。你在 Terminal 里敲pnpm能跑是因为 shell 加载了.zshrc/.bash_profileIDEA 作为 GUI 应用启动时未必继承这些配置。于是pnpm找不到直接抛IOException: Cannot run program pnpm, error2, No such file or directory注意报错里的error2这是典型的 ENOENT即文件不存在。它不是说 pnpm 没装而是说 IDEA 在当前 PATH 下找不到这个可执行文件。同理即使你把command改成claude-code-acp只要这个命令不在 IDEA 的 PATH 里一样报错。所以排障思路很明确不要依赖 PATH直接把command写成绝对路径。而绝对路径从哪来就是pnpm bin -g的输出。二、TaoToken 前置先分清「进程路径」和「模型通道」这里要强调一个容易混淆的点Cannot run program pnpm是进程启动问题TaoToken 解决的是模型通道问题。两者是两件事但经常被一起遇到——因为很多人配好 ACP 后发现 Claude Code 起来了却调不通模型于是又回头怀疑 ACP 配置。先把职责划清楚pnpm 与claude-code-acp由本机 Node/pnpm 环境负责属于 ACP 适配器层。Claude Code 的模型请求由ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN决定属于模型通道层。TaoToken只作为模型通道提供 Key 和 Base URL不替代编辑器也不接管 ACP 进程。也就是说TaoToken 不会帮你装 pnpm也不会帮你修 PATH。它的作用是当 Claude Code 进程正常启动后让它有一个稳定可用的 API 入口。所以正确顺序是——先修 pnpm 路径再配 TaoToken 通道。如果你还没创建 Key可以先打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册然后在控制台生成一个 Key。API 入口统一是https://taotoken.net/api注意这个地址不带任何查询参数。三、可复制配置从 pnpm 绝对路径到 Claude Code 通道3.1 拿到 claude-code-acp 的绝对路径先确认适配器已全局安装pnpm install -g zed-industries/claude-code-acp然后输出全局 bin 目录pnpm bin -g典型输出类似/Users/yourname/Library/pnpm接着确认目录里确实有可执行文件ls $(pnpm bin -g)你应该能看到claude-code-acp。把它和 bin 目录拼起来就是我们要写进acp.json的绝对路径例如/Users/yourname/Library/pnpm/claude-code-acp3.2 修改 acp.json在 IDEA 的 AI Assistant 聊天面板右上角下拉框里选择「配置 ACP 智能体」IDE 会打开acp.json。把command改成绝对路径{ agent_servers: { Claude Code: { command: /Users/yourname/Library/pnpm/claude-code-acp } } }保存后回到聊天面板模型下拉框里应该能看到Claude Code。如果这一步还报Cannot run program说明路径写错了或者claude-code-acp根本没装成功回到 3.1 重新确认。3.3 配置 Claude Code 的模型通道ACP 进程能起来之后接下来配模型通道。Claude Code 读取的是环境变量在 macOS/Linux 的 shell 配置里加export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENYOUR_API_KEYWindows 用户可以在系统环境变量里设置同名变量或者用 PowerShellsetx ANTHROPIC_BASE_URL https://taotoken.net/api setx ANTHROPIC_AUTH_TOKEN YOUR_API_KEY注意ANTHROPIC_BASE_URL只写到/api不要在后面拼/v1之类的路径具体由 Claude Code 自己拼接。YOUR_API_KEY替换成你在 TaoToken 控制台生成的 Key。如果你用的是 Claude Code 的 settings.json 方式也可以写在配置文件里{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY } }改完环境变量后重启 IDEA。因为 IDEA 启动 ACP 进程时继承的是它自己的环境不重启的话新变量不会生效。这一步经常被忽略导致「明明配了却还是报鉴权失败」。四、验证请求与成功结果配置完成后按下面几步验证确保不是「看起来好了」。第一步在终端里单独验证 Claude Code 能否走通通道claude --version然后跑一个最小请求比如让它解释一段代码。如果返回正常说明ANTHROPIC_BASE_URL和 Key 都没问题。第二步回到 IDEA在 AI Assistant 聊天面板选择Claude Code发一句简单的话比如「解释一下当前打开文件的入口函数」。观察两个信号面板里出现正常的流式回复而不是转圈或报错。IDEA 日志Help Show Log里没有Cannot run program或 401/403 之类的鉴权错误。第三步确认进程确实起来了ps aux | grep claude-code-acp能看到对应进程说明 ACP Server 正常运行。如果进程在但聊天无响应多半是模型通道的问题回到 3.3 检查环境变量是否被 IDEA 继承。成功后的状态是IDEA 里能正常对话Claude Code 的 Plan/Code 模式可用MCP 工具也能被识别。TaoToken 在这里只承担模型请求的转发ACP 适配器和 pnpm 依旧由本机环境负责职责清晰出问题也容易定位。五、本篇常见错排查错误一改了 acp.json 仍然报 Cannot run program pnpm说明你改的不是 IDEA 实际读取的那个文件或者command里还残留pnpm。检查两点一是确认下拉框里选中的是Claude Code而不是别的 Agent二是确认command是完整绝对路径不是pnpm也不是相对路径。错误二路径对了但报 permission deniedclaude-code-acp没有可执行权限。执行chmod x /Users/yourname/Library/pnpm/claude-code-acp错误三ACP 起来了但聊天报 401 / invalid api key这是模型通道问题不是 ACP 问题。检查ANTHROPIC_AUTH_TOKEN是否填了完整的 KeyANTHROPIC_BASE_URL是否是https://taotoken.net/api。改完记得重启 IDEA。错误四终端里 claude 能用IDEA 里不能用典型的环境变量继承问题。IDEA 从 GUI 启动时不会加载你的 shell 配置。解决办法是把环境变量写到系统级或者从终端用open -a IntelliJ IDEA启动 IDEA让它继承当前 shell 环境。错误五模型下拉框里没有 Claude Code说明acp.json格式有问题或者保存后没生效。检查 JSON 是否合法agent_servers层级是否正确保存后重启 AI Assistant 面板。错误六Agent 无响应但进程存在先看 IDEA 日志再确认 Claude Code 本身在终端能跑。如果终端能跑、IDEA 不能基本还是环境变量或 Key 的问题。六、语义一致 CTA排障到这里路径问题和通道问题应该都清楚了。如果你还需要生成或管理 Key可以直接进控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 。Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 接入细节可以对照文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。如果你只是想先验证模型通道是否通用模型对话页快速发一条请求即可https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 。而如果你是长期在 IDEA 里做编码、跑 Agent 任务建议直接看 Coding Plan把通道和额度一次性配好https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。回到本篇的核心Cannot run program pnpm是 ACP 适配器的路径问题用pnpm bin -g拿到绝对路径写进acp.json就能解决TaoToken 负责的是 Claude Code 的模型通道Base URL 填https://taotoken.net/apiKey 填YOUR_API_KEY。两件事分开处理IDEA 里用 Claude Code 就不会再卡在启动这一步。