---
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 |
| `--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 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 <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                                        |
| ----------- | -------------------------------------------------- |
| `--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)    |
| `--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 <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 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_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 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 type checking LSP sperimentale     |
| `OPENCODE_EXPERIMENTAL_MARKDOWN`                | boolean | Abilita markdown sperimentale              |
| `OPENCODE_EXPERIMENTAL_PLAN_MODE`               | boolean | Abilita plan mode                          |
