跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

ACP 编辑器接入

用 stdio 子进程将 OpenCode 接入 Zed、JetBrains 和 Neovim。

ACP(Agent Client Protocol)让编辑器与编程 Agent 通过统一协议交互。编辑器启动 opencode acp 子进程,使用标准输入输出上的 JSON-RPC 通信;CLI 页将传输描述为 nd-JSON。

Zed

在命令面板运行 zed: acp registry,从注册表安装 OpenCode。需要指定自己的可执行文件时,在 ~/.config/zed/settings.json 配置:

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

随后使用命令面板的 agent: new thread。官方还提供通过 agent::NewExternalAgentThread 动作在 keymap.json 绑定快捷键的示例;快捷键涉及编辑器版本时以其当前动作定义为准。

JetBrains

在编辑器的 acp.json 声明 Agent。将示例路径替换为实际 OpenCode 可执行文件的绝对路径:

{
  "agent_servers": {
    "OpenCode": {
      "command": "/absolute/path/bin/opencode",
      "args": ["acp"]
    }
  }
}

配置完成后,在 AI Chat 的 Agent 选择器中选 OpenCode。

Neovim

Avante.nvim 使用 acp_providers 配置:

{
  acp_providers = {
    ["opencode"] = {
      command = "opencode",
      args = { "acp" }
    }
  }
}

需要环境变量时,该 provider 下可增加 env 表;官方示例从 os.getenv("OPENCODE_API_KEY") 传入同名变量。凭据名称取决于所用提供商,不应将这个例子当作所有服务通用 Key。

CodeCompanion.nvim 的官方示例在 interactions.chat.adapter 中设置 name = "opencode" 与模型名称。其环境变量传递遵循该插件的 adapter 配置;不要把 Avante 的表结构直接用于另一个插件。

工作目录与功能边界

opencode acp --cwd <path> 指定工作目录。模型、MCP、项目 AGENTS.md、自定义工具与命令、格式化与 lint、智能体和权限仍来自 OpenCode 配置。

ACP 专门页明确指出部分内置 slash commands 暂不支持,包括 /undo、/redo。因此不能因协议接入成功就假定 TUI 中每个命令都能在编辑器里使用。