---
title: ACP 支援
description: 在任何相容 ACP 的編輯器中使用 OpenCode。
---

OpenCode 支援 [Agent Client Protocol](https://agentclientprotocol.com)（ACP），允許你直接在相容的編輯器和 IDE 中使用它。

:::tip
有關支援 ACP 的編輯器和工具列表，請查看 [ACP 進展報告](https://zed.dev/blog/acp-progress-report#available-now)。
:::

ACP 是一個開放協議，用於標準化程式碼編輯器與 AI 編碼代理之間的通訊。

---

## 設定

要透過 ACP 使用 OpenCode，請在編輯器中設定執行 `opencode acp` 命令。

該命令會將 OpenCode 作為相容 ACP 的子程序啟動，透過 stdio 上的 JSON-RPC 與編輯器進行通訊。

以下是支援 ACP 的常用編輯器的設定範例。

---

### Zed

新增到你的 [Zed](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 IDEs

根據[文件](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' 代理。

---

### Avante.nvim

新增到你的 [Avante.nvim](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")
      }
    }
  }
}
```

---

### CodeCompanion.nvim

要在 [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim) 中將 OpenCode 用作 ACP 代理，請將以下內容新增到你的 Neovim 設定中：

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

此設定將 CodeCompanion 設為使用 OpenCode 作為聊天的 ACP 代理。

如果需要傳遞環境變數（如 `OPENCODE_API_KEY`），請參閱 CodeCompanion.nvim 文件中的[設定適配器：環境變數](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key)了解詳細資訊。

## 支援

OpenCode 透過 ACP 使用時與在終端機中使用的效果完全一致。所有功能均受支援：

:::note
部分內建斜線命令（如 `/undo` 和 `/redo`）目前暫不支援。
:::

- 內建工具（檔案操作、終端機命令等）
- 自訂工具和斜線命令
- 在 OpenCode 設定中設定的 MCP 伺服器
- 來自 `AGENTS.md` 的專案級規則
- 自訂格式化工具和程式碼檢查工具
- 代理和權限系統
