Vous avez déjà essayé de dessiner une TUI (Interface utilisateur pour le Terminal) à la main dans votre IDE ?
Genre, calculer les paddings d'une Box ANSI à la mano et compter les caractères Unicode pour aligner trois colonnes ? Pffff quelle galère !! Hé bien cette mauvaise expérience, Javier Alonso Gómez, Staff Design Technologist chez Docker, vient de la transformer en simple drag-and-drop avec son outil
TUIStudio
.
En gros, c'est comme Figma mais pour vos applis terminal.
Vous lancez l'éditeur, vous balancez des composants sur un canvas, et un aperçu ANSI temps réel vous montre ce que ça donnera dans un vrai terminal. Il y a 21 composants prêts à l'emploi (Box, Button, TextInput, Table, Tree, Modal, Tabs, Spinner...), avec un moteur de layout qui supporte Absolute, Flexbox et Grid.
C'est du CSS pour le terminal si vous préférez et le truc cool, c'est que ça reste fidèle au rendu final, donc fini les tableaux qui débordent sans raison !
J'suis pas encore super doué !
Côté thèmes, vous avez également le droit à 8 palettes intégrées (Dracula, Nord, Solarized, Monokai, Gruvbox, Tokyo Night, Nightfox et Sonokai), et le canvas se met à jour live quand vous changez. Sympa, hein !
Niveau export, TUIStudio cible les frameworks Ink (TypeScript), BubbleTea (Go), Blessed (JavaScript), Textual (Python), OpenTUI (TypeScript) et Tview (Go) mais d'après ce que j'ai lu sur le site officiel, la fonction d'export vers tout ça n'est pas encore opérationnelle. Mais ça m'étonne car lors de mes tests, j'ai quand même pu voir que ça fonctionnait... Donc j'sais pas, peut-être que le site web n'a pas été mis à jour et que l'export est bien opérationnel ?
L'export
Ça tourne sur macOS Apple Silicon, Windows et Linux (.deb) et le code est sous licence MIT sur le
repo GitHub
.
Orhun Parmaksız, l'un des principaux mainteneurs de Ratatui (une bibliothèque Rust très utilisée pour créer des interfaces texte dans le terminal), vient de sortir un projet qui sort vraiment des clous.
Ça s'appelle Ratty, c'est donc un émulateur de terminal capable d'afficher des objets 3D, des sprites animés et des modèles complets en plein milieu de votre ligne de commande.
Sur le papier, ça paraît absurde. Un terminal sert à taper des commandes et lire du texte. Sauf que Parmaksız s'est demandé pourquoi on devait s'arrêter là, et sa réponse est qu'on n'y est pas obligés.
Le truc tourne donc sur Rust avec Ratatui pour la couche d'affichage texte, parley_ratatui pour le rendu de la typographie, et Bevy (un moteur de jeu open source qu'on retrouve dans pas mal de petits jeux indé) pour la partie graphique.
Un terminal classique génère son texte caractère par caractère, là chaque image devient une texture envoyée sur le GPU (la puce graphique de votre machine, celle qui gère normalement les jeux et les vidéos). Bevy place ensuite cette texture dans une scène 3D où vous avez des caméras, des éclairages, des animations.
Pour faire passer des objets 3D dans le flux, Parmaksız a inventé son propre protocole, le Ratty Graphics Protocol, qui permet à n'importe quelle commande de balancer un cube tournoyant ou un modèle de chat à côté d'un texte d'aide.
Le curseur lui-même est un rat 3D qui tourne sur lui-même, d'où le nom du projet. Inspiration officielle : TempleOS, l'OS développé en solo pendant des années par Terry Davis, célèbre pour permettre d'afficher des sprites 3D dans son shell. Une référence improbable, mais assumée.
Le code est open source sur
github.com/orhun/ratty
, et un widget Ratatui nommé ratatui-rgp permet d'intégrer la 3D dans vos propres apps terminal. La version 0.2.0 vient de sortir. C'est encore largement expérimental, mais le rendu sur les démos est franchement sympa.
Si vous cherchez une alternative à
Termius
qui ne vous coûte pas une petite couille, je crois que j'ai trouvé ce qu'il vous faut !
C'est vrai qu'il y a quelque chose de carrément agréable à pouvoir ouvrir un navigateur depuis n'importe quelle machine et retrouver tous ses serveurs, fichiers et tunnels au même endroit... Et Termius fait ça très bien, sauf que la fonctionnalité la plus utile, à savoir la synchro entre appareils, c'est payant !
Et c'est ça la raison d'être de
Termix
qui propose exactement ça mais en open source, en gratos et à héberger vous-même !
Termix, c'est donc une plateforme de gestion de serveurs accessible depuis le navigateur. On y retrouve un terminal SSH complet, de la gestion de fichiers distants, des tunnels SSH inversés, et depuis la v2.0 sortie en mars dernier, le support RDP, VNC et Telnet.
En clair, ça couvre à peu près tout ce dont on a besoin pour piloter une infra depuis un seul endroit. Petit détail à noter quand même, le RDP/VNC/Telnet n'est pas inclus par défaut, donc il faut ajouter un second conteneur guacd au compose. Rien de compliqué, mais à savoir avant de se lancer.
Le terminal SSH supporte jusqu'à 4 panels simultanés comme ça plutôt que de multiplier les sessions, vous regroupez au même endroit. Le gestionnaire de fichier est aussi très sympa avec du drag & drop dans les deux sens, la modification de fichiers distants directement dans le navigateur... Et y'a aussi une gestion des conteneurs Docker intégrée, un Network Graph pour visualiser les connexions entre hôtes, et un système de snippets de commandes pour éviter de retaper les mêmes commandes à longueur de journée.
Ce qui change par rapport aux autres alternatives web, c'est surtout sa dispo sur toutes les plateformes. L'accès web est évidemment central, mais il existe aussi des apps natives pour Windows, Linux, macOS (App Store, DMG ou Homebrew selon vos préférences), iOS/iPadOS et Android.
Tout se synchronise ensuite via le conteneur self-hosted comme ce que permet Termius, à la différence près que vous hébergez vous-même le système.
Côté sécurité et gestion d'équipe, Termix intègre du RBAC, de l'OIDC, du 2FA, et stocke les données dans une SQLite chiffrée.
Pour tester en local, le docker-compose de base ressemble à ça :
Attention à la config réseau avant tout puisque le port 8080 par défaut est souvent filtré ou déjà occupé donc changez ça dans le compose si besoin. Ajoutez ensuite le conteneur guacd si vous voulez le RDP/VNC/Telnet (je vous laisse aller lire la doc).
Après l'interface est fonctionnelle mais pas aussi léchée que Termius. Y'a pas de passkeys, et pas de support ed25519-sk pour les clés de sécurité hardware.
Pour une utilisation personnelle ou une petite équipe qui gère de l'infra linux, c'est largement suffisant, cela dit. Bref, si Termius c'est pas fait pour vous parce que c'est encore des sousous à sortir, sachez que Termix est là pour vous.
Justin Poehnelt, Senior Developer Relations Engineer chez Google, vient de balancer sur Github un outil en ligne de commande (CLI), codé en Rust qui permet de faire un truc trop pratique, à savoir piloter entièrement Workspace depuis le terminal. Ce logiciel nommé GWS est donc capable de gérer Gmail, Drive, Calendar, Sheets et sept autres services Google d'un coup. Et en plus, comme il a été conçu pour les agents IA, donc c'est pas juste pour vous et votre terminal !
Une fois installé via npm, cargo, brew ou un binaire pré-compilé, vous tapez gws auth login pour vous authentifier via OAuth et vous pouvez ensuite attaquer onze services depuis votre shell : Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin, Apps Script, Tasks, Workspace Events et Model Armor.
Niveau archi, au lieu de hard-coder chaque commande dans le binaire, gws interroge tout simplement le Discovery Service de Google au démarrage et reconstruit son arbre de commandes à la volée. Du coup quand Google ajoute un endpoint à l'API Sheets, le CLI le voit apparaître tout seul. C'est trop bien parce que ça évite de devoir attendre une release pour utiliser un éventuel nouveau service de Google. Et pour un agent IA qui re-fetch le schéma à chaque run, c'est plutôt une bonne idée.
Donc en plus de démarrer en moins d'une seconde, GWS crache des sorties en JSON structurées, y'a un mode --dry-run qui montre la requête sans l'envoyer, et de l'auto-pagination via --page-all. Et côté commandes utilitaires, vous avez aussi les + qui sont des helpers cousus main tels que gws gmail +send, gws drive +upload, gws calendar +agenda, gws sheets +append, gws gmail +triage et un gws gmail +standup-report qui résume vos mails de la semaine en quelques lignes.
Le repo embarque aussi 40+ skills d'agent prêts à l'emploi du type "résume mes mails non lus" ou "génère mon rapport", une extension
Gemini CLI
qui s'installe avec gemini extensions install https://github.com/googleworkspace/cli, et le helper +sanitize-response qui fait passer la sortie par Model Armor (le filtre anti-prompt-injection de Google Cloud) pour éviter les réponses bizarres.
En gros, c'est un outil pensé pour faire piloter votre Workspace par Claude, Gemini ou n'importe quel agent. Comme ça vous allez pouvoir écrire un workflow qui lit vos mails non lus, en fait un résumé, le poste dans un Chat et classe tout ça proprement dans Drive... sans avoir à toucher à la souris ni avoir à utiliser votre cerveau léthargique. Elle est pas belle la vie ?
Sauf que. Le projet porte le disclaimer "This is not an officially supported Google product", et un employé Google a confirmé sur le thread Hacker News (presque 1000 points, quand même) que c'est un projet DevRel. Comprendre : pas de SLA, pas de roadmap garantie, pas d'équipe SRE qui veille au grain.
Vous savez comment ça finit chez Google
avec ce genre de statut !
Bref si vous êtes chaud pour tester, le binaire est dispo
ici
. Maintenant reste à voir si Google lui donnera un statut officiel ou si GWS s'éteindra discrètement comme tant d'autres projets internes oubliés...
"GitHub n'est plus un endroit pour faire du travail sérieux."
C'est signé Mitchell Hashimoto, le créateur de HashiCorp, de Vagrant ou plus récemment de Ghostty, et l'utilisateur numéro 1299 de la plateforme depuis février 2008.
Et quand un mec qui a passé 18 ans à pousser du code presque tous les jours sur Github annonce qu'il se casse, bah ça vaut clairement le coup de comprendre pourquoi.
L'annonce est tombée hier :
Ghostty
, le terminal en Zig pour macOS et Linux va quitter la plateforme. Pas tout de suite, pas brutalement, mais la décision est prise. Hashimoto précise qu'il discute "avec plusieurs fournisseurs (commerciaux comme FOSS)" pour choisir la nouvelle maison pour son code, et qu'un miroir en lecture seule restera accessible sur l'URL GitHub actuelle pour ne pas casser les liens des PRs et des issues. La migration sera, je cite, "aussi incrémentale que possible" pour les contributeurs.
Mais alors, qu'est-ce qui a déclenché cette situation ? Hé bien la semaine du 20 avril a été vraiment catastrophique ! Tout d'abord, le 22 avril, l'agent Copilot et le traitement des commentaires de PR sont tombés une demi-journée à cause d'une erreur de sérialisation. Le 23 avril, c'était encore pire puisqu'un bug dans la merge queue a produit des merges incorrects pour les PRs fusionnées en mode squash quand le groupe contenait plus d'une PR.
Cette situation a même été carrément reconnue officiellement par GitHub, puisque
2092 pull requests ont été affectées
... du coup des changements précédemment mergés se sont retrouvés involontairement annulés par les merges suivants. Ensuite, le 27 avril, rebelote sur les Github Actions.
Bref, comme le dit Hashimoto dans
The Register
: "je ne peux plus coder avec GitHub".
Hashimoto fait état d'un attachement quasi sentimental avec la plateforme. Il a lancé Vagrant en partie pour impressionner GitHub, en espérant secrètement décrocher une embauche un jour. Embauche qui n'est jamais venue, mais l'attachement est resté. "J'aime GitHub plus qu'on devrait aimer une chose", écrit-il, "et je suis en colère contre lui".
C'est pas de la posture donc puisqu'il a vécu depuis 2008 toute l'histoire de la plateforme en passant par le rachat par Microsoft en 2018 jusqu'à l'âge Copilot. Et c'est ce qui rend sa décision vachement intéressante car c'est pas un libriste hardcore qui crachait déjà sur GitHub avant le rachat. Non, c'est un vrai fidèle de la première heure !
Pour vous la faire courte, c'est OUI ! Mais ma réponse longue mérite un peu de nuance quand même, parce que c'est jamais aussi simple.
Côté faits, son constat est vraiment étayé. GitHub a publiquement reconnu sur son
blog officiel
que ses récentes pannes sont dues à "une croissance rapide, un couplage architectural et des limitations de gestion de charge". Pas de complot donc mais un aveu honnête.
Quand votre infra ne tient plus la charge et que vos services principaux tombent quasi quotidiennement, vendre du cloud computing devient trèèèès compliqué. Alors pour un projet open source qui dépend des Actions pour ses tests automatiques, des PRs pour les contributions extérieures, ou des Issues pour son support... 2 heures de blocage par jour, c'est franchement énorme et ça casse bien les couilles.
C'est l'équivalent d'un quart de la journée de travail balayé et sur un trimestre, ça commence à coûter super cher en énergie mentale...
Maintenant, Hashimoto souhaite quand même conserver ses projets personnels sur GitHub. Seul Ghostty migre, donc ce n'est pas non plus un boycott idéologique de Microsoft, ni une croisade contre la centralisation. C'est surtout une décision pragmatique pour un projet collectif qui doit fonctionner H24.
Un dépôt perso peut se permettre une heure de downtime sans drama. Je le précise pour éviter de transformer le sujet en guerre culturelle prêt à penser. C'est plus un divorce avec négociation qu'une révolution sanguinaire.
Après y'a des alternatives... De leur côté,
Codeberg
et
Forgejo
tournent super bien sans oublier GitLab pour ceux qui préfèrent du commercial all-in-one, ou tout simplement Gitea ou Forgejo en version auto-hébergée pour ceux qui veulent vraiment garder la main.
L'auto-hébergement n'a jamais été aussi accessible
. Un VPS Linux à 5 balles par mois, un Forgejo en Docker compose, un fournisseur de CI externe ou des runners locaux... et vous avez une forge équivalente à un GitHub des années 2015. Le hic, c'est surtout l'effet réseau car un mainteneur peut migrer son repo, mais comment ramener ses contributeurs qui ont toutes leurs notifs, leurs follows, leur réputation accumulée sur GitHub ?
C'est pas si simple...
Car c'est là que ça coince vraiment. En fait, le verrou n'est pas technique, il est social, et c'est pas demain matin qu'on le fera sauter. Ghostty peut se permettre de quitter GitHub précisément parce que le projet a atteint la masse critique où les contributeurs viennent même quand on déménage mais la plupart des projets open source n'ont pas ce luxe.
Pour eux, partir de GitHub c'est risquer de perdre 90 pourcent de leur visibilité du jour au lendemain. Et sans visibilité, pas de contributeurs et pas de PRs... du coup le projet se plante avant même de démarrer. C'est dommage !
Notez quand même que Forgejo travaille d'ailleurs activement sur
la fédération via ActivityPub
, et à terme, ça pourrait permettre une vraie décentralisation des forges sur le modèle de Mastodon. Mais à condition que l'écosystème suive...
Maintenant, pour les mainteneurs qui se reconnaissent dans la frustration de Hashimoto, le moment est plutôt favorable, je trouve, pour aller tester Codeberg sur un projet secondaire avant de peut-être déménager votre projet principal.
Tout ça est faisable en un week-end ou deux. Certes, il y a un petit coût à cette migration, mais disons que c'est un investissement pour la sérénité de demain.
Bref, un gros big up à Hashimoto pour son courage !
Je viens de tomber sur un projet qui va vous renvoyer direct dans les années 80 !! Ça vous dirait que votre vieux Commodore 64 puisse balancer un prompt façon Unix, avec login, éditeur de texte et 30 commandes ? Hé bien c'est exactement ce que propose
C64UX
, codé en assembleur pur, sans patch ROM ni rien.
L'auteur, Anthony Scarola a sorti sa dernière version en février 2026, avec une bannière de démarrage qui balance fièrement des [ OK ] à chaque étape de la séquence de boot, exactement comme un vrai système Linux un peu trop fier de lui !
En gros sur votre
Commodore 64
, vous bootez normalement sous BASIC puis vous lancez le programme c64ux.prg (un simple LOAD et RUN), vous tapez votre username et votre mot de passe, et hop, vous atterrissez dans un shell qui propose 30 commandes :
La config initiale de C64UX : création du compte, date et heure, avant de tomber sur le prompt
Sous le capot de C64UX, c'est de l'assembleur
6502
brut de décoffrage. Et surtout, le projet n'utilise que les routines standard du C64, sans aucune ROM modifiée, ni aucune cartouche spéciale. Du coup ça tourne aussi bien sur un vrai C64 d'époque que sur un
Ultimate 64
moderne ou dans l'
émulateur VICE
.
Mais le vrai morceau de bravoure dans ce projet c'est la persistence REU. Car votre shell avec ses fichiers, vous pouvez le dumper dans l'extension mémoire de l'époque via SAVEREU puis tout restaurer après coup avec LOADREU. Très pratique pour ne pas perdre vos précieux textes à chaque reset ! Par contre, sans extension REU branchée, tout s'efface au redémarrage, faudra donc penser à taper la commande SAVE à la main pour écrire sur disquette.
La sortie de la commande HELP, avec la liste des commandes disponibles
L'éditeur baptisé NANO (inspiré du vrai mais en mode super minimaliste) fait bien le taf aussi. Et les themes changent la couleur de bordure, le fond et le texte d'un coup, entre NORMAL (le bleu royal classique), DARK, ou GREEN pour se la jouer Matrix.
Création d'un fichier avec WRITE, lecture avec CAT, puis STAT et LS pour voir les métadonnées
Sur le forum Lemon64, Scarola balance une nouvelle version à peu près toutes les semaines et reconnaît lui-même être un petit nouveau en assembleur. Mais gros respect pour avoir déjà sorti 10 releases en un peu plus d'un mois quand même ! Notez que comme tout bon développeur qui sait vivre avec son temps (#troll), il s'aide d'un peu d'IA (Claude Code en l'occurrence) pour l'écriture du code.
Voilà, si vous avez un Commodore 64 qui traîne ou juste un émulateur VICE sous la main, foncez tester, c'est sympa !
Si vous êtes comme votre blogueur préféré (hi hi) et que vous avez des tonnes de fichiers markdown qui traînent dans des dossiers obscurs depuis des années, voici l'outil parfait pour rendre tout ceci à nouveau utilisable dans la vraie vie.
En tout cas, c'est plus pratique qu'un grep !
Ça s'appelle QMD (Quick Markdown Search) et c'est un outil en ligne de commande dispo sur GitHub qui va indexer tout votre bazar de notes pour les rendre consultables rapidement. QMD combine la recherche plein texte classique (BM25) avec de la recherche vectorielle sémantique et du re-ranking via LLM, ce qui veut dire que c'est ultra puissant. On est un peu sur le même principe qu'un RAG en fait puisque l'IA locale est utilisée pour comprendre le sens de votre requête et pas juste chercher des chaînes de caractères bêtes et méchantes. J'utilise depuis un petit moment maintenant un système similaire avec LEANN pour indexer tous les articles de korben.info et retrouver des connexions entre mes contenus, et je peux vous dire que quand on goûte à la recherche sémantique, le bon vieux grep a un goût de carton.
L'outil est même capable de faire de l'expansion de requête (Query Expansion) pour deviner ce que vous cherchez vraiment.
Techniquement, ça tourne avec
bun
ou npm et ça s'appuie sur
node-llama-cpp
pour faire tourner des modèles GGUF directement sur votre machine. Tout reste chez vous donc niveau vie privée c'est nickel. C'est un peu la même philosophie que des outils comme
Khoj
ou
Blinko
dont je vous ai déjà parlé, mais en version CLI pour le terminal.
L'installation est hyper facile si vous avez déjà Bun, mais prévoyez quand même un peu de place (environ 3 Go) pour les modèles qui iront s'installer au chaud dans ~/.cache/qmd/models/ et installez sqlite si vous êtes sur macOS :
brew install sqlite # Pour macOS
npm install -g @tobilu/qmd
Ensuite, y'a plus qu'à vous créer vos collections en pointant vers vos dossiers, et en lançant l'indexation comme ceci :
qmd collection add ~/mes-notes --name notes
qmd embed # L'étape indispensable pour générer les vecteurs
Et hop, vous pouvez lancer des recherches !!
C'est magique ! Perso, j'utilise presque tout le temps la commande "qmd query" plutôt que "search" parce que le mode hybride est bien plus puissant je trouve. Vous avez aussi "qmd vsearch" si vous voulez une recherche purement sémantique, genre quand vous cherchez un concept sans connaître les mots exacts utilisés dans vos notes. En fait, quand vous tapez une requête, QMD va chercher via les mots-clés, via les vecteurs (le sens), puis fusionner tout ça avec un algo RRF, et refaire passer un petit coup de LLM par dessus pour trier les résultats par pertinence.
Après vous l'aurez capté en me lisant, si vous avez une machine un peu ancienne sans GPU costaud, l'étape de re-ranking risque de prendre un peu de temps... mais c'est le prix de la qualité et de la sécurité ^^.
D'ailleurs, si vous utilisez Claude Desktop ou Claude Code, sachez que QMD intègre également un
serveur MCP
(Model Context Protocol). Du coup, vous pouvez connecter QMD à Claude et lui permettre d'aller fouiller dans vos notes pour répondre à vos questions. Et bonne nouvelle, QMD propose maintenant un mode HTTP daemon (qmd mcp --http --daemon) qui garde les modèles chargés en mémoire, ce qui évite de les recharger à chaque requête. Attention par contre, dans ce cas précis, les extraits de vos notes seront envoyés à Claude (donc dans le cloud).
QMD est aussi dispo en tant que librairie Node.js (npm install @tobilu/qmd) pour ceux qui voudraient l'intégrer dans leurs propres scripts ou workflows d'automatisation. Avec les options --json et --files en sortie, ça se branche facilement dans un pipeline.
Perso je trouve ça génial parce que ça comble le fossé entre le simple fichier texte et les usines à gaz de gestion de connaissances. Par exemple, si vous êtes un grand adepte de
Silverbullet
ou d'
Obsidian
, c'est le top pour l'indexation globale de vos écrits.
Voilà, si vous voulez un moteur de recherche personnel qui en a sous le capot et qui respecte votre vie privée, foncez tester ça.