File size: 23,351 Bytes
0dbc9de | 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 613 614 615 616 617 618 | ---
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 funzionalità sperimentali sotto il flag globale |
| `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_PLAN_MODE` | boolean | Abilita plan mode |
| `OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS` | boolean | Abilita task subagent in background |
| `OPENCODE_EXPERIMENTAL_EVENT_SYSTEM` | boolean | Abilita sistema eventi sperimentale |
| `OPENCODE_EXPERIMENTAL_NATIVE_LLM` | boolean | Abilita percorso nativo di richiesta LLM |
| `OPENCODE_EXPERIMENTAL_PARALLEL` | boolean | Abilita esecuzione parallela della ricerca web |
| `OPENCODE_EXPERIMENTAL_SCOUT` | boolean | Abilita subagent Scout |
| `OPENCODE_EXPERIMENTAL_WORKSPACES` | boolean | Abilita supporto workspace |
|