ACP 支持
在任何兼容 ACP 的编辑器中使用 OpenCode。
OpenCode 支持代理客户端协议↗(Agent Client Protocol,简称 ACP),允许你直接在兼容的编辑器和 IDE 中使用它。
提示:有关支持 ACP 的编辑器和工具列表,请查看 ACP 进度报告↗。
ACP 是一个开放协议,标准化了代码编辑器和 AI 编码代理之间的通信。
# 配置#
要通过 ACP 使用 OpenCode,请配置你的编辑器运行 opencode acp 命令。
该命令将 OpenCode 作为兼容 ACP 的子进程启动,通过 stdio 上的 JSON-RPC 与你的编辑器通信。
以下是支持 ACP 的流行编辑器的示例。
## Zed#
添加到你的 Zed↗ 配置(~/.config/zed/settings.json):
json1// ~/.config/zed/settings.json 2{ 3 "agent_servers": { 4 "OpenCode": { 5 "command": "opencode", 6 "args": ["acp"] 7 } 8 } 9}
要打开它,在命令面板中使用 agent: new thread 操作。
你也可以通过编辑 keymap.json 绑定键盘快捷键:
json1// keymap.json 2[ 3 { 4 "bindings": { 5 "cmd-alt-o": [ 6 "agent::NewExternalAgentThread", 7 { 8 "agent": { 9 "custom": { 10 "name": "OpenCode", 11 "command": { 12 "command": "opencode", 13 "args": ["acp"] 14 } 15 } 16 } 17 } 18 ] 19 } 20 } 21]
## JetBrains IDE#
根据文档↗将以下内容添加到你的 JetBrains IDE↗ 的 acp.json:
json1// acp.json 2{ 3 "agent_servers": { 4 "OpenCode": { 5 "command": "/absolute/path/bin/opencode", 6 "args": ["acp"] 7 } 8 } 9}
要打开它,在 AI Chat 代理选择器中使用新的 'OpenCode' 代理。
## Avante.nvim#
添加到你的 Avante.nvim↗ 配置:
lua1{ 2 acp_providers = { 3 ["opencode"] = { 4 command = "opencode", 5 args = { "acp" } 6 } 7 } 8}
如果你需要传递环境变量:
lua1{ 2 acp_providers = { 3 ["opencode"] = { 4 command = "opencode", 5 args = { "acp" }, 6 env = { 7 OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY") 8 } 9 } 10 } 11}
## CodeCompanion.nvim#
要在 CodeCompanion.nvim↗ 中使用 OpenCode 作为 ACP 代理,请将以下内容添加到你的 Neovim 配置:
lua1require("codecompanion").setup({ 2 strategies = { 3 chat = { 4 adapter = { 5 name = "opencode", 6 model = "claude-sonnet-4", 7 }, 8 }, 9 }, 10})
此配置将 CodeCompanion 设置为使用 OpenCode 作为聊天的 ACP 代理。
如果你需要传递环境变量(如 OPENCODE_API_KEY),请参考 CodeCompanion.nvim 文档中的配置适配器:环境变量↗获取完整详情。
# 支持#
OpenCode 通过 ACP 的工作方式与在终端中相同。支持所有功能:
注意:某些内置斜杠命令如
/undo和/redo目前不支持。
- 内置工具(文件操作、终端命令等)
- 自定义工具和斜杠命令
- OpenCode 配置中配置的 MCP 服务器
- 来自
AGENTS.md的项目特定规则 - 自定义格式化工具和代码检查器
- 代理和权限系统