File size: 3,782 Bytes
89a2873 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | ---
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: acp registry`,從 [Zed ACP 登錄檔](https://zed.dev/docs/ai/external-agents#registry)安裝 OpenCode。
如果要改用自訂 OpenCode 執行檔,請將它新增到 [Zed](https://zed.dev) 設定檔(`~/.config/zed/settings.json`)中:
```json title="~/.config/zed/settings.json"
{
"agent_servers": {
"OpenCode": {
"type": "custom",
"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` 的專案級規則
- 自訂格式化工具和程式碼檢查工具
- 代理和權限系統
|