Buckets:
| 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` 的專案級規則 | |
| - 自訂格式化工具和程式碼檢查工具 | |
| - 代理和權限系統 | |
Xet Storage Details
- Size:
- 3.57 kB
- Xet hash:
- 530ed934993553fe27bd7c192c87cbfae27092c783ef68b095623745426a5bad
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.