cli.mdx 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603
  1. ---
  2. title: CLI
  3. description: Opzioni e comandi della CLI di OpenCode.
  4. ---
  5. import { Tabs, TabItem } from "@astrojs/starlight/components"
  6. La CLI di OpenCode, per impostazione predefinita, avvia la [TUI](/docs/tui) quando viene eseguita senza argomenti.
  7. ```bash
  8. opencode
  9. ```
  10. Ma accetta anche i comandi documentati in questa pagina. Questo ti permette di interagire con OpenCode in modo programmatico.
  11. ```bash
  12. opencode run "Explain how closures work in JavaScript"
  13. ```
  14. ---
  15. ### tui
  16. Avvia l'interfaccia testuale di OpenCode (terminal user interface).
  17. ```bash
  18. opencode [project]
  19. ```
  20. #### Flag
  21. | Flag | Breve | Descrizione |
  22. | ------------ | ----- | ------------------------------------------------------------------------ |
  23. | `--continue` | `-c` | Continua l'ultima sessione |
  24. | `--session` | `-s` | ID sessione da continuare |
  25. | `--fork` | | Duplica la sessione quando continui (usa con `--continue` o `--session`) |
  26. | `--prompt` | | Prompt da usare |
  27. | `--model` | `-m` | Modello nel formato provider/model |
  28. | `--agent` | | Agente da usare |
  29. | `--port` | | Porta su cui mettersi in ascolto |
  30. | `--hostname` | | Hostname su cui mettersi in ascolto |
  31. ---
  32. ## Comandi
  33. La CLI di OpenCode include anche i seguenti comandi.
  34. ---
  35. ### agent
  36. Gestisci gli agenti per OpenCode.
  37. ```bash
  38. opencode agent [command]
  39. ```
  40. ---
  41. ### attach
  42. Collega un terminale a un backend server di OpenCode gia' in esecuzione avviato tramite i comandi `serve` o `web`.
  43. ```bash
  44. opencode attach [url]
  45. ```
  46. Questo consente di usare la TUI con un backend OpenCode remoto. Per esempio:
  47. ```bash
  48. # Start the backend server for web/mobile access
  49. opencode web --port 4096 --hostname 0.0.0.0
  50. # In another terminal, attach the TUI to the running backend
  51. opencode attach http://10.20.30.40:4096
  52. ```
  53. #### Flag
  54. | Flag | Breve | Descrizione |
  55. | ----------- | ----- | --------------------------------------- |
  56. | `--dir` | | Working directory in cui avviare la TUI |
  57. | `--session` | `-s` | ID sessione da continuare |
  58. ---
  59. #### create
  60. Crea un nuovo agente con configurazione personalizzata.
  61. ```bash
  62. opencode agent create
  63. ```
  64. Questo comando ti guida nella creazione di un nuovo agente con un system prompt personalizzato e configurazione degli strumenti.
  65. ---
  66. #### list
  67. Elenca tutti gli agenti disponibili.
  68. ```bash
  69. opencode agent list
  70. ```
  71. ---
  72. ### auth
  73. Comando per gestire le credenziali e il login dei provider.
  74. ```bash
  75. opencode auth [command]
  76. ```
  77. ---
  78. #### login
  79. 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`.
  80. ```bash
  81. opencode auth login
  82. ```
  83. 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.
  84. ---
  85. #### list
  86. Elenca tutti i provider autenticati come salvati nel file delle credenziali.
  87. ```bash
  88. opencode auth list
  89. ```
  90. Oppure la versione corta.
  91. ```bash
  92. opencode auth ls
  93. ```
  94. ---
  95. #### logout
  96. Esegue il logout da un provider rimuovendolo dal file delle credenziali.
  97. ```bash
  98. opencode auth logout
  99. ```
  100. ---
  101. ### github
  102. Gestisci l'agente GitHub per l'automazione dei repository.
  103. ```bash
  104. opencode github [command]
  105. ```
  106. ---
  107. #### install
  108. Installa l'agente GitHub nel tuo repository.
  109. ```bash
  110. opencode github install
  111. ```
  112. Questo configura il workflow GitHub Actions necessario e ti guida nel processo di configurazione. [Scopri di piu'](/docs/github).
  113. ---
  114. #### run
  115. Esegui l'agente GitHub. Tipicamente usato in GitHub Actions.
  116. ```bash
  117. opencode github run
  118. ```
  119. ##### Flag
  120. | Flag | Descrizione |
  121. | --------- | -------------------------------------------- |
  122. | `--event` | Evento GitHub mock per cui eseguire l'agente |
  123. | `--token` | GitHub personal access token |
  124. ---
  125. ### mcp
  126. Gestisci i server Model Context Protocol.
  127. ```bash
  128. opencode mcp [command]
  129. ```
  130. ---
  131. #### add
  132. Aggiungi un server MCP alla tua configurazione.
  133. ```bash
  134. opencode mcp add
  135. ```
  136. Questo comando ti guida nell'aggiunta di un server MCP locale o remoto.
  137. ---
  138. #### list
  139. Elenca tutti i server MCP configurati e il loro stato di connessione.
  140. ```bash
  141. opencode mcp list
  142. ```
  143. Oppure la versione corta.
  144. ```bash
  145. opencode mcp ls
  146. ```
  147. ---
  148. #### auth
  149. Autentica con un server MCP con OAuth abilitato.
  150. ```bash
  151. opencode mcp auth [name]
  152. ```
  153. Se non fornisci un nome server, ti verra' chiesto di selezionare tra i server OAuth-capable disponibili.
  154. Puoi anche elencare i server OAuth-capable e il loro stato di autenticazione.
  155. ```bash
  156. opencode mcp auth list
  157. ```
  158. Oppure la versione corta.
  159. ```bash
  160. opencode mcp auth ls
  161. ```
  162. ---
  163. #### logout
  164. Rimuovi le credenziali OAuth per un server MCP.
  165. ```bash
  166. opencode mcp logout [name]
  167. ```
  168. ---
  169. #### debug
  170. Esegui debug di problemi di connessione OAuth per un server MCP.
  171. ```bash
  172. opencode mcp debug <name>
  173. ```
  174. ---
  175. ### models
  176. Elenca tutti i modelli disponibili dai provider configurati.
  177. ```bash
  178. opencode models [provider]
  179. ```
  180. Questo comando mostra tutti i modelli disponibili tra i provider configurati nel formato `provider/model`.
  181. E' utile per capire l'esatto nome del modello da usare nella [config](/docs/config/).
  182. Puoi anche passare opzionalmente un ID provider per filtrare i modelli a quel provider.
  183. ```bash
  184. opencode models anthropic
  185. ```
  186. #### Flag
  187. | Flag | Descrizione |
  188. | ----------- | --------------------------------------------------- |
  189. | `--refresh` | Aggiorna la cache modelli da models.dev |
  190. | `--verbose` | Output piu' verboso (include metadati come i costi) |
  191. Usa `--refresh` per aggiornare l'elenco modelli in cache. E' utile quando nuovi modelli vengono aggiunti a un provider e vuoi vederli in OpenCode.
  192. ```bash
  193. opencode models --refresh
  194. ```
  195. ---
  196. ### run
  197. Esegui opencode in modalita' non interattiva passando un prompt direttamente.
  198. ```bash
  199. opencode run [message..]
  200. ```
  201. E' utile per scripting, automazione o quando vuoi una risposta rapida senza avviare la TUI completa. Per esempio.
  202. ```bash "opencode run"
  203. opencode run Explain the use of context in Go
  204. ```
  205. Puoi anche collegarti a una istanza `opencode serve` gia' in esecuzione per evitare i cold boot dei server MCP ad ogni esecuzione:
  206. ```bash
  207. # Start a headless server in one terminal
  208. opencode serve
  209. # In another terminal, run commands that attach to it
  210. opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
  211. ```
  212. #### Flag
  213. | Flag | Breve | Descrizione |
  214. | ------------ | ----- | ------------------------------------------------------------------------ |
  215. | `--command` | | Il comando da eseguire; usa message per gli argomenti |
  216. | `--continue` | `-c` | Continua l'ultima sessione |
  217. | `--session` | `-s` | ID sessione da continuare |
  218. | `--fork` | | Duplica la sessione quando continui (usa con `--continue` o `--session`) |
  219. | `--share` | | Condividi la sessione |
  220. | `--model` | `-m` | Modello nel formato provider/model |
  221. | `--agent` | | Agente da usare |
  222. | `--file` | `-f` | File da allegare al messaggio |
  223. | `--format` | | Formato: default (formattato) o json (eventi JSON grezzi) |
  224. | `--title` | | Titolo sessione (usa prompt troncato se non viene fornito un valore) |
  225. | `--attach` | | Attach a un server opencode in esecuzione (es. http://localhost:4096) |
  226. | `--port` | | Porta per il server locale (di default una porta casuale) |
  227. ---
  228. ### serve
  229. Avvia un server OpenCode headless per accesso via API. Vedi le [server docs](/docs/server) per l'interfaccia HTTP completa.
  230. ```bash
  231. opencode serve
  232. ```
  233. 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`).
  234. #### Flag
  235. | Flag | Descrizione |
  236. | ------------ | ---------------------------------------------- |
  237. | `--port` | Porta su cui mettersi in ascolto |
  238. | `--hostname` | Hostname su cui mettersi in ascolto |
  239. | `--mdns` | Abilita discovery mDNS |
  240. | `--cors` | Origin browser addizionali per consentire CORS |
  241. ---
  242. ### session
  243. Gestisci le sessioni OpenCode.
  244. ```bash
  245. opencode session [command]
  246. ```
  247. ---
  248. #### list
  249. Elenca tutte le sessioni OpenCode.
  250. ```bash
  251. opencode session list
  252. ```
  253. ##### Flag
  254. | Flag | Breve | Descrizione |
  255. | ------------- | ----- | ------------------------------------ |
  256. | `--max-count` | `-n` | Limita alle N sessioni piu' recenti |
  257. | `--format` | | Formato output: table o json (table) |
  258. ---
  259. ### stats
  260. Mostra statistiche di utilizzo token e costo per le sessioni OpenCode.
  261. ```bash
  262. opencode stats
  263. ```
  264. #### Flag
  265. | Flag | Descrizione |
  266. | ----------- | ------------------------------------------------------------------------------------- |
  267. | `--days` | Mostra statistiche per gli ultimi N giorni (all time) |
  268. | `--tools` | Numero di strumenti da mostrare (all) |
  269. | `--models` | Mostra breakdown di utilizzo modelli (nascosto di default). Passa un numero per top N |
  270. | `--project` | Filtra per progetto (tutti i progetti; stringa vuota: progetto corrente) |
  271. ---
  272. ### export
  273. Esporta i dati di sessione come JSON.
  274. ```bash
  275. opencode export [sessionID]
  276. ```
  277. Se non fornisci un ID sessione, ti verra' chiesto di selezionare tra le sessioni disponibili.
  278. ---
  279. ### import
  280. Importa i dati di sessione da un file JSON o da un URL di condivisione OpenCode.
  281. ```bash
  282. opencode import <file>
  283. ```
  284. Puoi importare da un file locale o da un URL di condivisione OpenCode.
  285. ```bash
  286. opencode import session.json
  287. opencode import https://opncd.ai/s/abc123
  288. ```
  289. ---
  290. ### web
  291. Avvia un server OpenCode headless con interfaccia web.
  292. ```bash
  293. opencode web
  294. ```
  295. 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`).
  296. #### Flag
  297. | Flag | Descrizione |
  298. | ------------ | ---------------------------------------------- |
  299. | `--port` | Porta su cui mettersi in ascolto |
  300. | `--hostname` | Hostname su cui mettersi in ascolto |
  301. | `--mdns` | Abilita discovery mDNS |
  302. | `--cors` | Origin browser addizionali per consentire CORS |
  303. ---
  304. ### acp
  305. Avvia un server ACP (Agent Client Protocol).
  306. ```bash
  307. opencode acp
  308. ```
  309. Questo comando avvia un server ACP che comunica via stdin/stdout usando nd-JSON.
  310. #### Flag
  311. | Flag | Descrizione |
  312. | ------------ | ----------------------------------- |
  313. | `--cwd` | Directory di lavoro |
  314. | `--port` | Porta su cui mettersi in ascolto |
  315. | `--hostname` | Hostname su cui mettersi in ascolto |
  316. ---
  317. ### uninstall
  318. Disinstalla OpenCode e rimuove tutti i file correlati.
  319. ```bash
  320. opencode uninstall
  321. ```
  322. #### Flag
  323. | Flag | Breve | Descrizione |
  324. | --------------- | ----- | -------------------------------------------- |
  325. | `--keep-config` | `-c` | Mantieni i file di configurazione |
  326. | `--keep-data` | `-d` | Mantieni dati di sessione e snapshot |
  327. | `--dry-run` | | Mostra cosa verrebbe rimosso senza rimuovere |
  328. | `--force` | `-f` | Salta le richieste di conferma |
  329. ---
  330. ### upgrade
  331. Aggiorna opencode all'ultima versione o a una versione specifica.
  332. ```bash
  333. opencode upgrade [target]
  334. ```
  335. Per aggiornare all'ultima versione:
  336. ```bash
  337. opencode upgrade
  338. ```
  339. Per aggiornare a una versione specifica:
  340. ```bash
  341. opencode upgrade v0.1.48
  342. ```
  343. #### Flag
  344. | Flag | Breve | Descrizione |
  345. | ---------- | ----- | --------------------------------------------------------- |
  346. | `--method` | `-m` | Metodo di installazione usato: curl, npm, pnpm, bun, brew |
  347. ---
  348. ## Flag globali
  349. La CLI di opencode accetta i seguenti flag globali.
  350. | Flag | Breve | Descrizione |
  351. | -------------- | ----- | -------------------------------------- |
  352. | `--help` | `-h` | Mostra l'help |
  353. | `--version` | `-v` | Stampa il numero di versione |
  354. | `--print-logs` | | Stampa i log su stderr |
  355. | `--log-level` | | Livello log (DEBUG, INFO, WARN, ERROR) |
  356. ---
  357. ## Variabili d'ambiente
  358. OpenCode puo' essere configurato tramite variabili d'ambiente.
  359. | Variabile | Tipo | Descrizione |
  360. | ------------------------------------- | ------- | ----------------------------------------------------------- |
  361. | `OPENCODE_AUTO_SHARE` | boolean | Condivide automaticamente le sessioni |
  362. | `OPENCODE_GIT_BASH_PATH` | string | Percorso all'eseguibile Git Bash su Windows |
  363. | `OPENCODE_CONFIG` | string | Percorso al file di configurazione |
  364. | `OPENCODE_CONFIG_DIR` | string | Percorso alla directory di configurazione |
  365. | `OPENCODE_CONFIG_CONTENT` | string | Contenuto JSON di config inline |
  366. | `OPENCODE_DISABLE_AUTOUPDATE` | boolean | Disabilita i controlli automatici di aggiornamento |
  367. | `OPENCODE_DISABLE_PRUNE` | boolean | Disabilita la potatura dei dati vecchi |
  368. | `OPENCODE_DISABLE_TERMINAL_TITLE` | boolean | Disabilita aggiornamenti automatici del titolo terminale |
  369. | `OPENCODE_PERMISSION` | string | Config permessi JSON inline |
  370. | `OPENCODE_DISABLE_DEFAULT_PLUGINS` | boolean | Disabilita i plugin di default |
  371. | `OPENCODE_DISABLE_LSP_DOWNLOAD` | boolean | Disabilita download automatico dei server LSP |
  372. | `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolean | Abilita modelli sperimentali |
  373. | `OPENCODE_DISABLE_AUTOCOMPACT` | boolean | Disabilita compaction automatica del contesto |
  374. | `OPENCODE_DISABLE_CLAUDE_CODE` | boolean | Disabilita lettura da `.claude` (prompt + skill) |
  375. | `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolean | Disabilita lettura di `~/.claude/CLAUDE.md` |
  376. | `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolean | Disabilita caricamento di `.claude/skills` |
  377. | `OPENCODE_DISABLE_MODELS_FETCH` | boolean | Disabilita fetch dei modelli da fonti remote |
  378. | `OPENCODE_FAKE_VCS` | string | Provider VCS finto per scopi di test |
  379. | `OPENCODE_DISABLE_FILETIME_CHECK` | boolean | Disabilita controllo file time per ottimizzazione |
  380. | `OPENCODE_CLIENT` | string | Identificatore client (default `cli`) |
  381. | `OPENCODE_ENABLE_EXA` | boolean | Abilita gli strumenti di web search Exa |
  382. | `OPENCODE_SERVER_PASSWORD` | string | Abilita basic auth per `serve`/`web` |
  383. | `OPENCODE_SERVER_USERNAME` | string | Sovrascrive lo username basic auth (default `opencode`) |
  384. | `OPENCODE_MODELS_URL` | string | URL personalizzato per recuperare la configurazione modelli |
  385. ---
  386. ### Sperimentale
  387. Queste variabili d'ambiente abilitano funzionalita' sperimentali che potrebbero cambiare o essere rimosse.
  388. | Variabile | Tipo | Descrizione |
  389. | ----------------------------------------------- | ------- | ------------------------------------------- |
  390. | `OPENCODE_EXPERIMENTAL` | boolean | Abilita tutte le funzionalita' sperimentali |
  391. | `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | Abilita icon discovery |
  392. | `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | boolean | Disabilita copy on select nella TUI |
  393. | `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | number | Timeout di default per comandi bash in ms |
  394. | `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | number | Massimo token di output per risposte LLM |
  395. | `OPENCODE_EXPERIMENTAL_FILEWATCHER` | boolean | Abilita file watcher per l'intera dir |
  396. | `OPENCODE_EXPERIMENTAL_OXFMT` | boolean | Abilita formatter oxfmt |
  397. | `OPENCODE_EXPERIMENTAL_LSP_TOOL` | boolean | Abilita strumento LSP sperimentale |
  398. | `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | Disabilita file watcher |
  399. | `OPENCODE_EXPERIMENTAL_EXA` | boolean | Abilita funzionalita' Exa sperimentali |
  400. | `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | Abilita type checking LSP sperimentale |
  401. | `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | Abilita markdown sperimentale |
  402. | `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | Abilita plan mode |