ACP 支持
在任意支持 ACP 的编辑器中使用 OpenCode。
OpenCode 支持 Agent Client Protocol(ACP),可以作为“外部智能代理”接入任何兼容 ACP 的编辑器或 IDE。
ACP 是一个开放协议,用来标准化“代码编辑器 ↔ AI Coding Agent”之间的通信(基于 JSON-RPC / stdio)。
配置方式
要通过 ACP 使用 OpenCode,只需在编辑器中配置一个命令:
opencode acp该命令会以子进程形式启动 OpenCode,并通过标准输入/输出使用 JSON-RPC 与编辑器通信。
下面是几个常见编辑器的配置示例。
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 系列 IDE
根据 JetBrains 官方文档,在工程目录中添加 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 系统等。