- Le cas du développement rapide par l’équipe de Hatchet d’une interface utilisateur en terminal (TUI) à l’aide de Claude Code est présenté
- Avec la stack Charm (Bubble Tea, Lip Gloss, Huh), ils ont mis en œuvre un développement basé sur des composants au niveau de React ainsi qu’un style cohérent
- Tout en utilisant la même API que l’interface web existante, ils ont amélioré l’efficacité des développeurs grâce à une interface centrée sur le texte et riche en informations
- Claude Code lance des sessions tmux et automatise les tests, jouant ainsi un rôle majeur dans le développement itératif et la fiabilité
- Le TUI de Hatchet, achevé en seulement 2 jours, est considéré comme un exemple montrant une amélioration concrète de la productivité grâce au développement basé sur les LLM
Motivation pour développer un TUI
- L’équipe de Hatchet voulait un TUI similaire à k9s, et les utilisateurs l’ont jugé plus rapide et plus intuitif que l’interface web
- Parmi les retours utilisateurs, certains indiquaient que « le CLI et le TUI sont bien plus performants »
- Un TUI permet de visualiser et exécuter les workflows dans le même environnement que le code, sans avoir à changer d’onglet
- Comme les principaux utilisateurs de Hatchet sont des développeurs travaillant dans leur IDE, l’objectif était d’offrir une expérience de gestion des workflows dans le terminal
Stack technique
- Ils ont utilisé la stack Charm, équivalent des stacks frontend classiques (React, Tailwind, etc.)
- Bibliothèques principales : Bubble Tea, Lip Gloss, Huh
- Elles sont maintenues par l’équipe de Charm, avec une documentation et des exemples abondants
- Lip Gloss et les thèmes Huh ont permis d’appliquer un style cohérent à l’ensemble du TUI
- Le même thème a aussi été réutilisé dans les commandes du CLI Hatchet pour offrir une expérience utilisateur unifiée
- Les personnalisations en dehors de Bubble Tea sont un peu plus difficiles, mais cela reste bien plus simple que d’implémenter soi-même un moteur de rendu basé sur React
Approche de test
- Claude Code exécute directement les outils en terminal pour réaliser les tests
- Il utilise
tmux capture-pane pour capturer la vue rendue et vérifier que la sortie est correcte
- Cette méthode s’est révélée très efficace pour automatiser la première passe de test, avec une vérification du rendu qui reste fiable même lorsque le nombre de vues augmente
- Des tests manuels et des tests unitaires ont ensuite été menés en parallèle afin de créer une boucle de développement itérative stable
- Claude Code est particulièrement optimisé pour les tâches répétitives dans un environnement ASCII, ce qui permet une convergence rapide de la boucle de feedback de test
Mettre en place un environnement de développement efficace
- Claude Code a amélioré l’efficacité du développement en s’appuyant sur l’implémentation frontend existante de Hatchet
- Une structure de composants simple basée sur React et la spécification OpenAPI ont permis de définir clairement les frontières
- Un client REST API généré automatiquement a rendu possible un développement guidé par la spécification
- L’implémentation du moteur de rendu basé sur un DAG a été la partie la plus difficile, mais
- en s’appuyant sur mermaid-ascii, ils ont réussi à implémenter un moteur de rendu de graphes ASCII
- sans être parfait, il permet de disposer d’une fonctionnalité opérationnelle de visualisation de DAG
Résultats et enseignements
- La durée totale du développement a été d’environ 2 jours, bien plus rapide et plus stable qu’un précédent refactoring frontend
- Le développement avec Claude Code est considéré comme le premier cas montrant une amélioration réelle et non aléatoire de la productivité
- L’équipe de Hatchet prévoit à l’avenir d’étendre progressivement le développement basé sur les LLM aux fonctionnalités hors chemin critique
- La principale leçon est l’importance de boucles de feedback courtes, de la modularité, d’une conception guidée par les spécifications et de tests continus
- Le TUI finalisé de Hatchet est disponible sur https://tui.hatchet.run, et l’équipe y recueille les retours des utilisateurs
1 commentaires
Commentaires sur Hacker News
Il y a une certaine ironie à voir une page web parler des performances des interfaces terminal alors que le défilement saccade sur mon Dell XPS haut de gamme à cause d’effets complexes comme les masques CSS composites ou les dégradés cubiques
D’après Gemini, il s’agit d’un « Scrim » ou d’un « Easing Gradient » : au lieu d’utiliser 16 arrêts de couleur pour produire un fondu doux, cela force à recalculer la couleur de millions de pixels à chaque scroll
La plupart des pages défilent de façon fluide dans Firefox, donc ça vaudrait le coup de tester aussi sur des portables hiDPI à iGPU, pas seulement sur Mac
À noter qu’il existe aussi une image avec le dégradé désactivé — lien
busybox ssl_clientetgrep, puis l’ouvre dans FirefoxJe trouve un peu triste cette tentative de faire ressembler un TUI à une GUI. C’est moins accessible et la structure devient plus plate, donc l’utilisateur ne peut guère l’utiliser autrement que de la manière prévue. Les GUI modernes, au contraire, sont structurellement intégrées à l’OS et offrent bien plus de liberté
Le développement de TUI est devenu bien plus facile qu’avant grâce à des frameworks comme BubbleTea, Textualize et Ratatui.
Les LLM permettent aussi de construire rapidement ce type d’outils, et je maintiens une bibliothèque de graphiques TUI appelée NTCharts
Grâce à la compréhension spatiale de Gemini, j’ai corrigé des bugs, et je suis en train de créer avec BubbleTea un visualiseur local de conversations LLM
Liens associés : issue NTCharts, projet thinkt
Je ne comprends pas cette obsession du TUI dans les applications LLM. Si on regarde Copilot dans VS2026, une GUI affiche bien plus d’informations beaucoup plus vite. On peut cliquer sur les diff en temps réel, ce qui est bien plus efficace
À l’époque où les LLM accaparent les ressources de calcul, cela a au contraire poussé à créer des outils sur une stack légère.
Écrire en C a permis de multiplier les performances CPU par des milliers et de réduire la RAM de moitié. Les TUI sont un bon exemple de cette efficacité
Midnight Commander (mc) reste selon moi l’un des meilleurs TUI. Il offre quasiment les mêmes fonctions que sa version GUI (Double Commander), tout en pouvant tourner à distance.
Je travaille en ce moment sur un nouveau skin, en espérant qu’il soit inclus dans la prochaine version
Gemini m’a créé un TUI pour mon projet de scraper DHT — image
La première version a nécessité des corrections à cause de problèmes avec les caractères CJK, mais dans l’ensemble c’était impressionnant. Ça m’a permis de me concentrer sur l’algorithme
Je ne vois pas très bien en quoi un TUI est meilleur qu’un formulaire web ou qu’une GUI. En revanche, je trouve les compositions de pipelines CLI extrêmement puissantes
J’aime bien Claude Code, mais je trouve que la structure TUI basée sur React est vraiment inefficace
J’ai créé mon propre frontend de prompts à partir de Cursor CLI — image
J’y ai intégré git, diff et l’historique de chat, et grâce à Tailscale j’y accède facilement même depuis mon téléphone.
Il reconnaît mes règles et peut faire des grep dans le projet, donc l’ergonomie est vraiment excellente