TUI
Cómo usar la interfaz de usuario de terminal de OpenCode.
OpenCode ofrece una interfaz de terminal interactiva o TUI para trabajar en tus proyectos con un LLM.
Al ejecutar OpenCode se inicia la TUI para el directorio actual.
opencodeO puedes iniciarla para un directorio de trabajo específico.
opencode /path/to/projectUna vez que estás en la TUI, puedes darle una indicación con un mensaje.
Give me a quick summary of the codebase.Referencias de archivos
Puedes referenciar archivos en tus mensajes usando @. Esto realiza una búsqueda difusa de archivos en el directorio de trabajo actual.
Tip: También puedes usar
@para referenciar archivos en tus mensajes.
How is auth handled in @packages/functions/src/api/index.ts?El contenido del archivo se agrega automáticamente a la conversación.
Las referencias configuradas también aparecen en el autocompletado de @. Escribe @alias para agregar la raíz de la referencia como contexto, o escribe @alias/ para autocompletar archivos dentro de esa referencia.
Compare our setup with @docs/README.mdComandos de Bash
Empieza un mensaje con ! para ejecutar un comando de shell.
!ls -laLa salida del comando se agrega a la conversación como un resultado de herramienta.
Comandos
Cuando usas la TUI de OpenCode, puedes escribir / seguido del nombre de un comando para ejecutar acciones rápidamente. Por ejemplo:
/helpLa mayoría de los comandos también tienen atajos de teclado que usan ctrl+x como tecla líder predeterminada. Más información.
Estos son todos los comandos slash disponibles:
connect
Agrega un proveedor a OpenCode. Te permite seleccionar entre los proveedores disponibles y agregar sus claves de API.
/connectcompact
Compacta la sesión actual. Alias: /summarize
/compactKeybind: ctrl+x c
details
Alterna los detalles de ejecución de herramientas.
/detailseditor
Abre un editor externo para componer mensajes. Usa el editor definido en tu variable de entorno EDITOR. Más información.
/editorKeybind: ctrl+x e
exit
Sale de OpenCode. Alias: /quit, /q
/exitKeybind: ctrl+x q
export
Exporta la conversación actual a Markdown y la abre en tu editor predeterminado. Usa el editor definido en tu variable de entorno EDITOR. Más información.
/exportKeybind: ctrl+x x
help
Muestra el cuadro de diálogo de ayuda.
/helpinit
Configuración guiada para crear o actualizar AGENTS.md. Más información.
/initmodels
Lista los modelos disponibles.
/modelsKeybind: ctrl+x m
new
Inicia una nueva sesión. Alias: /clear
/newKeybind: ctrl+x n
redo
Rehace un mensaje previamente deshecho. Solo está disponible después de usar /undo.
Tip: También se restaurarán los cambios en los archivos.
Internamente, esto usa Git para gestionar los cambios en los archivos. Por eso tu proyecto necesita ser un repositorio Git.
/redoKeybind: ctrl+x r
sessions
Lista y cambia entre sesiones. Alias: /resume, /continue
/sessionsKeybind: ctrl+x l
share
Comparte la sesión actual. Más información.
/sharethemes
Lista los temas disponibles.
/themesKeybind: ctrl+x t
thinking
Alterna la visibilidad de los bloques de pensamiento/razonamiento en la conversación. Cuando está habilitado, puedes ver el proceso de razonamiento del modelo en los modelos que admiten razonamiento extendido.
Note: Este comando solo controla si los bloques de pensamiento se muestran; no habilita ni deshabilita las capacidades de razonamiento del modelo. Para alternar las capacidades de razonamiento reales, usa
ctrl+tpara recorrer las variantes del modelo.
/thinkingundo
Deshace el último mensaje de la conversación. Elimina el mensaje de usuario más reciente, todas las respuestas posteriores y cualquier cambio en los archivos.
Tip: También se revertirán los cambios realizados en los archivos.
Internamente, esto usa Git para gestionar los cambios en los archivos. Por eso tu proyecto necesita ser un repositorio Git.
/undoKeybind: ctrl+x u
unshare
Deja de compartir la sesión actual. Más información.
/unshareConfiguración del editor
Tanto el comando /editor como /export usan el editor especificado en tu variable de entorno EDITOR.
Linux/macOS
# 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"Para hacerlo permanente, agrega esto a tu perfil de shell;
~/.bashrc, ~/.zshrc, etc.
Windows (CMD)
set EDITOR=notepad
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
set EDITOR=code --waitPara hacerlo permanente, usa Propiedades del sistema > Variables de entorno.
Windows (PowerShell)
$env:EDITOR = "notepad"
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
# include --wait
$env:EDITOR = "code --wait"Para hacerlo permanente, agrega esto a tu perfil de PowerShell.
Las opciones de editor populares incluyen:
code- Visual Studio Codecursor- Cursorwindsurf- Windsurfnvim- Editor Neovimvim- Editor Vimnano- Editor Nanonotepad- Bloc de notas de Windowssubl- Sublime Text
Note: Algunos editores como VS Code deben iniciarse con la opción
--wait.
Algunos editores necesitan argumentos de línea de comandos para ejecutarse en modo bloqueante. La opción --wait hace que el proceso del editor se bloquee hasta que se cierre.
Configurar
Puedes personalizar el comportamiento de la TUI a través de tui.json (o tui.jsonc).
{
"$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"
}
}
}Esto es independiente de opencode.json, que configura el comportamiento del servidor/tiempo de ejecución.
keybinds se combina con los valores predeterminados integrados, por lo que solo necesitas configurar los atajos que quieras cambiar.
Opciones
theme- Define el tema de tu interfaz. Más información .keybinds- Personaliza los atajos de teclado. Más información .leader_timeout- Controla cuánto tiempo espera OpenCode después de la tecla líder. El valor predeterminado es2000.scroll_acceleration.enabled- Habilita el desplazamiento con aceleración al estilo de macOS para un desplazamiento suave y natural. Cuando está habilitado, la velocidad de desplazamiento aumenta con los gestos de desplazamiento rápido y se mantiene precisa para movimientos más lentos. Esta opción tiene prioridad sobrescroll_speedy la anula cuando está habilitada.scroll_speed- Controla la velocidad de desplazamiento de la TUI al usar comandos de desplazamiento (mínimo:0.001, admite valores decimales). El valor predeterminado es3. Nota: Se ignora siscroll_acceleration.enabledestá establecido entrue.diff_style- Controla la representación de diffs."auto"se adapta al ancho de la terminal,"stacked"siempre muestra un diseño de una sola columna.mouse- Habilita o deshabilita la captura del ratón en la TUI (predeterminado:true). Cuando está deshabilitado, se conserva el comportamiento nativo de selección/desplazamiento con el ratón de la terminal.attention- Configura las notificaciones de escritorio y los sonidos de la TUI. Deshabilitado de forma predeterminada.
Usa OPENCODE_TUI_CONFIG para cargar una ruta de configuración de TUI personalizada.
Atención
La TUI puede solicitar tu atención para preguntas, permisos, errores de sesión y sesiones completadas. Habilítala con attention.enabled; los eventos integrados reproducen sonidos cuando se activan, y los eventos que no son de subagentes solicitan notificaciones de escritorio solo cuando la terminal está desenfocada.
enabled- Habilita todas las notificaciones y sonidos de atención. El valor predeterminado esfalse.notifications- Permite las notificaciones de escritorio mediadas por la terminal cuando la atención está habilitada. El valor predeterminado estrue.sound- Permite los sonidos de atención cuando la atención está habilitada. El valor predeterminado estrue.volume- Volumen de sonido predeterminado de0a1. El valor predeterminado es0.4.sound_pack- ID del paquete de sonidos a usar. El valor predeterminado esopencode.default.sounds- Anula los archivos de sonido paradefault,question,permission,error,doneosubagent_done. Las rutas pueden ser absolutas, URLfile://o relativas atui.json.
Personalización
Puedes personalizar varios aspectos de la vista de la TUI usando la paleta de comandos (ctrl+p). Estas configuraciones persisten entre reinicios.
Visualización del nombre de usuario
Alterna si tu nombre de usuario aparece en los mensajes de chat. Accede a esto a través de:
- Paleta de comandos: Busca "username" o "hide username"
- La configuración persiste automáticamente y se recordará entre sesiones de la TUI