跳到內容

ACP 支援

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

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


設定

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

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

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


Zed

新增到你的 Zed 設定檔(~/.config/zed/settings.json)中:

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

開啟方式:在命令面板中執行 agent: new thread 操作。

你也可以透過編輯 keymap.json 來繫結鍵盤快速鍵:

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

JetBrains IDEs

根據文件,將以下內容新增到你的 JetBrains IDE 的 acp.json 中:

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

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


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

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

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

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

支援

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

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