OpenCode supports the Agent Client Protocol or (ACP), allowing you to use it directly in compatible editors and IDEs.
Noteπ‘ Tip
For a list of editors and tools that support ACP, check out the ACP progress report.
ACP is an open protocol that standardizes communication between code editors and AI coding agents.
##Configure
To use OpenCode via ACP, configure your editor to run the opencode acp command.
The command starts OpenCode as an ACP-compatible subprocess that communicates with your editor over JSON-RPC via stdio.
Below are examples for popular editors that support ACP.
###Zed
Add to your Zed configuration (~/.config/zed/settings.json):
{
"agent_servers": {
"OpenCode": {
"command": "opencode",
"args": ["acp"]
}
}
}
To open it, use the agent: new thread action in the Command Palette.
You can also bind a keyboard shortcut by editing your keymap.json:
[
{
"bindings": {
"cmd-alt-o": [
"agent::NewExternalAgentThread",
{
"agent": {
"custom": {
"name": "OpenCode",
"command": {
"command": "opencode",
"args": ["acp"]
}
}
}
}
]
}
}
]
###JetBrains IDEs
Add to your JetBrains IDE acp.json according to the documentation:
{
"agent_servers": {
"OpenCode": {
"command": "/absolute/path/bin/opencode",
"args": ["acp"]
}
}
}
To open it, use the new 'OpenCode' agent in the AI Chat agent selector.
###Avante.nvim
Add to your Avante.nvim configuration:
{
acp_providers = {
["opencode"] = {
command = "opencode",
args = { "acp" }
}
}
}
If you need to pass environment variables:
{
acp_providers = {
["opencode"] = {
command = "opencode",
args = { "acp" },
env = {
OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY")
}
}
}
}
###CodeCompanion.nvim
To use OpenCode as an ACP agent in CodeCompanion.nvim, add the following to your Neovim config:
require("codecompanion").setup({
interactions = {
chat = {
adapter = {
name = "opencode",
model = "claude-sonnet-4",
},
},
},
})
This config sets up CodeCompanion to use OpenCode as the ACP agent for chat.
If you need to pass environment variables (like OPENCODE_API_KEY), refer to Configuring Adapters: Environment Variables in the CodeCompanion.nvim documentation for full details.
##Support
OpenCode works the same via ACP as it does in the terminal. All features are supported:
Noteπ Note
Some built-in slash commands like
/undoand/redoare currently unsupported.
- Built-in tools (file operations, terminal commands, etc.)
- Custom tools and slash commands
- MCP servers configured in your OpenCode config
- Project-specific rules from
AGENTS.md - Custom formatters and linters
- Agents and permissions system