ACP 支持
在任何兼容 ACP 的编辑器中使用 OpenCode。
OpenCode 支持 Agent Client Protocol(简称 ACP),允许您直接在兼容的编辑器和 IDE 中使用它。
ACP 是一个开放协议,用于标准化代码编辑器与 AI 编程助手之间的通信。
配置
要通过 ACP 使用 OpenCode,请将您的编辑器配置为运行 opencode acp 命令。
此命令会将 OpenCode 启动为一个 ACP 兼容的子进程,该进程通过 stdio 使用 JSON-RPC 与您的编辑器通信。
以下是一些支持 ACP 的流行编辑器的配置示例。
Zed
添加到您的 Zed 配置 (~/.config/zed/settings.json) 中:
{ "agent_servers": { "OpenCode": { "command": "opencode", "args": ["acp"] } }}要打开它,请在 命令面板 中使用 agent: new thread 操作。
您也可以通过编辑 keymap.json 来绑定键盘快捷键:
[ { "bindings": { "cmd-alt-o": [ "agent::NewExternalAgentThread", { "agent": { "custom": { "name": "OpenCode", "command": { "command": "opencode", "args": ["acp"] } } } } ] } }]JetBrains IDEs
根据 文档 说明,添加到您的 JetBrains IDE 的 acp.json 文件中:
{ "agent_servers": { "OpenCode": { "command": "/absolute/path/bin/opencode", "args": ["acp"] } }}要打开它,请在 AI 聊天助手的代理选择器中使用新的 ‘OpenCode’ 代理。
Avante.nvim
添加到你的 Avante.nvim 配置中:
{ acp_providers = { ["opencode"] = { command = "opencode", args = { "acp" } } }}如果需要传递环境变量:
{ acp_providers = { ["opencode"] = { command = "opencode", args = { "acp" }, env = { OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY") } } }}CodeCompanion.nvim
要在 CodeCompanion.nvim 中使用 OpenCode 作为 ACP 代理,请将以下内容添加到你的 Neovim 配置中:
require("codecompanion").setup({ strategies = { chat = { adapter = { name = "opencode", model = "claude-sonnet-4", }, }, },})此配置将 CodeCompanion 设置为使用 OpenCode 作为聊天功能的 ACP 代理。
如果需要传递环境变量(如 OPENCODE_API_KEY),请参考 CodeCompanion.nvim 文档中的 配置适配器:环境变量 部分获取完整详情。
支持
OpenCode 通过 ACP 的工作方式与在终端中完全相同。所有功能都受支持:
- 内置工具(文件操作、终端命令等)
- 自定义工具和斜杠命令
- 在你的 OpenCode 配置中配置的 MCP 服务器
- 来自
AGENTS.md的项目特定规则 - 自定义格式化器和代码检查器
- 代理和权限系统