跳到主要內容
設定

ACP 支援

OpenCode 支援 Agent Client Protocol(ACP),允許你直接在相容的編輯器和 IDE 中使用它。

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


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

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

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


在命令面板中執行 zed: acp registry,從 Zed ACP 登錄檔安裝 OpenCode。

如果要改用自訂 OpenCode 執行檔,請將它新增到 Zed 設定檔(~/.config/zed/settings.json)中:

~/.config/zed/settings.json
{
  "agent_servers": {
    "OpenCode": {
      "type": "custom",
      "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 的 acp.json 中:

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

開啟方式:在 AI Chat 代理選擇器中選擇新的 ‘OpenCode’ 代理。


新增到你的 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 用作 ACP 代理,請將以下內容新增到你的 Neovim 設定中:

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

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

如果需要傳遞環境變數(如 OPENCODE_API_KEY),請參閱 CodeCompanion.nvim 文件中的設定適配器:環境變數了解詳細資訊。

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

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