--- title: TUI description: Usa l'interfaccia utente da terminale (TUI) di OpenCode. --- import { Tabs, TabItem } from "@astrojs/starlight/components" OpenCode fornisce un'interfaccia interattiva da terminale (TUI) per lavorare sui tuoi progetti con un LLM. Eseguire OpenCode avvia la TUI per la directory corrente. ```bash opencode ``` Oppure puoi avviarla per una specifica working directory. ```bash opencode /path/to/project ``` Una volta nella TUI, puoi inviare un messaggio come prompt. ```text Give me a quick summary of the codebase. ``` --- ## Riferimenti ai file Puoi riferirti ai file nei messaggi usando `@`. Questo esegue una ricerca fuzzy dei file nella working directory corrente. :::tip Puoi anche usare `@` per riferirti ai file nei messaggi. ::: ```text "@packages/functions/src/api/index.ts" How is auth handled in @packages/functions/src/api/index.ts? ``` Il contenuto del file viene aggiunto automaticamente alla conversazione. --- ## Comandi bash Inizia un messaggio con `!` per eseguire un comando shell. ```bash frame="none" !ls -la ``` L'output del comando viene aggiunto alla conversazione come risultato di uno strumento. --- ## Comandi Quando usi la TUI di OpenCode, puoi digitare `/` seguito dal nome di un comando per eseguire rapidamente azioni. Per esempio: ```bash frame="none" /help ``` Molti comandi hanno anche una scorciatoia da tastiera che usa `ctrl+x` come tasto leader (predefinito). [Scopri di più](/docs/keybinds). Ecco tutti i comandi slash disponibili: --- ### connetti Aggiunge un provider a OpenCode. Ti permette di selezionare tra i provider disponibili e aggiungere le relative chiavi API. ```bash frame="none" /connect ``` --- ### compatta Compatta la sessione corrente. _Alias_: `/summarize` ```bash frame="none" /compact ``` **Scorciatoia:** `ctrl+x c` --- ### dettagli Attiva/disattiva i dettagli di esecuzione degli strumenti. ```bash frame="none" /details ``` **Scorciatoia:** `ctrl+x d` --- ### editor Apre un editor esterno per comporre messaggi. Usa l'editor impostato nella variabile d'ambiente `EDITOR`. [Scopri di più](#editor-setup). ```bash frame="none" /editor ``` **Scorciatoia:** `ctrl+x e` --- ### esci Esce da OpenCode. _Alias_: `/quit`, `/q` ```bash frame="none" /exit ``` **Scorciatoia:** `ctrl+x q` --- ### esporta Esporta la conversazione corrente in Markdown e la apre nell'editor predefinito. Usa l'editor impostato nella variabile d'ambiente `EDITOR`. [Scopri di più](#editor-setup). ```bash frame="none" /export ``` **Scorciatoia:** `ctrl+x x` --- ### aiuto Mostra la finestra di aiuto. ```bash frame="none" /help ``` **Scorciatoia:** `ctrl+x h` --- ### inizializza Crea o aggiorna il file `AGENTS.md`. [Scopri di più](/docs/rules). ```bash frame="none" /init ``` **Scorciatoia:** `ctrl+x i` --- ### modelli Elenca i modelli disponibili. ```bash frame="none" /models ``` **Scorciatoia:** `ctrl+x m` --- ### nuovo Avvia una nuova sessione. _Alias_: `/clear` ```bash frame="none" /new ``` **Scorciatoia:** `ctrl+x n` --- ### rifai Rifai un messaggio precedentemente annullato. Disponibile solo dopo aver usato `/undo`. :::tip Vengono ripristinate anche eventuali modifiche ai file. ::: Internamente usa Git per gestire le modifiche ai file. Quindi il progetto **deve essere un repository Git**. ```bash frame="none" /redo ``` **Scorciatoia:** `ctrl+x r` --- ### sessioni Elenca e passa tra le sessioni. _Alias_: `/resume`, `/continue` ```bash frame="none" /sessions ``` **Scorciatoia:** `ctrl+x l` --- ### condividi Condivide la sessione corrente. [Scopri di più](/docs/share). ```bash frame="none" /share ``` **Scorciatoia:** `ctrl+x s` --- ### temi Elenca i temi disponibili. ```bash frame="none" /themes ``` **Scorciatoia:** `ctrl+x t` --- ### ragionamento Attiva/disattiva la visibilità dei blocchi thinking/reasoning nella conversazione. Quando abilitato, puoi vedere il ragionamento del modello per i modelli che supportano extended thinking. :::note Questo comando controlla solo se i blocchi di thinking vengono **mostrati**: non abilita o disabilita le capacità di ragionamento del modello. Per cambiare le capacità di ragionamento effettive, usa `ctrl+t` per ciclare tra le varianti del modello. ::: ```bash frame="none" /thinking ``` --- ### annulla Annulla l'ultimo messaggio nella conversazione. Rimuove l'ultimo messaggio utente, tutte le risposte successive e qualsiasi modifica ai file. :::tip Vengono annullate anche eventuali modifiche ai file. ::: Internamente usa Git per gestire le modifiche ai file. Quindi il progetto **deve essere un repository Git**. ```bash frame="none" /undo ``` **Scorciatoia:** `ctrl+x u` --- ### annulla condivisione Annulla la condivisione della sessione corrente. [Scopri di più](/docs/share#un-sharing). ```bash frame="none" /unshare ``` --- ## Configurazione dell'editor Sia `/editor` sia `/export` usano l'editor specificato nella variabile d'ambiente `EDITOR`. ```bash # Example for nano or vim export EDITOR=nano export EDITOR=vim # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. # include --wait export EDITOR="code --wait" ``` Per renderlo permanente, aggiungilo al profilo della shell; `~/.bashrc`, `~/.zshrc`, ecc. ```bash set EDITOR=notepad # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. # include --wait set EDITOR=code --wait ``` Per renderlo permanente, usa **System Properties** > **Environment Variables**. ```powershell $env:EDITOR = "notepad" # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. # include --wait $env:EDITOR = "code --wait" ``` Per renderlo permanente, aggiungilo al profilo PowerShell. Opzioni comuni per l'editor includono: - `code` - Visual Studio Code - `cursor` - Cursor - `windsurf` - Windsurf - `nvim` - Neovim editor - `vim` - Vim editor - `nano` - Nano editor - `notepad` - Windows Notepad - `subl` - Sublime Text :::note Alcuni editor come VS Code devono essere avviati con il flag `--wait`. ::: Alcuni editor richiedono argomenti da riga di comando per funzionare in modalità bloccante. Il flag `--wait` fa sì che il processo dell'editor resti in attesa finché non viene chiuso. --- ## Configurazione Puoi personalizzare il comportamento della TUI tramite `tui.json` (o `tui.jsonc`). ```json title="tui.json" { "$schema": "https://opencode.ai/tui.json", "theme": "opencode", "keybinds": { "leader": "ctrl+x" }, "scroll_speed": 3, "scroll_acceleration": { "enabled": true }, "diff_style": "auto" } ``` Questo è separato da `opencode.json`, che configura il comportamento di server/runtime. ### Opzioni - `theme` - Imposta il tema della UI. [Scopri di più](/docs/themes). - `keybinds` - Personalizza le scorciatoie da tastiera. [Scopri di più](/docs/keybinds). - `scroll_acceleration.enabled` - Abilita l'accelerazione di scroll in stile macOS per uno scorrimento fluido e naturale. Quando abilitata, la velocità aumenta con gesture rapide e resta precisa con movimenti lenti. **Questa impostazione ha precedenza su `scroll_speed` e lo sovrascrive quando attiva.** - `scroll_speed` - Controlla la velocità di scorrimento della TUI quando usi i comandi di scroll (minimo: `0.001`, supporta valori decimali). Default: `3`. **Nota: viene ignorata se `scroll_acceleration.enabled` è impostato a `true`.** - `diff_style` - Controlla il rendering delle diff. `"auto"` si adatta alla larghezza del terminale, `"stacked"` mostra sempre un layout a colonna singola. Usa `OPENCODE_TUI_CONFIG` per caricare un path di configurazione TUI personalizzato. --- ## Personalizzazione Puoi personalizzare vari aspetti della vista TUI usando la palette dei comandi (`ctrl+x h` o `/help`). Queste impostazioni persistono tra i riavvii. --- #### Visualizzazione nome utente Attiva/disattiva se lo username appare nei messaggi della chat. Puoi farlo da: - Palette comandi: cerca "username" o "hide username" - L'impostazione viene salvata automaticamente e ricordata tra le sessioni TUI