summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/web/astro.config.mjs1
-rw-r--r--packages/web/src/content/docs/acp.mdx103
2 files changed, 104 insertions, 0 deletions
diff --git a/packages/web/astro.config.mjs b/packages/web/astro.config.mjs
index 3bcd98cb7..7d509cabc 100644
--- a/packages/web/astro.config.mjs
+++ b/packages/web/astro.config.mjs
@@ -85,6 +85,7 @@ export default defineConfig({
"permissions",
"lsp",
"mcp-servers",
+ "acp",
"custom-tools",
],
},
diff --git a/packages/web/src/content/docs/acp.mdx b/packages/web/src/content/docs/acp.mdx
new file mode 100644
index 000000000..15ec1a1f0
--- /dev/null
+++ b/packages/web/src/content/docs/acp.mdx
@@ -0,0 +1,103 @@
+---
+title: ACP Support
+description: Use OpenCode in any ACP-compatible editor.
+---
+
+OpenCode supports the [Agent Client Protocol](https://agentclientprotocol.com) or (ACP), allowing you to use it directly in compatible editors and IDEs.
+
+:::tip
+For a list of editors and tools that support ACP, check out the [ACP progress report](https://zed.dev/blog/acp-progress-report#available-now).
+:::
+
+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](https://zed.dev) configuration (`~/.config/zed/settings.json`):
+
+```json title="~/.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`:
+
+```json title="keymap.json"
+[
+ {
+ "bindings": {
+ "cmd-alt-o": ["agent::NewExternalAgentThread", { "agent": "OpenCode" }]
+ }
+ }
+]
+```
+
+---
+
+### Avante.nvim
+
+Add to your [Avante.nvim](https://github.com/yetone/avante.nvim) configuration:
+
+```lua
+{
+ acp_providers = {
+ ["opencode"] = {
+ command = "opencode",
+ args = { "acp" }
+ }
+ }
+}
+```
+
+If you need to pass environment variables:
+
+```lua {6-8}
+{
+ acp_providers = {
+ ["opencode"] = {
+ command = "opencode",
+ args = { "acp" },
+ env = {
+ OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY")
+ }
+ }
+ }
+}
+```
+
+---
+
+## Support
+
+OpenCode works the same via ACP as it does in the terminal. All features are supported:
+
+:::note
+Some built-in slash commands like `/undo` and `/redo` are 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