Vai al contenuto
Riferimenti ai file

TUI

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.

Terminale
opencode

Oppure puoi avviarla per una specifica working directory.

Terminale
opencode /path/to/project

Una volta nella TUI, puoi inviare un messaggio come prompt.

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.

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.

Terminale
!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:

Terminale
/help

Molti comandi hanno anche una scorciatoia da tastiera che usa ctrl+x come tasto leader (predefinito). Scopri di più.

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.

Terminale
/connect

Compatta la sessione corrente. Alias: /summarize

Terminale
/compact

Scorciatoia: ctrl+x c


Apre un editor esterno per comporre messaggi. Usa l’editor impostato nella variabile d’ambiente EDITOR. Scopri di più.

Terminale
/editor

Scorciatoia: ctrl+x e


Esce da OpenCode. Alias: /quit, /q

Terminale
/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ù.

Terminale
/export

Scorciatoia: ctrl+x x


Mostra la finestra di aiuto.

Terminale
/help

Scorciatoia: ctrl+x h


Crea o aggiorna il file AGENTS.md. Scopri di più.

Terminale
/init

Scorciatoia: ctrl+x i


Elenca i modelli disponibili.

Terminale
/models

Scorciatoia: ctrl+x m


Avvia una nuova sessione. Alias: /clear

Terminale
/new

Scorciatoia: ctrl+x n


Rifai un messaggio precedentemente annullato. Disponibile solo dopo aver usato /undo.

Internamente usa Git per gestire le modifiche ai file. Quindi il progetto deve essere un repository Git.

Terminale
/redo

Scorciatoia: ctrl+x r


Elenca e passa tra le sessioni. Alias: /resume, /continue

Terminale
/sessions

Scorciatoia: ctrl+x l


Elenca i temi disponibili.

Terminale
/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.

Terminale
/thinking

Annulla l’ultimo messaggio nella conversazione. Rimuove l’ultimo messaggio utente, tutte le risposte successive e qualsiasi modifica ai file.

Internamente usa Git per gestire le modifiche ai file. Quindi il progetto deve essere un repository Git.

Terminale
/undo

Scorciatoia: ctrl+x u


Sia /editor sia /export usano l’editor specificato nella variabile d’ambiente EDITOR.

Terminale
# 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.

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

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).

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ù.
  • keybinds - Personalizza le scorciatoie da tastiera. Scopri di più.
  • 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.


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