--- title: Supporto ACP description: Usa OpenCode in qualunque editor compatibile con ACP. --- OpenCode supporta [Agent Client Protocol](https://agentclientprotocol.com) (ACP), permettendoti di usarlo direttamente in editor e IDE compatibili. :::tip Per una lista di editor e tool che supportano ACP, vedi l'[ACP progress report](https://zed.dev/blog/acp-progress-report#available-now). ::: ACP e รจ un protocollo aperto che standardizza la comunicazione tra editor di codice e agenti di coding AI. --- ## Configurazione Per usare OpenCode via ACP, configura l'editor in modo che esegua il comando `opencode acp`. Il comando avvia OpenCode come sottoprocesso compatibile con ACP che comunica con l'editor via JSON-RPC su stdio. Qui sotto trovi esempi per editor popolari che supportano ACP. --- ### Zed Aggiungi alla configurazione di [Zed](https://zed.dev) (`~/.config/zed/settings.json`): ```json title="~/.config/zed/settings.json" { "agent_servers": { "OpenCode": { "command": "opencode", "args": ["acp"] } } } ``` Per aprirlo, usa l'azione `agent: new thread` nella **Command Palette**. Puoi anche assegnare una scorciatoia da tastiera modificando `keymap.json`: ```json title="keymap.json" [ { "bindings": { "cmd-alt-o": [ "agent::NewExternalAgentThread", { "agent": { "custom": { "name": "OpenCode", "command": { "command": "opencode", "args": ["acp"] } } } } ] } } ] ``` --- ### JetBrains IDEs Aggiungi al tuo acp.json per [JetBrains IDE](https://www.jetbrains.com/) secondo la [documentazione](https://www.jetbrains.com/help/ai-assistant/acp.html): ```json title="acp.json" { "agent_servers": { "OpenCode": { "command": "/absolute/path/bin/opencode", "args": ["acp"] } } } ``` Per aprirlo, seleziona il nuovo agente 'OpenCode' nel selettore agenti di AI Chat. --- ### Avante.nvim Aggiungi alla configurazione di [Avante.nvim](https://github.com/yetone/avante.nvim): ```lua { acp_providers = { ["opencode"] = { command = "opencode", args = { "acp" } } } } ``` Se devi passare variabili d'ambiente: ```lua {6-8} { acp_providers = { ["opencode"] = { command = "opencode", args = { "acp" }, env = { OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY") } } } } ``` --- ### CodeCompanion.nvim Per usare OpenCode come agente ACP in [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim), aggiungi quanto segue alla config di Neovim: ```lua require("codecompanion").setup({ interactions = { chat = { adapter = { name = "opencode", model = "claude-sonnet-4", }, }, }, }) ``` Questa config imposta CodeCompanion per usare OpenCode come agente ACP per la chat. Se devi passare variabili d'ambiente (come `OPENCODE_API_KEY`), vedi [Configuring Adapters: Environment Variables](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) nella documentazione di CodeCompanion.nvim. ## Supporto OpenCode funziona via ACP come nel terminale. Tutte le funzionalita sono supportate: :::note Alcuni comandi slash integrati come `/undo` e `/redo` non sono attualmente supportati. ::: - Strumenti integrati (operazioni sui file, comandi da terminale, ecc.) - Strumenti personalizzati e comandi slash - Server MCP configurati nella tua configurazione OpenCode - Regole specifiche del progetto da `AGENTS.md` - Formatter e linter personalizzati - Sistema di agenti e permessi