- Collection de divers exemples d’applications en terminal (TUI) créées avec le framework Ratatui
- Inclut des applications pour des usages variés, comme la supervision système, l’exploration de fichiers, l’analyse réseau et la visualisation de données
- Parmi les exemples représentatifs figurent Atuin (gestion de l’historique du shell), GitUI (interface Git), Oatmeal (chat LLM) et Yazi (gestionnaire de fichiers)
- Chaque projet est écrit en Rust et fournit un lien GitHub ainsi que des images de démonstration
- Un ensemble d’exemples qui montre l’extensibilité et l’aspect pratique du développement d’interfaces terminal dans l’écosystème Rust
Aperçu
- La page App Showcase de Ratatui répertorie de véritables applications à interface utilisateur en terminal (TUI) développées avec Ratatui
- Chaque entrée se compose d’un lien vers le dépôt GitHub, d’une brève description et d’une image ou d’un GIF de démonstration
- Plus de 27 projets y sont présentés, couvrant un large éventail allant des outils système aux jeux, en passant par l’IA et la gestion de données
Liste des principales applications
Atuin
- Remplace l’historique shell traditionnel par une base de données SQLite et enregistre un contexte supplémentaire lors de l’exécution des commandes
Bandwhich
- Utilitaire CLI affichant l’utilisation réseau par processus, connexion et IP/hôte distant
Binsider
- Outil permettant d’effectuer de l’analyse binaire dans le terminal
Bottom
- Moniteur système multiplateforme visualisant l’utilisation des ressources comme le CPU et la mémoire
Crossword
- Jeu permettant de jouer à des mots croisés dans le terminal
Csvlens
- Visionneuse dédiée aux fichiers CSV, comparable à la commande
less, mais optimisée pour la structure CSV
Dua
- Outil d’analyse de l’espace disque basé sur le traitement parallèle, avec fonction de suppression rapide
Fzf-make
- Outil CLI qui exécute des cibles
make à l’aide d’un fuzzy finder
GitUI
- Interface TUI en Rust pour les opérations Git
Gpg-tui
- Interface terminal pour GnuPG
Joshuto
- Gestionnaire de fichiers de style Ranger, écrit en Rust
Material
- Palette de couleurs Material Design pour le terminal
Minesweep-rs
- Jeu de démineur écrit en Rust
Oatmeal
- Application de chat en terminal pour dialoguer avec des LLM, prenant en charge les backends ChatGPT ou Ollama
- Inclut des commandes slash, une interface à bulles de chat et l’intégration avec Neovim
Oha
- Envoie de la charge à des applications web et affiche les résultats dans une TUI en temps réel
Oxker
- TUI pour contrôler et superviser des conteneurs Docker
OpenAPI-tui
- Outil pour consulter rapidement de la documentation OpenAPI dans le terminal
Rainfrog
- Outil terminal léger pour interagir avec des bases de données
Rucola
- Offre des fonctions de gestion de notes Markdown et de conversion HTML
Scope-tui
- Implémente dans le terminal des fonctions d’oscilloscope, vectorscope et spectroscope
Slumber
- Exécute un client HTTP/REST dans le terminal
Steer
- Agent de codage IA pour le développement local et l’automatisation
Taskwarrior-tui
- Interface terminal de l’outil de gestion de tâches Taskwarrior
Television
- Outil de recherche basé sur des algorithmes de fuzzy matching, prenant en charge l’exploration de diverses sources de données comme les fichiers, Git et les variables d’environnement
Trippy
- Outil de diagnostic réseau combinant les fonctions de traceroute et de ping
Xplr
- Explorateur de fichiers TUI rapide et hackable
Yazi
- Gestionnaire de fichiers ultra-rapide basé sur des E/S asynchrones, écrit en Rust
Yozefu
- TUI interactive pour explorer les données de clusters Kafka
- Prend en charge un filtrage fin grâce à un langage de requête proche du SQL
- Alternative à AKHQ, Redpanda Console et au plugin Kafka de JetBrains
Importance de l’écosystème Ratatui
- Toutes les applications reposent sur le framework Ratatui, montrant la diversité et la maturité du développement d’interfaces terminal dans l’environnement Rust
- Chaque projet est publié sous la forme d’un dépôt GitHub open source, que les développeurs peuvent consulter directement
- Cela suggère que Ratatui s’impose comme l’outil de référence pour le développement CLI/TUI en Rust
1 commentaires
Commentaires sur Hacker News
Je trouve intéressant qu’il y ait autant de TUI écrites en Rust ces temps-ci
Parmi celles que je connais, il y a Awesome TUIs, terminaltrove et la liste awesome de Ratatui
Qt et GTK sont trop lourds, Windows change souvent, et je n’ai pas envie de toucher à Electron
La qualité des terminaux s’est beaucoup améliorée récemment, donc il est bien plus simple d’y créer de petites applications
L’analogie est parfaite : construire quelque chose de chouette en LEGO est plus facile que sculpter de l’argile
Plus besoin de construire tout un pipeline de rendu navigateur pour visualiser l’état des données
À titre de référence, il y a cette image d’exemple
Les terminaux modernes comme Ghostty, WezTerm, Kitty, iTerm et Alacritty prennent en charge l’accélération GPU et la couleur 24 bits
Et en plus, les développeurs utilisent aujourd’hui davantage des outils comme Claude Code, Gemini CLI et Codex dans le terminal que dans l’IDE
Elles ont beaucoup de contraintes, mais c’est justement ce qui rend plus difficile la création d’interfaces désordonnées
Elles conviennent très bien aux logiciels de complexité simple à moyenne. Je recommande par exemple Midnight Commander
La collaboration avec les designers me paraît de plus en plus bureaucratique et inefficace
Les TUI imposent des interfaces propres, à forte densité d’information et avec peu d’espace inutile
Si les TUI sont à la mode en Rust, c’est surtout parce que la situation des GUI est trop mauvaise
On peut s’en rendre compte en lisant ce sondage sur les bibliothèques GUI Rust
J’aimerais utiliser Qt avec Rust, mais je ne veux ni QML, ni Slint, ni GTK, ni les UI en mode immédiat
Ce serait vraiment dommage qu’il n’apparaisse rien d’équivalent à Qt dans l’écosystème Rust
Ratatui est un framework tellement agréable à utiliser que cela n’a rien à voir avec l’absence de GUI
Quand la CLI ne suffit pas mais qu’une GUI complète serait excessive, la TUI occupe très bien cette position intermédiaire
Les références parent/enfant entre fenêtre, conteneur et bouton entrent en conflit avec le modèle de propriété de Rust
Le mécanisme signal-slot de Qt est lui aussi délicat à implémenter en Rust
La plupart des crates dont j’avais besoin étaient soit WIP, soit à l’abandon
En dehors de quelques grosses crates populaires, la documentation se résume souvent à « voir la doc C++ »
C’est en partie parce que Rust est encore un langage jeune, mais le vrai problème me semble être le manque d’engagement sur la maintenance des packages dans la communauté
En revanche, je ne sais pas avec certitude si la partie GUI est implémentée uniquement en Rust
J’attends un navigateur web TUI qui me permettrait de vivre entièrement dans le terminal
Avec des technologies comme sixel ou les shaders, il devrait être possible de gérer les graphismes aussi, hors vidéo
Le blocage des publicités serait peut-être trop facile pour plaire aux entreprises, mais en le présentant comme un navigateur pour LLM, ça pourrait peut-être passer
Le terminal reste un tampon de caractères basse résolution, alors qu’un rendu en pixels accéléré par GPU est tout simplement bien plus efficace
Il fait tourner Firefox en mode headless et affiche le résultat en ASCII dans le terminal. C’est assez impressionnant
Lynx et w3m en sont des exemples représentatifs
Je présente mon visualiseur Markdown mdfried
Le Markdown brut est agréable à lire, mais l’affichage dans un navigateur est plus confortable, donc j’ai créé un visualiseur qui rend les en-têtes sous forme d’images
Il faut configurer la police une fois, et les images inline sont aussi prises en charge
Désormais, il peut même faire le rendu directement sans conversion en image grâce au protocole text-sizing de Kitty
Le Teletekst néerlandais propose une interface SSH
D’après cet article, elle a été réalisée avec Ratatui, et on peut s’y connecter via
ssh teletekst.nlJ’ai testé une petite application faite avec Ratatui, et j’ai été surpris de voir l’utilisation CPU monter jusqu’à 8 % avec une simple saisie de texte
C’était le cas même en reprenant tel quel l’exemple officiel
cargo runutilise le mode debug par défautJ’aimerais intégrer mon projet open source TironCalc dans le dépôt principal ironcalc
Je pense que c’est un bon projet pour travailler avec Rust et Ratatui
Mais après avoir vu le projet edit de Microsoft, je ne suis plus certain que Ratatui soit le meilleur choix
Je présente mon jeu TUI basé sur Ratatui rebels-in-the-sky
En revanche, la vidéo du dépôt ne s’ouvre pas sur mon appareil
Je trouve que le titre du post était un peu étrange
Je pensais lire un article sur la révolution des TUI en Rust, alors qu’il s’agissait en fait d’une collection d’applications créées avec Ratatui
Charm joue un rôle similaire dans l’écosystème Go
J’ai le sentiment qu’on a de plus en plus besoin d’utilitaires permettant d’exécuter des agents en CLI par dossier dans le terminal
Par exemple, cela pourrait servir à automatiser des vérifications de conformité juridique
Cline CLI, Opencode CLI, Codex CLI, Gemini CLI, Claude Code CLI, etc.