- El equipo de Hatchet presenta un caso en el que desarrolló rápidamente una UI basada en terminal (TUI) con Claude Code
- Usando el stack de Charm (Bubble Tea, Lip Gloss, Huh), lograron un desarrollo basado en componentes al nivel de React y un estilo consistente
- Aunque usa la misma API que la UI web existente, mejora la eficiencia de los desarrolladores con una interfaz centrada en texto y densa en información
- Claude Code ejecutó sesiones de tmux y automatizó las pruebas, desempeñando un papel importante en el desarrollo iterativo y en garantizar la estabilidad
- La TUI de Hatchet, terminada en solo 2 días, se evalúa como un caso que muestra una mejora real de productividad impulsada por LLM
Motivación para desarrollar una TUI
- El equipo de Hatchet quería una TUI similar a k9s, y los usuarios la evaluaron como más rápida e intuitiva que la UI web
- Entre los comentarios de usuarios, hubo opiniones como: “La CLI y la TUI tienen mucho mejor rendimiento”
- Una TUI permite visualizar y ejecutar flujos de trabajo en el mismo entorno que el código, por lo que no hace falta cambiar de pestaña
- Como los principales usuarios de Hatchet son desarrolladores que trabajan dentro del IDE, el objetivo era ofrecer una experiencia de gestión de flujos de trabajo dentro de la terminal
Stack tecnológico
- Se utilizó el stack de Charm, equivalente a un stack de frontend típico (React, Tailwind, etc.)
- Bibliotecas principales: Bubble Tea, Lip Gloss, Huh
- El equipo de Charm las mantiene y cuentan con abundante documentación y ejemplos
- Con Lip Gloss y los temas de Huh se aplicó un estilo consistente en toda la TUI
- El mismo tema también se reutilizó en los comandos de la CLI de Hatchet para ofrecer una experiencia de usuario unificada
- Las personalizaciones fuera de Bubble Tea pueden ser algo difíciles, pero siguen siendo mucho más simples que implementar directamente un motor de renderizado basado en React
Enfoque de pruebas
- Claude Code ejecutó directamente herramientas basadas en terminal para realizar pruebas
- Se usó
tmux capture-pane para capturar la vista renderizada y verificar si la salida era correcta
- Este método fue muy efectivo para automatizar la primera pasada de pruebas, y permitió verificar el renderizado de forma estable incluso cuando aumentó la cantidad de vistas
- Después, se combinaron pruebas manuales y pruebas unitarias para formar un bucle de desarrollo iterativo estable
- Claude Code está optimizado para tareas repetitivas en entornos ASCII, por lo que el ciclo de retroalimentación de pruebas converge rápidamente
Configuración de un entorno de desarrollo eficiente
- Claude Code mejoró la eficiencia del desarrollo al tomar como referencia la implementación frontend existente de Hatchet
- Se aprovecharon una estructura simple de componentes basada en React y la especificación OpenAPI para establecer límites claros
- Con un cliente REST API generado automáticamente, fue posible un desarrollo guiado por especificaciones
- La implementación de un renderizador basado en DAG fue la parte más difícil, pero
- tomando como referencia mermaid-ascii, lograron implementar con éxito un renderizador de gráficos ASCII
- aunque no es perfecto, sí asegura una función de visualización de DAG utilizable
Resultados y lecciones
- El tiempo total de desarrollo fue de aproximadamente 2 días, mucho más rápido y estable que una refactorización frontend anterior
- Se evalúa como el primer caso en el que el desarrollo con Claude Code mostró una mejora de productividad tangible y no aleatoria
- El equipo de Hatchet planea seguir ampliando gradualmente el desarrollo basado en LLM a funciones fuera de la ruta crítica
- La lección principal es la importancia de bucles de retroalimentación cortos, modularización, diseño guiado por especificaciones y pruebas continuas
- La TUI terminada de Hatchet está disponible públicamente en https://tui.hatchet.run, y actualmente están recopilando comentarios de usuarios
1 comentarios
Comentarios en Hacker News
Hay una ironía en que la página hable del rendimiento de las UI de terminal y, aun así, se trabe al hacer scroll incluso en mi Dell XPS de alto rendimiento por efectos complejos como composición de máscaras CSS o gradientes cúbicos
Según Gemini, esto es un “Scrim o Easing Gradient” que, en vez de lograr un desvanecido suave con 16 color stops, termina recalculando el color de millones de píxeles en cada scroll
En Firefox la mayoría de las páginas se desplazan con fluidez, así que recomiendan probar también en una laptop hiDPI con iGPU que no sea Mac
Como referencia, también hay una imagen con el gradiente desactivado — enlace
busybox ssl_clientygrep, y luego lo abre en FirefoxMe parece un poco triste ese intento de hacer que una TUI se vea como una GUI. Tiene peor accesibilidad y aplana la estructura, así que el usuario no puede usarla fuera de la forma prevista. En cambio, una GUI moderna está conectada estructuralmente con el SO y ofrece mucha más libertad
Hoy en día desarrollar TUI es mucho más fácil que antes. Es gracias a frameworks como BubbleTea, Textualize y Ratatui.
Con los LLM ahora también se pueden crear estas herramientas rápidamente, y yo mantengo una librería de gráficos TUI llamada NTCharts
Gracias a la comprensión espacial de Gemini pude resolver bugs, y ahora estoy construyendo con BubbleTea un visor local de conversaciones con LLM
Enlaces relacionados: issue de NTCharts, proyecto thinkt
No logro entender esta obsesión con las TUI en las apps de LLM. Si ves Copilot en VS2026, una GUI puede mostrar mucha más información mucho más rápido. Poder hacer clic en los diff en tiempo real es mucho más eficiente
En una época en la que los LLM consumen los recursos de cómputo, esto más bien ha servido como impulso para crear herramientas con stacks livianos.
Al escribirlo en C, se multiplicó el rendimiento del CPU por miles y se redujo la RAM a la mitad. La TUI es un buen ejemplo de esa eficiencia
Sigo pensando que Midnight Commander (mc) es una de las mejores TUI que existen. Ofrece casi las mismas funciones que su versión GUI, Double Commander, y además puede correr en remoto.
Ahora mismo estoy trabajando en un nuevo skin y ojalá entre en la próxima release
Gemini me hizo una TUI para mi proyecto de scraper DHT — imagen
La primera versión necesitó ajustes por problemas con caracteres CJK, pero en general fue muy impresionante. Gracias a eso pude concentrarme en el algoritmo
No veo muy claro en qué una TUI sea mejor que un formulario web o una GUI. En cambio, sí creo que la composición de pipelines de CLI es muy poderosa
Me gusta Claude Code, pero siento que su estructura de TUI basada en React es realmente ineficiente
Hice mi propio frontend de prompts basado en Cursor CLI — imagen
Integré git, diff e historial de chat, y además es fácil acceder desde el teléfono mediante Tailscale.
Puede reconocer mis reglas y hacer
grepen el proyecto, así que la usabilidad es muy alta