---
title: ACP 支持
description: 在任何 ACP 兼容编辑器中使用 opencode。
---

opencode 支持[代理客户端协议](https://agentclientprotocol.com) 或 (ACP)，允许您直接在兼容的编辑器和 IDE 中使用它。

:::tip
有关支持 ACP 的编辑器和工具的列表，请查看[非加太进度进度报告](https://zed.dev/blog/acp-progress-report#available-now)。
:::

ACP 是一种开放协议，用于标准化代码编辑器和 AI 编码代理之间的通信。

---

## 配置

要通过 ACP 使用 opencode，须编辑器配置为运行 `opencode acp` 命令。

该命令将 opencode 作为 ACP 兼容的子进程启动，通过 stdio 通过 JSON-RPC 与您的编辑器进行通信。

以下是支持 ACP 的流行编辑器的示例。

---

### 澤德

添加到您的[泽德](https://zed.dev)配置(`~/.config/zed/settings.json`)：

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

要打开它，请使用 **命令面板** 中的 `agent: new thread` 操作。

您还可以通过编辑`keymap.json`来绑定键盘快捷键：

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

---

### JetBrains IDE

根据[文件](https://www.jetbrains.com/help/ai-assistant/acp.html)添加到你的[JetBrains IDE](https://www.jetbrains.com/) acp.json]：

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

要打开它，请在 AI Chat 代理选择器中使用新的“opencode”代理。

---

### 前衛

添加到您的[前卫](https://github.com/yetone/avante.nvim)配置：

```lua
{
  acp_providers = {
    ["opencode"] = {
      command = "opencode",
      args = { "acp" }
    }
  }
}
```

如果需要傳遞環境變量：

```lua {6-8}
{
  acp_providers = {
    ["opencode"] = {
      command = "opencode",
      args = { "acp" },
      env = {
        OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY")
      }
    }
  }
}
```

---

### 代码合作者.nvim

相当于 opencode 网关 [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim) 中的 ACP 代理，接下来将以下内容添加到 Neovim 配置中：

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

此配置将 CodeCompanion 设置为使用 opencode 作为聊天的 ACP 代理。

如果您需要交付环境变量（如 `OPENCODE_API_KEY`），请参阅 CodeCompanion.nvim 文档中的 [配置充电器：环境变量Z](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) 了解完整信息。

## 支持

opencode 通过 ACP 的工作方式与在终端中的工作方式相同。支持所有功能：

:::note
目前不支持某些内置斜杠命令，例如 `/undo` 和 `/redo`。
:::

- 內置工具（文件操作、終端命令等）
- 自定義工具和斜杠命令
- 在 opencode 配置中配置的 MCP 服务器
- `AGENTS.md` 的项目特定规则
- 自定义程序和 linter
- 代理和權限系統
