--- 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 | | ---------------------------------------- | ----- | ------------------------------------------------------------------------ | | {"--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 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 | | ---------------------------------------- | ----- | ----------------------------------------------------------------------------------------------- | | {"--dir"} | | Working directory in cui avviare la TUI | | {"--continue"} | `-c` | Continua l'ultima sessione | | {"--session"} | `-s` | ID sessione da continuare | | {"--fork"} | | Crea un fork della sessione durante la continuazione (usa con `--continue` o `--session`) | | {"--password"} | `-p` | Password per l'autenticazione di base (predefinita: `OPENCODE_SERVER_PASSWORD`) | | {"--username"} | `-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 | | ------------------------------------- | -------------------------------------------- | | {"--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 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 ``` --- ### 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 | | --------------------------------------- | -------------------------------------------------- | | {"--refresh"} | Aggiorna la cache modelli da models.dev | | {"--verbose"} | 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 | | ---------------------------------------- | ----- | ----------------------------------------------------------------------------------------------- | | {"--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) | | {"--password"} | `-p` | Password per l'autenticazione di base (predefinita: `OPENCODE_SERVER_PASSWORD`) | | {"--username"} | `-u` | Nome utente per l'autenticazione di base (predefinito: `OPENCODE_SERVER_USERNAME` o `opencode`) | | {"--dir"} | | Directory di esecuzione, o percorso sul server remoto durante il collegamento | | {"--variant"} | | Variante del modello (sforzo di ragionamento specifico del provider) | | {"--thinking"} | | Mostra blocchi di pensiero | | {"--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 funzionalità 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 più 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 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 ``` 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 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 |