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

json
1// ~/.config/zed/settings.json
2{
3  "agent_servers": {
4    "OpenCode": {
5      "command": "opencode",
6      "args": ["acp"]
7    }
8  }
9}

要打开它,在命令面板中使用 agent: new thread 操作。

你也可以通过编辑 keymap.json 绑定键盘快捷键:

json
1// 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:

json
1// 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↗ 配置:

lua
1{
2  acp_providers = {
3    ["opencode"] = {
4      command = "opencode",
5      args = { "acp" }
6    }
7  }
8}

如果你需要传递环境变量:

lua
1{
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 配置:

lua
1require("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 的项目特定规则
  • 自定义格式化工具和代码检查器
  • 代理和权限系统