Skip to content

Interfaz TUI Interactiva ​

gz-ia incorpora una interfaz de usuario en terminal (TUI) moderna, visual y accesible, construida con las librerías líderes del ecosistema Go: Bubble Tea, Lipgloss y Huh ([internal/clients/tui](file:///home/gountzjs/eworkspace/projects/gountz-harness/internal/clients/tui)).


Cómo Iniciar la TUI ​

Puedes acceder a la interfaz interactiva simplemente ejecutando:

bash
gz-ia
# o equivalentemente:
gz-ia start

Anatomía de la Pantalla Principal ​

Al abrir gz-ia, la TUI presenta dos secciones principales:

  ┌─────────────────────────┐   gz-ia — Universal AI Terminal Harness
  │      ____               │   -------------------------------------
  │     / ___| ____         │   OS:            Linux (x86_64)
  │    | |  _ |_  /         │   Kernel:        6.8.0-generic
  │    | |_| | / /          │   Terminal:      xterm-256color
  │     \____|/___|         │   Go:            go1.23.1
  │                         │   Harness:       v0.0.1 (commit: a1b2c3d)
  └─────────────────────────┘   -------------------------------------

  ? Selecciona una acción:
    > [1] Iniciar nuevo chat con agente
      [2] Sesiones activas e historial
      [3] Actualizar gz-ia (update)
      [4] Cerrar / Salir
  1. Banner Fastfetch de Telemetría: Muestra en tiempo real las especificaciones del sistema operativo, versión del kernel, tipo de terminal, versión de Go y release de gz-ia.
  2. Menú de Selección Rápida: Navegación fluida por teclado para gestionar el ciclo de vida completo de tus agentes.

Flujos Interactivos ​

1. Iniciar Nuevo Chat con un Agente ​

El asistente de lanzamiento opera en dos pasos guiados con validación activa:

  1. Selección de Motor de IA:
    • Evalúa en vivo la presencia de los binarios en tu sistema.
    • Marca cada agente con [✓] (listo para usar) o [✗] (no instalado).
    • Preselecciona automáticamente el primer agente disponible.
    • Si seleccionas un agente que no está en tu $PATH, la TUI previene el fallo y despliega de inmediato el comando de instalación sugerido (InstallHint).
  2. Selección del Nivel de Permisos:
    • Permite escoger entre supervised (confirmación paso a paso), autonomous (auto-aprobación en worktree aislado) o readonly (planificación y auditoría).
    • Cada pantalla incluye la opción explícita [←] Volver al menú principal para evitar trampas de navegación.

2. Exploración de Sesiones e Historial ​

Permite gestionar los registros locales de .harness/sessions/:

  • Ver Detalles: Muestra el ID de sesión, estado (RUNNING, COMPLETED, FAILED, KILLED), rama de git asociada, ruta del worktree y métricas de ejecución.
  • Reanudar Sesión: Reconecta la terminal con el agente original usando --continue o --resume en su worktree correspondiente.
  • Detener Proceso (kill): Envía señales controladas (SIGTERM seguido de SIGKILL si es necesario) para finalizar agentes huérfanos o colgados.
  • Eliminar Registro (delete): Limpia la metadata de la sesión y destruye el worktree y la rama de Git asociada de forma segura.

3. Actualizador Integrado ​

Permite comprobar la existencia de nuevas versiones publicadas en Nexus o Forgejo:

  • Consulta los endpoints en segundo plano sin congelar la terminal.
  • Si hay una actualización disponible, muestra los detalles y solicita confirmación con un cuadro de diálogo huh.NewConfirm().
  • Si el binario ya está al día, informa amigablemente con un panel de estilo Lipgloss.

Atajos de Teclado y Accesibilidad ​

Tecla / CombinaciónAcción
↑ / kMover la selección hacia arriba
↓ / jMover la selección hacia abajo
EnterConfirmar y ejecutar la opción seleccionada
Esc / qVolver al menú anterior o cancelar la operación
Ctrl+CSalir limpiamente de la TUI

Degradación Elegante UTF-8

La TUI está diseñada para funcionar a la perfección tanto en terminales con fuentes completas Nerd Font como en emuladores estándar con soporte UTF-8 básico.


Filosofía CLI-First: Todo lo de la TUI está en la CLI ​

Recuerda que la TUI es únicamente una interfaz visual. Absolutamente todas las acciones realizables en la TUI cuentan con su equivalente exacto en la línea de comandos:

  • Iniciar chat $\rightarrow$ gz-ia chat -p <driver> -m <perm>
  • Listar sesiones $\rightarrow$ gz-ia session list
  • Reanudar sesión $\rightarrow$ gz-ia session resume <id>
  • Matar proceso $\rightarrow$ gz-ia session kill <id>
  • Actualizar binario $\rightarrow$ gz-ia update

Desarrollado con rigor de ingeniería | Gountz IA (gz-ia)