跳到內容

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

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

要打開它,請使用 命令面板 中的 agent: new thread 操作。

您還可以通過編輯keymap.json來綁定鍵盤快捷鍵:

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

JetBrains IDE

根據文件添加到你的JetBrains IDE acp.json:

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

要將 OpenCode 用作 CodeCompanion.nvim 中的 ACP 代理,請將以下內容添加到 Neovim 配置中:

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

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

如果您需要傳遞環境變量(如 OPENCODE_API_KEY),請參閱 CodeCompanion.nvim 文檔中的 配置適配器:環境變量 了解完整詳細信息。

支持

OpenCode 通過 ACP 的工作方式與在 terminal 中的工作方式相同。支持所有功能:

  • 內置工具(文件操作、terminal 命令等)
  • 自定義工具和斜杠命令
  • 在 OpenCode 配置中配置的 MCP 服務器
  • AGENTS.md 的項目特定規則
  • 自定義格式化程序和 linter
  • 代理和權限系統