| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603 |
- ---
- 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 (terminal user interface).
- ```bash
- opencode [project]
- ```
- #### Flag
- | Flag | Breve | Descrizione |
- | ------------ | ----- | ------------------------------------------------------------------------ |
- | `--continue` | `-c` | Continua l'ultima sessione |
- | `--session` | `-s` | ID sessione da continuare |
- | `--fork` | | Duplica la sessione quando continui (usa con `--continue` o `--session`) |
- | `--prompt` | | Prompt da usare |
- | `--model` | `-m` | Modello nel formato provider/model |
- | `--agent` | | Agente da usare |
- | `--port` | | Porta su cui mettersi in ascolto |
- | `--hostname` | | 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 gia' 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 another terminal, attach the TUI to the running backend
- opencode attach http://10.20.30.40:4096
- ```
- #### Flag
- | Flag | Breve | Descrizione |
- | ----------- | ----- | --------------------------------------- |
- | `--dir` | | Working directory in cui avviare la TUI |
- | `--session` | `-s` | ID sessione da continuare |
- ---
- #### 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 piu'](/docs/github).
- ---
- #### run
- Esegui l'agente GitHub. Tipicamente usato in GitHub Actions.
- ```bash
- opencode github run
- ```
- ##### Flag
- | Flag | Descrizione |
- | --------- | -------------------------------------------- |
- | `--event` | Evento GitHub mock per cui eseguire l'agente |
- | `--token` | 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 verra' 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`.
- E' 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 |
- | ----------- | --------------------------------------------------- |
- | `--refresh` | Aggiorna la cache modelli da models.dev |
- | `--verbose` | Output piu' verboso (include metadati come i costi) |
- Usa `--refresh` per aggiornare l'elenco modelli in cache. E' utile quando nuovi modelli vengono aggiunti a un provider e vuoi vederli in OpenCode.
- ```bash
- opencode models --refresh
- ```
- ---
- ### run
- Esegui opencode in modalita' non interattiva passando un prompt direttamente.
- ```bash
- opencode run [message..]
- ```
- E' 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` gia' in esecuzione per evitare i cold boot dei server MCP ad ogni esecuzione:
- ```bash
- # Start a headless server in one terminal
- opencode serve
- # In another terminal, run commands that attach to it
- opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
- ```
- #### Flag
- | Flag | Breve | Descrizione |
- | ------------ | ----- | ------------------------------------------------------------------------ |
- | `--command` | | Il comando da eseguire; usa message per gli argomenti |
- | `--continue` | `-c` | Continua l'ultima sessione |
- | `--session` | `-s` | ID sessione da continuare |
- | `--fork` | | Duplica la sessione quando continui (usa con `--continue` o `--session`) |
- | `--share` | | Condividi la sessione |
- | `--model` | `-m` | Modello nel formato provider/model |
- | `--agent` | | Agente da usare |
- | `--file` | `-f` | File da allegare al messaggio |
- | `--format` | | Formato: default (formattato) o json (eventi JSON grezzi) |
- | `--title` | | Titolo sessione (usa prompt troncato se non viene fornito un valore) |
- | `--attach` | | Attach a un server opencode in esecuzione (es. http://localhost:4096) |
- | `--port` | | 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 funzionalita' di opencode senza la TUI. Imposta `OPENCODE_SERVER_PASSWORD` per abilitare HTTP basic auth (username di default `opencode`).
- #### Flag
- | Flag | Descrizione |
- | ------------ | ---------------------------------------------- |
- | `--port` | Porta su cui mettersi in ascolto |
- | `--hostname` | Hostname su cui mettersi in ascolto |
- | `--mdns` | Abilita discovery mDNS |
- | `--cors` | 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 |
- | ------------- | ----- | ------------------------------------ |
- | `--max-count` | `-n` | Limita alle N sessioni piu' recenti |
- | `--format` | | Formato output: table o json (table) |
- ---
- ### stats
- Mostra statistiche di utilizzo token e costo per le sessioni OpenCode.
- ```bash
- opencode stats
- ```
- #### Flag
- | Flag | Descrizione |
- | ----------- | ------------------------------------------------------------------------------------- |
- | `--days` | Mostra statistiche per gli ultimi N giorni (all time) |
- | `--tools` | Numero di strumenti da mostrare (all) |
- | `--models` | Mostra breakdown di utilizzo modelli (nascosto di default). Passa un numero per top N |
- | `--project` | 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 verra' 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 |
- | ------------ | ---------------------------------------------- |
- | `--port` | Porta su cui mettersi in ascolto |
- | `--hostname` | Hostname su cui mettersi in ascolto |
- | `--mdns` | Abilita discovery mDNS |
- | `--cors` | 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 |
- | ------------ | ----------------------------------- |
- | `--cwd` | Directory di lavoro |
- | `--port` | Porta su cui mettersi in ascolto |
- | `--hostname` | Hostname su cui mettersi in ascolto |
- ---
- ### uninstall
- Disinstalla OpenCode e rimuove tutti i file correlati.
- ```bash
- opencode uninstall
- ```
- #### Flag
- | Flag | Breve | Descrizione |
- | --------------- | ----- | -------------------------------------------- |
- | `--keep-config` | `-c` | Mantieni i file di configurazione |
- | `--keep-data` | `-d` | Mantieni dati di sessione e snapshot |
- | `--dry-run` | | Mostra cosa verrebbe rimosso senza rimuovere |
- | `--force` | `-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 |
- | ---------- | ----- | --------------------------------------------------------- |
- | `--method` | `-m` | Metodo di installazione usato: curl, npm, pnpm, bun, brew |
- ---
- ## Flag globali
- La CLI di opencode accetta i seguenti flag globali.
- | Flag | Breve | Descrizione |
- | -------------- | ----- | -------------------------------------- |
- | `--help` | `-h` | Mostra l'help |
- | `--version` | `-v` | Stampa il numero di versione |
- | `--print-logs` | | Stampa i log su stderr |
- | `--log-level` | | Livello log (DEBUG, INFO, WARN, ERROR) |
- ---
- ## Variabili d'ambiente
- OpenCode puo' 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_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_DISABLE_FILETIME_CHECK` | boolean | Disabilita controllo file time per ottimizzazione |
- | `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 funzionalita' sperimentali che potrebbero cambiare o essere rimosse.
- | Variabile | Tipo | Descrizione |
- | ----------------------------------------------- | ------- | ------------------------------------------- |
- | `OPENCODE_EXPERIMENTAL` | boolean | Abilita tutte le funzionalita' 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 funzionalita' Exa sperimentali |
- | `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | Abilita type checking LSP sperimentale |
- | `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | Abilita markdown sperimentale |
- | `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | Abilita plan mode |
|