mirror of
https://github.com/anomalyco/opencode.git
synced 2026-04-28 12:39:43 +00:00
603 lines
18 KiB
Text
603 lines
18 KiB
Text
---
|
|
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_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 |
|