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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
|
---
title: CLI
description: Opzioni e comandi della CLI di OpenCode.
---
import { Tabs, TabItem } from "@astrojs/starlight/components"
La CLI di OpenCode, per impostazione predefinita, avvia la [TUI](/docs/tui) quando viene eseguita senza argomenti.
```bash
opencode
```
Ma accetta anche i comandi documentati in questa pagina. Questo ti permette di interagire con OpenCode in modo programmatico.
```bash
opencode run "Explain how closures work in JavaScript"
```
---
### tui
Avvia l'interfaccia testuale di OpenCode (interfaccia utente da terminale).
```bash
opencode [project]
```
#### Flag
| Flag | Breve | Descrizione |
| ---------------------------------------- | ----- | ------------------------------------------------------------------------ |
| <nobr><code>{"--continue"}</code></nobr> | `-c` | Continua l'ultima sessione |
| <nobr><code>{"--session"}</code></nobr> | `-s` | ID sessione da continuare |
| <nobr><code>{"--fork"}</code></nobr> | | Duplica la sessione quando continui (usa con `--continue` o `--session`) |
| <nobr><code>{"--prompt"}</code></nobr> | | Prompt da usare |
| <nobr><code>{"--model"}</code></nobr> | `-m` | Modello nel formato provider/model |
| <nobr><code>{"--agent"}</code></nobr> | | Agente da usare |
| <nobr><code>{"--port"}</code></nobr> | | Porta su cui mettersi in ascolto |
| <nobr><code>{"--hostname"}</code></nobr> | | Hostname su cui mettersi in ascolto |
---
## Comandi
La CLI di OpenCode include anche i seguenti comandi.
---
### agent
Gestisci gli agenti per OpenCode.
```bash
opencode agent [command]
```
---
### attach
Collega un terminale a un backend server di OpenCode già in esecuzione avviato tramite i comandi `serve` o `web`.
```bash
opencode attach [url]
```
Questo consente di usare la TUI con un backend OpenCode remoto. Per esempio:
```bash
# Start the backend server for web/mobile access
opencode web --port 4096 --hostname 0.0.0.0
# In un altro terminale, collega la TUI al backend in esecuzione
opencode attach http://10.20.30.40:4096
```
#### Flag
| Flag | Breve | Descrizione |
| ---------------------------------------- | ----- | ----------------------------------------------------------------------------------------------- |
| <nobr><code>{"--dir"}</code></nobr> | | Working directory in cui avviare la TUI |
| <nobr><code>{"--continue"}</code></nobr> | `-c` | Continua l'ultima sessione |
| <nobr><code>{"--session"}</code></nobr> | `-s` | ID sessione da continuare |
| <nobr><code>{"--fork"}</code></nobr> | | Crea un fork della sessione durante la continuazione (usa con `--continue` o `--session`) |
| <nobr><code>{"--password"}</code></nobr> | `-p` | Password per l'autenticazione di base (predefinita: `OPENCODE_SERVER_PASSWORD`) |
| <nobr><code>{"--username"}</code></nobr> | `-u` | Nome utente per l'autenticazione di base (predefinito: `OPENCODE_SERVER_USERNAME` o `opencode`) |
---
#### create
Crea un nuovo agente con configurazione personalizzata.
```bash
opencode agent create
```
Questo comando ti guida nella creazione di un nuovo agente con un system prompt personalizzato e configurazione degli strumenti.
---
#### list
Elenca tutti gli agenti disponibili.
```bash
opencode agent list
```
---
### auth
Comando per gestire le credenziali e il login dei provider.
```bash
opencode auth [command]
```
---
#### login
OpenCode si basa sull'elenco provider di [Models.dev](https://models.dev), quindi puoi usare `opencode auth login` per configurare le API key per qualunque provider tu voglia usare. Le credenziali vengono salvate in `~/.local/share/opencode/auth.json`.
```bash
opencode auth login
```
Quando OpenCode si avvia, carica i provider dal file delle credenziali e, se presenti, anche eventuali key definite nell'ambiente o in un file `.env` nel progetto.
---
#### list
Elenca tutti i provider autenticati come salvati nel file delle credenziali.
```bash
opencode auth list
```
Oppure la versione corta.
```bash
opencode auth ls
```
---
#### logout
Esegue il logout da un provider rimuovendolo dal file delle credenziali.
```bash
opencode auth logout
```
---
### github
Gestisci l'agente GitHub per l'automazione dei repository.
```bash
opencode github [command]
```
---
#### install
Installa l'agente GitHub nel tuo repository.
```bash
opencode github install
```
Questo configura il workflow GitHub Actions necessario e ti guida nel processo di configurazione. [Scopri di più](/docs/github).
---
#### run
Esegui l'agente GitHub. Tipicamente usato in GitHub Actions.
```bash
opencode github run
```
##### Flag
| Flag | Descrizione |
| ------------------------------------- | -------------------------------------------- |
| <nobr><code>{"--event"}</code></nobr> | Evento GitHub mock per cui eseguire l'agente |
| <nobr><code>{"--token"}</code></nobr> | GitHub personal access token |
---
### mcp
Gestisci i server Model Context Protocol.
```bash
opencode mcp [command]
```
---
#### add
Aggiungi un server MCP alla tua configurazione.
```bash
opencode mcp add
```
Questo comando ti guida nell'aggiunta di un server MCP locale o remoto.
---
#### list
Elenca tutti i server MCP configurati e il loro stato di connessione.
```bash
opencode mcp list
```
Oppure la versione corta.
```bash
opencode mcp ls
```
---
#### auth
Autentica con un server MCP con OAuth abilitato.
```bash
opencode mcp auth [name]
```
Se non fornisci un nome server, ti verrà chiesto di selezionare tra i server OAuth-capable disponibili.
Puoi anche elencare i server OAuth-capable e il loro stato di autenticazione.
```bash
opencode mcp auth list
```
Oppure la versione corta.
```bash
opencode mcp auth ls
```
---
#### logout
Rimuovi le credenziali OAuth per un server MCP.
```bash
opencode mcp logout [name]
```
---
#### debug
Esegui debug di problemi di connessione OAuth per un server MCP.
```bash
opencode mcp debug <name>
```
---
### models
Elenca tutti i modelli disponibili dai provider configurati.
```bash
opencode models [provider]
```
Questo comando mostra tutti i modelli disponibili tra i provider configurati nel formato `provider/model`.
È utile per capire l'esatto nome del modello da usare nella [config](/docs/config/).
Puoi anche passare opzionalmente un ID provider per filtrare i modelli a quel provider.
```bash
opencode models anthropic
```
#### Flag
| Flag | Descrizione |
| --------------------------------------- | -------------------------------------------------- |
| <nobr><code>{"--refresh"}</code></nobr> | Aggiorna la cache modelli da models.dev |
| <nobr><code>{"--verbose"}</code></nobr> | Output più verboso (include metadati come i costi) |
Usa `--refresh` per aggiornare l'elenco modelli in cache. È utile quando nuovi modelli vengono aggiunti a un provider e vuoi vederli in OpenCode.
```bash
opencode models --refresh
```
---
### run
Esegui opencode in modalità non interattiva passando un prompt direttamente.
```bash
opencode run [message..]
```
È utile per scripting, automazione o quando vuoi una risposta rapida senza avviare la TUI completa. Per esempio:
```bash "opencode run"
opencode run Explain the use of context in Go
```
Puoi anche collegarti a una istanza `opencode serve` già in esecuzione per evitare i cold boot dei server MCP ad ogni esecuzione:
```bash
# Avvia un server headless in un terminale
opencode serve
# In un altro terminale, esegui comandi che si collegano ad esso
opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
```
#### Flag
| Flag | Breve | Descrizione |
| ---------------------------------------- | ----- | ----------------------------------------------------------------------------------------------- |
| <nobr><code>{"--command"}</code></nobr> | | Il comando da eseguire; usa message per gli argomenti |
| <nobr><code>{"--continue"}</code></nobr> | `-c` | Continua l'ultima sessione |
| <nobr><code>{"--session"}</code></nobr> | `-s` | ID sessione da continuare |
| <nobr><code>{"--fork"}</code></nobr> | | Duplica la sessione quando continui (usa con `--continue` o `--session`) |
| <nobr><code>{"--share"}</code></nobr> | | Condividi la sessione |
| <nobr><code>{"--model"}</code></nobr> | `-m` | Modello nel formato provider/model |
| <nobr><code>{"--agent"}</code></nobr> | | Agente da usare |
| <nobr><code>{"--file"}</code></nobr> | `-f` | File da allegare al messaggio |
| <nobr><code>{"--format"}</code></nobr> | | Formato: default (formattato) o json (eventi JSON grezzi) |
| <nobr><code>{"--title"}</code></nobr> | | Titolo sessione (usa prompt troncato se non viene fornito un valore) |
| <nobr><code>{"--attach"}</code></nobr> | | Attach a un server opencode in esecuzione (es. http://localhost:4096) |
| <nobr><code>{"--password"}</code></nobr> | `-p` | Password per l'autenticazione di base (predefinita: `OPENCODE_SERVER_PASSWORD`) |
| <nobr><code>{"--username"}</code></nobr> | `-u` | Nome utente per l'autenticazione di base (predefinito: `OPENCODE_SERVER_USERNAME` o `opencode`) |
| <nobr><code>{"--dir"}</code></nobr> | | Directory di esecuzione, o percorso sul server remoto durante il collegamento |
| <nobr><code>{"--variant"}</code></nobr> | | Variante del modello (sforzo di ragionamento specifico del provider) |
| <nobr><code>{"--thinking"}</code></nobr> | | Mostra blocchi di pensiero |
| <nobr><code>{"--port"}</code></nobr> | | Porta per il server locale (di default una porta casuale) |
---
### serve
Avvia un server OpenCode headless per accesso via API. Vedi le [server docs](/docs/server) per l'interfaccia HTTP completa.
```bash
opencode serve
```
Avvia un server HTTP che espone accesso API alle funzionalità di opencode senza la TUI. Imposta `OPENCODE_SERVER_PASSWORD` per abilitare HTTP basic auth (username di default `opencode`).
#### Flag
| Flag | Descrizione |
| ---------------------------------------- | ---------------------------------------------- |
| <nobr><code>{"--port"}</code></nobr> | Porta su cui mettersi in ascolto |
| <nobr><code>{"--hostname"}</code></nobr> | Hostname su cui mettersi in ascolto |
| <nobr><code>{"--mdns"}</code></nobr> | Abilita discovery mDNS |
| <nobr><code>{"--cors"}</code></nobr> | Origin browser addizionali per consentire CORS |
---
### session
Gestisci le sessioni OpenCode.
```bash
opencode session [command]
```
---
#### list
Elenca tutte le sessioni OpenCode.
```bash
opencode session list
```
##### Flag
| Flag | Breve | Descrizione |
| ----------------------------------------- | ----- | ------------------------------------ |
| <nobr><code>{"--max-count"}</code></nobr> | `-n` | Limita alle N sessioni più recenti |
| <nobr><code>{"--format"}</code></nobr> | | Formato output: table o json (table) |
---
### stats
Mostra statistiche di utilizzo token e costo per le sessioni OpenCode.
```bash
opencode stats
```
#### Flag
| Flag | Descrizione |
| --------------------------------------- | ------------------------------------------------------------------------------------- |
| <nobr><code>{"--days"}</code></nobr> | Mostra statistiche per gli ultimi N giorni (all time) |
| <nobr><code>{"--tools"}</code></nobr> | Numero di strumenti da mostrare (all) |
| <nobr><code>{"--models"}</code></nobr> | Mostra breakdown di utilizzo modelli (nascosto di default). Passa un numero per top N |
| <nobr><code>{"--project"}</code></nobr> | Filtra per progetto (tutti i progetti; stringa vuota: progetto corrente) |
---
### export
Esporta i dati di sessione come JSON.
```bash
opencode export [sessionID]
```
Se non fornisci un ID sessione, ti verrà chiesto di selezionare tra le sessioni disponibili.
---
### import
Importa i dati di sessione da un file JSON o da un URL di condivisione OpenCode.
```bash
opencode import <file>
```
Puoi importare da un file locale o da un URL di condivisione OpenCode.
```bash
opencode import session.json
opencode import https://opncd.ai/s/abc123
```
---
### web
Avvia un server OpenCode headless con interfaccia web.
```bash
opencode web
```
Avvia un server HTTP e apre un browser per accedere a OpenCode tramite interfaccia web. Imposta `OPENCODE_SERVER_PASSWORD` per abilitare HTTP basic auth (username di default `opencode`).
#### Flag
| Flag | Descrizione |
| ---------------------------------------- | ---------------------------------------------- |
| <nobr><code>{"--port"}</code></nobr> | Porta su cui mettersi in ascolto |
| <nobr><code>{"--hostname"}</code></nobr> | Hostname su cui mettersi in ascolto |
| <nobr><code>{"--mdns"}</code></nobr> | Abilita discovery mDNS |
| <nobr><code>{"--cors"}</code></nobr> | Origin browser addizionali per consentire CORS |
---
### acp
Avvia un server ACP (Agent Client Protocol).
```bash
opencode acp
```
Questo comando avvia un server ACP che comunica via stdin/stdout usando nd-JSON.
#### Flag
| Flag | Descrizione |
| ---------------------------------------- | ----------------------------------- |
| <nobr><code>{"--cwd"}</code></nobr> | Directory di lavoro |
| <nobr><code>{"--port"}</code></nobr> | Porta su cui mettersi in ascolto |
| <nobr><code>{"--hostname"}</code></nobr> | Hostname su cui mettersi in ascolto |
---
### uninstall
Disinstalla OpenCode e rimuove tutti i file correlati.
```bash
opencode uninstall
```
#### Flag
| Flag | Breve | Descrizione |
| ------------------------------------------- | ----- | -------------------------------------------- |
| <nobr><code>{"--keep-config"}</code></nobr> | `-c` | Mantieni i file di configurazione |
| <nobr><code>{"--keep-data"}</code></nobr> | `-d` | Mantieni dati di sessione e snapshot |
| <nobr><code>{"--dry-run"}</code></nobr> | | Mostra cosa verrebbe rimosso senza rimuovere |
| <nobr><code>{"--force"}</code></nobr> | `-f` | Salta le richieste di conferma |
---
### upgrade
Aggiorna opencode all'ultima versione o a una versione specifica.
```bash
opencode upgrade [target]
```
Per aggiornare all'ultima versione:
```bash
opencode upgrade
```
Per aggiornare a una versione specifica:
```bash
opencode upgrade v0.1.48
```
#### Flag
| Flag | Breve | Descrizione |
| -------------------------------------- | ----- | --------------------------------------------------------- |
| <nobr><code>{"--method"}</code></nobr> | `-m` | Metodo di installazione usato: curl, npm, pnpm, bun, brew |
---
## Flag globali
La CLI di opencode accetta i seguenti flag globali.
| Flag | Breve | Descrizione |
| ------------------------------------------ | ----- | -------------------------------------- |
| <nobr><code>{"--help"}</code></nobr> | `-h` | Mostra l'help |
| <nobr><code>{"--version"}</code></nobr> | `-v` | Stampa il numero di versione |
| <nobr><code>{"--print-logs"}</code></nobr> | | Stampa i log su stderr |
| <nobr><code>{"--log-level"}</code></nobr> | | Livello log (DEBUG, INFO, WARN, ERROR) |
---
## Variabili d'ambiente
OpenCode può essere configurato tramite variabili d'ambiente.
| Variabile | Tipo | Descrizione |
| ------------------------------------- | ------- | ----------------------------------------------------------- |
| `OPENCODE_AUTO_SHARE` | boolean | Condivide automaticamente le sessioni |
| `OPENCODE_GIT_BASH_PATH` | string | Percorso all'eseguibile Git Bash su Windows |
| `OPENCODE_CONFIG` | string | Percorso al file di configurazione |
| `OPENCODE_TUI_CONFIG` | string | Percorso al file di configurazione TUI |
| `OPENCODE_CONFIG_DIR` | string | Percorso alla directory di configurazione |
| `OPENCODE_CONFIG_CONTENT` | string | Contenuto JSON di config inline |
| `OPENCODE_DISABLE_AUTOUPDATE` | boolean | Disabilita i controlli automatici di aggiornamento |
| `OPENCODE_DISABLE_PRUNE` | boolean | Disabilita la potatura dei dati vecchi |
| `OPENCODE_DISABLE_TERMINAL_TITLE` | boolean | Disabilita aggiornamenti automatici del titolo terminale |
| `OPENCODE_PERMISSION` | string | Config permessi JSON inline |
| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | boolean | Disabilita i plugin di default |
| `OPENCODE_DISABLE_LSP_DOWNLOAD` | boolean | Disabilita download automatico dei server LSP |
| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolean | Abilita modelli sperimentali |
| `OPENCODE_DISABLE_AUTOCOMPACT` | boolean | Disabilita compaction automatica del contesto |
| `OPENCODE_DISABLE_CLAUDE_CODE` | boolean | Disabilita lettura da `.claude` (prompt + skill) |
| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolean | Disabilita lettura di `~/.claude/CLAUDE.md` |
| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolean | Disabilita caricamento di `.claude/skills` |
| `OPENCODE_DISABLE_MODELS_FETCH` | boolean | Disabilita fetch dei modelli da fonti remote |
| `OPENCODE_FAKE_VCS` | string | Provider VCS finto per scopi di test |
| `OPENCODE_CLIENT` | string | Identificatore client (default `cli`) |
| `OPENCODE_ENABLE_EXA` | boolean | Abilita gli strumenti di web search Exa |
| `OPENCODE_SERVER_PASSWORD` | string | Abilita basic auth per `serve`/`web` |
| `OPENCODE_SERVER_USERNAME` | string | Sovrascrive lo username basic auth (default `opencode`) |
| `OPENCODE_MODELS_URL` | string | URL personalizzato per recuperare la configurazione modelli |
---
### Sperimentale
Queste variabili d'ambiente abilitano funzionalità sperimentali che potrebbero cambiare o essere rimosse.
| Variabile | Tipo | Descrizione |
| ----------------------------------------------- | ------- | ------------------------------------------ |
| `OPENCODE_EXPERIMENTAL` | boolean | Abilita tutte le funzionalità sperimentali |
| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | Abilita icon discovery |
| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | boolean | Disabilita copy on select nella TUI |
| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | number | Timeout di default per comandi bash in ms |
| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | number | Massimo token di output per risposte LLM |
| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | boolean | Abilita file watcher per l'intera dir |
| `OPENCODE_EXPERIMENTAL_OXFMT` | boolean | Abilita formatter oxfmt |
| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | boolean | Abilita strumento LSP sperimentale |
| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | Disabilita file watcher |
| `OPENCODE_EXPERIMENTAL_EXA` | boolean | Abilita funzionalità Exa sperimentali |
| `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | Abilita TY LSP per i file python |
| `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | Abilita markdown sperimentale |
| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | Abilita plan mode |
|