| --- |
| 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. |
| ``` |
|
|
| --- |
| |
| |
|
|
| 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. |
|
|
| --- |
| |
| |
|
|
| 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. |
|
|
| --- |
| |
| |
|
|
| 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: |
|
|
| --- |
| |
| |
|
|
| Aggiunge un provider a OpenCode. Ti permette di selezionare tra i provider disponibili e aggiungere le relative chiavi API. |
|
|
| ```bash frame="none" |
| /connect |
| ``` |
|
|
| --- |
| |
| |
|
|
| Compatta la sessione corrente. _Alias_: `/summarize` |
|
|
| ```bash frame="none" |
| /compact |
| ``` |
|
|
| **Scorciatoia:** `ctrl+x c` |
|
|
| --- |
| |
| |
|
|
| Attiva/disattiva i dettagli di esecuzione degli strumenti. |
|
|
| ```bash frame="none" |
| /details |
| ``` |
|
|
| **Scorciatoia:** `ctrl+x d` |
|
|
| --- |
| |
| |
|
|
| 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` |
|
|
| --- |
| |
| |
|
|
| Esce da OpenCode. _Alias_: `/quit`, `/q` |
|
|
| ```bash frame="none" |
| /exit |
| ``` |
|
|
| **Scorciatoia:** `ctrl+x q` |
|
|
| --- |
| |
| |
|
|
| 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` |
|
|
| --- |
| |
| |
|
|
| Mostra la finestra di aiuto. |
|
|
| ```bash frame="none" |
| /help |
| ``` |
|
|
| **Scorciatoia:** `ctrl+x h` |
|
|
| --- |
| |
| |
|
|
| Crea o aggiorna il file `AGENTS.md`. [Scopri di più](/docs/rules). |
|
|
| ```bash frame="none" |
| /init |
| ``` |
|
|
| **Scorciatoia:** `ctrl+x i` |
|
|
| --- |
| |
| |
|
|
| Elenca i modelli disponibili. |
|
|
| ```bash frame="none" |
| /models |
| ``` |
|
|
| **Scorciatoia:** `ctrl+x m` |
|
|
| --- |
| |
| |
|
|
| Avvia una nuova sessione. _Alias_: `/clear` |
|
|
| ```bash frame="none" |
| /new |
| ``` |
|
|
| **Scorciatoia:** `ctrl+x n` |
|
|
| --- |
| |
| |
|
|
| 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` |
|
|
| --- |
| |
| |
|
|
| Elenca e passa tra le sessioni. _Alias_: `/resume`, `/continue` |
|
|
| ```bash frame="none" |
| /sessions |
| ``` |
|
|
| **Scorciatoia:** `ctrl+x l` |
|
|
| --- |
| |
| |
|
|
| Condivide la sessione corrente. [Scopri di più](/docs/share). |
|
|
| ```bash frame="none" |
| /share |
| ``` |
|
|
| **Scorciatoia:** `ctrl+x s` |
|
|
| --- |
| |
| |
|
|
| Elenca i temi disponibili. |
|
|
| ```bash frame="none" |
| /themes |
| ``` |
|
|
| **Scorciatoia:** `ctrl+x t` |
|
|
| --- |
| |
| |
|
|
| 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 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 la condivisione della sessione corrente. [Scopri di più](/docs/share#un-sharing). |
|
|
| ```bash frame="none" |
| /unshare |
| ``` |
|
|
| --- |
| |
| |
|
|
| Sia `/editor` sia `/export` usano l'editor specificato nella variabile d'ambiente `EDITOR`. |
|
|
| <Tabs> |
| <TabItem label="Linux/macOS"> |
| ```bash |
| |
| export EDITOR=nano |
| export EDITOR=vim |
|
|
| |
| |
| export EDITOR="code --wait" |
| ``` |
|
|
| Per renderlo permanente, aggiungilo al profilo della shell; |
| `~/.bashrc`, `~/.zshrc`, ecc. |
|
|
| </TabItem> |
|
|
| <TabItem label="Windows (CMD)"> |
| ```bash |
| set EDITOR=notepad |
|
|
| |
| |
| set EDITOR=code --wait |
| ``` |
|
|
| Per renderlo permanente, usa **System Properties** > **Environment Variables**. |
|
|
| </TabItem> |
|
|
| <TabItem label="Windows (PowerShell)"> |
| ```powershell |
| $env:EDITOR = "notepad" |
|
|
| |
| |
| $env:EDITOR = "code --wait" |
| ``` |
|
|
| Per renderlo permanente, aggiungilo al profilo PowerShell. |
|
|
| </TabItem> |
| </Tabs> |
|
|
| 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. |
|
|
| --- |
| |
| |
|
|
| Puoi personalizzare il comportamento della TUI tramite `tui.json` (o `tui.jsonc`). |
|
|
| ```json title="tui.json" |
| { |
| "$schema": "https://opencode.ai/tui.json", |
| "theme": "opencode", |
| "leader_timeout": 2000, |
| "keybinds": { |
| "leader": "ctrl+x", |
| "command_list": "ctrl+p" |
| }, |
| "scroll_speed": 3, |
| "scroll_acceleration": { |
| "enabled": false |
| }, |
| "diff_style": "auto", |
| "mouse": true, |
| "attention": { |
| "enabled": true, |
| "notifications": true, |
| "sound": true, |
| "volume": 0.4, |
| "sound_pack": "opencode.default", |
| "sounds": { |
| "error": "./sounds/error.mp3" |
| } |
| } |
| } |
| ``` |
|
|
| Questo è separato da `opencode.json`, che configura il comportamento di server/runtime. |
|
|
| `keybinds` viene unito ai valori predefiniti integrati, quindi devi configurare solo le scorciatoie che vuoi modificare. |
|
|
| |
|
|
| - `theme` - Imposta il tema della UI. [Scopri di più](/docs/themes). |
| - `keybinds` - Personalizza le scorciatoie da tastiera. [Scopri di più](/docs/keybinds). |
| - `leader_timeout` - Controlla per quanto tempo OpenCode attende dopo il leader key. Default: `2000`. |
| - `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. |
| - `mouse` - Abilita o disabilita la cattura del mouse nella TUI (default: `true`). Quando è disabilitata, il comportamento nativo del terminale per selezione e scorrimento con il mouse viene preservato. |
| - `attention` - Configura notifiche desktop e suoni della TUI. Disabilitato per impostazione predefinita. |
|
|
| Usa `OPENCODE_TUI_CONFIG` per caricare un path di configurazione TUI personalizzato. |
|
|
| |
|
|
| Attention permette alla TUI di avvisarti quando OpenCode aspetta una risposta, richiede l'approvazione di un permesso, incontra un errore di sessione o completa una sessione. Abilitala con `attention.enabled`; gli eventi integrati riproducono un suono quando si verificano. Le notifiche desktop vengono inviate solo quando la finestra del terminale non è in primo piano e non vengono usate per gli eventi subagent. |
|
|
| - `enabled` - Abilita tutte le notifiche e i suoni di Attention. Default: `false`. |
| - `notifications` - Quando Attention è abilitato, consente alla TUI di inviare notifiche desktop tramite il terminale. Default: `true`. |
| - `sound` - Quando Attention è abilitato, consente di riprodurre suoni di avviso. Default: `true`. |
| - `volume` - Volume predefinito dei suoni, da `0` a `1`. Default: `0.4`. |
| - `sound_pack` - ID del sound pack da usare. Default: `opencode.default`. |
| - `sounds` - Imposta file audio personalizzati per `default`, `question`, `permission`, `error`, `done` o `subagent_done`. I percorsi possono essere assoluti, URL `file://` o relativi a `tui.json`. |
|
|
| --- |
| |
| |
|
|
| Puoi personalizzare vari aspetti della vista TUI usando la palette dei comandi (`ctrl+x h` o `/help`). Queste impostazioni persistono tra i riavvii. |
|
|
| --- |
| |
| |
|
|
| 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 |
|
|