跳转到内容

ACP 支持

在任意支持 ACP 的编辑器中使用 OpenCode。

OpenCode 支持 Agent Client Protocol(ACP),可以作为“外部智能代理”接入任何兼容 ACP 的编辑器或 IDE。

ACP 是一个开放协议,用来标准化“代码编辑器 ↔ AI Coding Agent”之间的通信(基于 JSON-RPC / stdio)。


配置方式

要通过 ACP 使用 OpenCode,只需在编辑器中配置一个命令:

Terminal window
opencode acp

该命令会以子进程形式启动 OpenCode,并通过标准输入/输出使用 JSON-RPC 与编辑器通信。

下面是几个常见编辑器的配置示例。


Zed

Zed 中,编辑 ~/.config/zed/settings.json

~/.config/zed/settings.json
{
"agent_servers": {
"OpenCode": {
"command": "opencode",
"args": ["acp"]
}
}
}

然后在命令面板中使用 agent: new thread 打开会话。

也可以在 keymap.json 中为它绑定快捷键:

keymap.json
[
{
"bindings": {
"cmd-alt-o": [
"agent::NewExternalAgentThread",
{
"agent": {
"custom": {
"name": "OpenCode",
"command": {
"command": "opencode",
"args": ["acp"]
}
}
}
}
]
}
}
]

JetBrains 系列 IDE

根据 JetBrains 官方文档,在工程目录中添加 acp.json

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

之后可以在 JetBrains 的 AI Chat 窗口中选择 OpenCode 作为 Agent。


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 Agent:

require("codecompanion").setup({
strategies = {
chat = {
adapter = {
name = "opencode",
model = "claude-sonnet-4",
},
},
},
})

如果需要传入 OPENCODE_API_KEY 等环境变量,可参考官方文档中 配置 Adapters → 环境变量


功能支持

通过 ACP 使用 OpenCode 时,和在终端 TUI 中基本保持一致:

支持的能力包括:

  • 所有内置工具(文件读写、Shell、LSP、MCP 等);
  • 自定义工具与自定义 /commands
  • 通过配置启用的 MCP 服务器;
  • AGENTS.md 中定义的项目规则;
  • 自定义格式化器、插件、权限和 Agents 系统等。