1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
---
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
|