ACP 支持
在任何兼容 ACP 的编辑器中使用 OpenCode。
OpenCode 支持 Agent Client Protocol (opens in a new tab)(ACP),允许你直接在兼容的编辑器和 IDE 中使用它。
Tip: 有关支持 ACP 的编辑器和工具列表,请查看 ACP 进展报告 (opens in a new tab)。
ACP 是一个开放协议,用于标准化代码编辑器与 AI 编码代理之间的通信。
配置
要通过 ACP 使用 OpenCode,请在编辑器中配置运行 opencode acp 命令。
该命令会将 OpenCode 作为兼容 ACP 的子进程启动,通过 stdio 上的 JSON-RPC 与编辑器进行通信。
以下是支持 ACP 的常用编辑器的配置示例。
Zed
在命令面板中运行 zed: acp registry,从 Zed ACP 注册表 (opens in a new tab)安装 OpenCode。
如果要改用自定义 OpenCode 可执行文件,请将其添加到 Zed (opens in a new tab) 配置文件(~/.config/zed/settings.json)中:
{
"agent_servers": {
"OpenCode": {
"type": "custom",
"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
根据文档 (opens in a new tab),将以下内容添加到你的 JetBrains IDE (opens in a new tab) 的 acp.json 中:
{
"agent_servers": {
"OpenCode": {
"command": "/absolute/path/bin/opencode",
"args": ["acp"]
}
}
}打开方式:在 AI Chat 代理选择器中选择新的 'OpenCode' 代理。
Avante.nvim
添加到你的 Avante.nvim (opens in a new tab) 配置中:
{
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 (opens in a new tab) 中将 OpenCode 用作 ACP 代理,请将以下内容添加到你的 Neovim 配置中:
require("codecompanion").setup({
interactions = {
chat = {
adapter = {
name = "opencode",
model = "claude-sonnet-4",
},
},
},
})此配置将 CodeCompanion 设置为使用 OpenCode 作为聊天的 ACP 代理。
如果需要传递环境变量(如 OPENCODE_API_KEY),请参阅 CodeCompanion.nvim 文档中的配置适配器:环境变量 (opens in a new tab)了解详细信息。
支持
OpenCode 通过 ACP 使用时与在终端中使用的效果完全一致。所有功能均受支持:
Note: 部分内置斜杠命令(如
/undo和/redo)目前暂不支持。
- 内置工具(文件操作、终端命令等)
- 自定义工具和斜杠命令
- 在 OpenCode 配置中配置的 MCP 服务器
- 来自
AGENTS.md的项目级规则 - 自定义格式化工具和代码检查工具
- 代理和权限系统