ACP 编辑器接入
用 stdio 子进程将 OpenCode 接入 Zed、JetBrains 和 Neovim。
This page has not been translated into English yet. The original Chinese version is shown below.
ACP(Agent Client Protocol)让编辑器与编程 Agent 通过统一协议交互。编辑器启动 opencode acp 子进程,使用标准输入输出上的 JSON-RPC 通信;CLI 页将传输描述为 nd-JSON。
Zed
在命令面板运行 zed: acp registry,从注册表安装 OpenCode。需要指定自己的可执行文件时,在 ~/.config/zed/settings.json 配置:
{
"agent_servers": {
"OpenCode": {
"type": "custom",
"command": "opencode",
"args": ["acp"]
}
}
}随后使用命令面板的 agent: new thread。官方还提供通过 agent::NewExternalAgentThread 动作在 keymap.json 绑定快捷键的示例;快捷键涉及编辑器版本时以其当前动作定义为准。
JetBrains
在编辑器的 acp.json 声明 Agent。将示例路径替换为实际 OpenCode 可执行文件的绝对路径:
{
"agent_servers": {
"OpenCode": {
"command": "/absolute/path/bin/opencode",
"args": ["acp"]
}
}
}配置完成后,在 AI Chat 的 Agent 选择器中选 OpenCode。
Neovim
Avante.nvim 使用 acp_providers 配置:
{
acp_providers = {
["opencode"] = {
command = "opencode",
args = { "acp" }
}
}
}需要环境变量时,该 provider 下可增加 env 表;官方示例从 os.getenv("OPENCODE_API_KEY") 传入同名变量。凭据名称取决于所用提供商,不应将这个例子当作所有服务通用 Key。
CodeCompanion.nvim 的官方示例在 interactions.chat.adapter 中设置 name = "opencode" 与模型名称。其环境变量传递遵循该插件的 adapter 配置;不要把 Avante 的表结构直接用于另一个插件。
工作目录与功能边界
opencode acp --cwd <path> 指定工作目录。模型、MCP、项目 AGENTS.md、自定义工具与命令、格式化与 lint、智能体和权限仍来自 OpenCode 配置。
ACP 专门页明确指出部分内置 slash commands 暂不支持,包括 /undo、/redo。因此不能因协议接入成功就假定 TUI 中每个命令都能在编辑器里使用。