ACP 支援
在任何相容 ACP 的編輯器中使用 OpenCode。
OpenCode 支援 Agent Client Protocol(ACP),允許你直接在相容的編輯器和 IDE 中使用它。
ACP 是一個開放協議,用於標準化程式碼編輯器與 AI 編碼代理之間的通訊。
設定
要透過 ACP 使用 OpenCode,請在編輯器中設定執行 opencode acp 命令。
該命令會將 OpenCode 作為相容 ACP 的子程序啟動,透過 stdio 上的 JSON-RPC 與編輯器進行通訊。
以下是支援 ACP 的常用編輯器的設定範例。
Zed
新增到你的 Zed 設定檔(~/.config/zed/settings.json)中:
{ "agent_servers": { "OpenCode": { "command": "opencode", "args": ["acp"] } }}開啟方式:在命令面板中執行 agent: new thread 操作。
你也可以透過編輯 keymap.json 來繫結鍵盤快速鍵:
[ { "bindings": { "cmd-alt-o": [ "agent::NewExternalAgentThread", { "agent": { "custom": { "name": "OpenCode", "command": { "command": "opencode", "args": ["acp"] } } } } ] } }]JetBrains IDEs
根據文件,將以下內容新增到你的 JetBrains IDE 的 acp.json 中:
{ "agent_servers": { "OpenCode": { "command": "/absolute/path/bin/opencode", "args": ["acp"] } }}開啟方式:在 AI Chat 代理選擇器中選擇新的 ‘OpenCode’ 代理。
Avante.nvim
新增到你的 Avante.nvim 設定中:
{ acp_providers = { ["opencode"] = { command = "opencode", args = { "acp" } } }}如果需要傳遞環境變數:
{ acp_providers = { ["opencode"] = { command = "opencode", args = { "acp" }, env = { OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY") } } }}CodeCompanion.nvim
要在 CodeCompanion.nvim 中將 OpenCode 用作 ACP 代理,請將以下內容新增到你的 Neovim 設定中:
require("codecompanion").setup({ interactions = { chat = { adapter = { name = "opencode", model = "claude-sonnet-4", }, }, },})此設定將 CodeCompanion 設為使用 OpenCode 作為聊天的 ACP 代理。
如果需要傳遞環境變數(如 OPENCODE_API_KEY),請參閱 CodeCompanion.nvim 文件中的設定適配器:環境變數了解詳細資訊。
支援
OpenCode 透過 ACP 使用時與在終端機中使用的效果完全一致。所有功能均受支援:
- 內建工具(檔案操作、終端機命令等)
- 自訂工具和斜線命令
- 在 OpenCode 設定中設定的 MCP 伺服器
- 來自
AGENTS.md的專案級規則 - 自訂格式化工具和程式碼檢查工具
- 代理和權限系統