Español
Documentación
TUI

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.

opencode

O puedes iniciarla para un directorio de trabajo específico.

opencode /path/to/project

Una 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.md

Comandos de Bash

Empieza un mensaje con ! para ejecutar un comando de shell.

!ls -la

La 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:

/help

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

/connect

compact

Compacta la sesión actual. Alias: /summarize

/compact

Keybind: ctrl+x c


details

Alterna los detalles de ejecución de herramientas.

/details

editor

Abre un editor externo para componer mensajes. Usa el editor definido en tu variable de entorno EDITOR. Más información.

/editor

Keybind: ctrl+x e


exit

Sale de OpenCode. Alias: /quit, /q

/exit

Keybind: 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.

/export

Keybind: ctrl+x x


help

Muestra el cuadro de diálogo de ayuda.

/help

init

Configuración guiada para crear o actualizar AGENTS.md. Más información.

/init

models

Lista los modelos disponibles.

/models

Keybind: ctrl+x m


new

Inicia una nueva sesión. Alias: /clear

/new

Keybind: 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.

/redo

Keybind: ctrl+x r


sessions

Lista y cambia entre sesiones. Alias: /resume, /continue

/sessions

Keybind: ctrl+x l


share

Comparte la sesión actual. Más información.

/share

themes

Lista los temas disponibles.

/themes

Keybind: 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+t para recorrer las variantes del modelo.

/thinking

undo

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.

/undo

Keybind: ctrl+x u


unshare

Deja de compartir la sesión actual. Más información.

/unshare

Configuració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 --wait

Para 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 Code
  • cursor - Cursor
  • windsurf - Windsurf
  • nvim - Editor Neovim
  • vim - Editor Vim
  • nano - Editor Nano
  • notepad - Bloc de notas de Windows
  • subl - 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).

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"
    }
  }
}

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 es 2000 .
  • 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 sobre scroll_speed y 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 es 3 . Nota: Se ignora si scroll_acceleration.enabled está establecido en true.
  • 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 es false .
  • notifications - Permite las notificaciones de escritorio mediadas por la terminal cuando la atención está habilitada. El valor predeterminado es true .
  • sound - Permite los sonidos de atención cuando la atención está habilitada. El valor predeterminado es true .
  • volume - Volumen de sonido predeterminado de 0 a 1 . El valor predeterminado es 0.4 .
  • sound_pack - ID del paquete de sonidos a usar. El valor predeterminado es opencode.default .
  • sounds - Anula los archivos de sonido para default , question , permission , error , done o subagent_done . Las rutas pueden ser absolutas, URL file:// o relativas a tui.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