📚AI 编程官方教程中文版
官方教程中文版平台与故障

接入 ACP

理解 Agent Client Protocol:如何把 OpenCode 接入 Zed、JetBrains 和 Neovim 等编辑器。

ACP 的目标是让编辑器和 AI Coding Agent 用同一种协议通信。对新手来说,可以把它理解成“编辑器启动 OpenCode 子进程,然后通过标准协议把对话、文件和工具请求交给它”。

OpenCode 支持 Agent Client Protocol(ACP),允许你直接在兼容的编辑器和 IDE 中使用它。

有关支持 ACP 的编辑器和工具列表,请查看 ACP 进展报告

配置时先理解什么

要通过 ACP 使用 OpenCode,请在编辑器中配置运行 opencode acp 命令。

该命令会将 OpenCode 作为兼容 ACP 的子进程启动,通过 stdio 上的 JSON-RPC 与编辑器进行通信。

你不需要让 OpenCode 开 HTTP 服务,也不需要单独登录一个 Web 后台。关键是让编辑器能找到 opencode 命令,并且把 acp 作为参数传进去。

Zed

添加到你的 Zed 配置文件(~/.config/zed/settings.json)中:

{
  "agent_servers": {
    "OpenCode": {
      "command": "opencode",
      "args": ["acp"]
    }
  }
}

打开方式:在命令面板中执行 agent: new thread 操作。

快捷键不是必须项。先确认命令面板能启动,再考虑把 agent::NewExternalAgentThread 绑定到自己的 keymap。

JetBrains IDEs

根据文档,将以下内容添加到你的 JetBrains IDE 的 acp.json 中:

重点是 command 要写绝对路径,例如 /absolute/path/bin/opencode,参数仍然是 ["acp"]。配置完成后,在 AI Chat 代理选择器中选择新的 OpenCode 代理。

Neovim

Avante.nvim 和 CodeCompanion.nvim 都可以接 ACP。新手配置时只看两个字段:commandopencode 或绝对路径,argsacp

如果插件需要传递环境变量,例如 OPENCODE_API_KEY,优先从系统环境读取,不要把 key 写进配置仓库。

怎么判断接入成功

成功状态通常有三个信号:

  1. 编辑器能创建新的外部 Agent thread
  2. OpenCode 能读到当前项目文件
  3. 对话行为和终端里使用 OpenCode 基本一致

如果编辑器提示找不到命令,先用终端确认 opencode acp 能启动,再把 command 改成绝对路径。

支持范围

OpenCode 通过 ACP 使用时与在终端中使用的效果完全一致。所有功能均受支持:

  • 内置工具(文件操作、终端命令等)
  • 自定义工具和斜杠命令
  • 在 OpenCode 配置中配置的 MCP 服务器
  • 来自 AGENTS.md 的项目级规则
  • 自定义格式化工具和代码检查工具
  • 代理和权限系统

部分内置斜杠命令(如 /undo/redo)目前暂不支持。遇到差异时,先判断这是 ACP 客户端限制,还是 OpenCode 本身能力限制。

官方来源

On this page