7. La interfaz TUI: sesiones, temas y atajos

Objetivo del tema

Moverte con soltura por la interfaz textual de OpenCode: iniciar sesiones, referenciar archivos, usar los comandos slash, dominar los atajos de teclado y personalizar la apariencia con temas.

7.1 Arrancar y conversar

La TUI (interfaz de usuario textual) es el corazón de OpenCode. Se abre sobre el directorio actual o indicando una ruta:

opencode                       # proyecto actual
opencode /ruta/a/proyecto      # carpeta específica

Una vez dentro, simplemente escribe tu pedido:

Resúmeme la arquitectura de este código base.

La pantalla se organiza en un área de conversación, un campo de entrada inferior y una barra de estado donde verás el modo activo (Plan o Build, que trataremos en detalle en el próximo tema) y el modelo seleccionado.

7.2 Referencias a archivos y comandos rápidos

Dos símbolos convierten al campo de entrada en algo mucho más potente que un chat:

  • @ para archivos: abre una búsqueda difusa del proyecto y agrega el contenido del archivo a la conversación. Ejemplo: ¿Cómo se maneja la autenticación en @packages/functions/src/api/index.ts?. Las referencias configuradas también aparecen aquí, permitiendo incluir documentación externa.
  • ! para comandos shell: anteponiendo ! ejecutas un comando real y su salida queda registrada como resultado de herramienta en la conversación. Ejemplo: !ls -la.

Combina ambos: revisa el estado del repo con !git status y luego pide cambios citando los archivos exactos con @. Cuanto más preciso el contexto, mejores respuestas.

7.3 Los comandos slash

Escribiendo / se despliega la lista de acciones disponibles. Estos son los comandos esenciales agrupados por función:

Comandos slash principales de la TUI
Comando Función
/help Abrir la ayuda integrada.
/init Crear o actualizar el AGENTS.md del proyecto (tema 6).
/models Listar y cambiar de modelo.
/connect Agregar proveedores y credenciales.
/new (/clear) Iniciar una sesión nueva desde cero.
/sessions (/resume) Listar y retomar sesiones anteriores.
/compact (/summarize) Compactar la sesión actual conservando lo esencial.
/undo y /redo Deshacer o reaplicar el último mensaje con sus cambios de archivos.
/share y /unshare Publicar o retirar el enlace público de la sesión.
/themes Elegir el tema visual.
/thinking Mostrar u ocultar los bloques de razonamiento del modelo.
/details Ver u ocultar detalles de ejecución de herramientas.
/editor y /export Componer mensajes o exportar la conversación en un editor externo.
/exit (/q) Salir de OpenCode.

7.4 Atajos de teclado con la tecla líder

Casi todos los comandos tienen un atajo que comienza con la tecla líder ctrl+x: presiónala y luego la tecla final (hay 2 segundos de margen, configurable). La paleta de comandos se abre con ctrl+p.

Atajos más utilizados
Atajo Acción
ctrl+x n Sesión nueva (/new).
ctrl+x l Listar sesiones (/sessions).
ctrl+x m Cambiar modelo (/models).
ctrl+x t Cambiar tema (/themes).
ctrl+x u / ctrl+x r Deshacer / rehacer (/undo, /redo).
ctrl+x c Compactar sesión (/compact).
ctrl+x e Editor externo para el mensaje (/editor).
ctrl+x x Exportar conversación a Markdown (/export).
ctrl+x q Salir (/exit).
tab Alternar entre los modos Plan y Build.

Todos los atajos pueden redefinirse en la configuración (los veremos en el tema 14 sobre personalización avanzada).

7.5 Sesiones: historial y continuidad

Cada conversación es una sesión independiente, guardada automáticamente por proyecto:

  • Nueva sesión: /new limpia la conversación sin cerrar OpenCode; ideal para cambiar de tarea.
  • Retomar trabajo: /sessions muestra el historial para continuar donde lo dejaste, con todo su contexto.
  • Sesiones largas: cuando la conversación crece demasiado, /compact resume el hilo liberando espacio de contexto sin perder las conclusiones importantes.
  • Compartir: /share genera un enlace público de la sesión para revisarlo con tu equipo; nada se publica sin tu consentimiento explícito y puedes retirarlo con /unshare.

7.6 Temas y apariencia

Con /themes eliges entre varios temas incluidos; la selección persiste entre sesiones. El aspecto también se ajusta finamente mediante el archivo tui.json (separado del opencode.json general):

{
  "$schema": "https://opencode.ai/tui.json",
  "theme": "opencode",
  "scroll_speed": 3,
  "diff_style": "auto",
  "cursor": { "style": "block", "blinking": true },
  "mouse": true
}
  • theme: tema inicial de la interfaz.
  • diff_style: auto adapta los diffs al ancho de la terminal; stacked fuerza una sola columna.
  • cursor y mouse: estilo de cursor en los campos de texto y captura del ratón.
  • attention: activa notificaciones de escritorio y sonidos cuando el agente necesita permiso, hace una pregunta o termina una tarea.

Editor externo

Define tu editor favorito con la variable EDITOR. Para editores gráficos incluye la bandera de bloqueo:
export EDITOR="code --wait"

Mensajes largos

Para prompts extensos usa /editor (ctrl+x e) y redacta cómodo en tu editor habitual en lugar del campo de la TUI.

Documentación exportable

/export (ctrl+x x) vuelca la conversación a Markdown: perfecto para documentar decisiones o adjuntarla a un pull request.

Conclusión: dominar la TUI multiplica tu productividad: referencias exactas con @, acciones rápidas con comandos slash, navegación fluida entre sesiones y una interfaz ajustada a tu gusto. En el próximo tema profundizaremos en el cambio de modo con Tab: los modos Plan y Build, claves del flujo de trabajo profesional con agentes.