Jour 27. Plus que quatre jours. C’est le moment d’arrêter de jouer la sécurité.
La dernière ligne droite de ce challenge, c’est là où je veux me lancer dans des trucs qui ne devraient probablement pas tenir en une seule journée. Un émulateur de terminal, c’est exactement ça. Pas un jouet web qui fait semblant d’être un terminal. Une vraie application de bureau native qui lance de vraies sessions shell, fait du rendu à 60fps, et gère tout, de vim à htop.
Le Prompt#
“Construis un émulateur de terminal en utilisant Tauri 2 et Rust”
C’était la demande de base. Tout le reste est venu par itération.
Comment ça a été construit#
C’était un gros morceau. Watchfire a découpé le travail en 19 tâches, et il avait besoin de chacune d’entre elles. Construire un émulateur de terminal, c’est pas trivial. Il y a la gestion des PTY, l’intégration shell, la gestion des entrées, les performances de rendu, et une dizaine d’autres trucs auxquels je n’aurais jamais pensé.
La liste des tâches ressemblait à peu près à ça :
- Mettre en place un projet Tauri 2 + Vite avec support PTY de base
- Onglets multiples avec ouverture, fermeture et renommage
- Panneaux divisés, horizontaux et verticaux
- Panneau de paramètres avec thèmes, polices et config shell
- Polish UI, scrollback et corrections shell
- GitHub Actions pour des releases automatisées
- Suggestions de commandes IA en ligne
- Polish visuel pour la transparence, le flou et le chrome de fenêtre
- Liens cliquables et détection intelligente dans la sortie du terminal
- Profils shell et actions rapides
- Avertissements pour commandes dangereuses avec dialogues de confirmation
- Notifications pour commandes longues
- Recherche floue dans l’historique avec un overlay riche Ctrl+R
- Suggestions fantômes en ligne depuis les fichiers d’historique
- Détection intelligente d’erreurs avec actions de correction rapide
- Traduction du langage naturel en commandes
- Explication de commandes et résumé IA de la sortie
- Regroupement de sortie en blocs avec sections repliables
- Panneau de paramètres des fonctionnalités intelligentes et tests d’intégration
Ensuite sont venus les correctifs CI/CD. Faire compiler et signer Tauri sur macOS, Linux et Windows via GitHub Actions, c’est une aventure en soi. Plus les scripts d’installation pour les trois plateformes.
Ce que j’ai obtenu#

C’est un vrai terminal. Ce n’est pas une simulation. Il utilise le crate portable-pty de Rust pour lancer de vraies sessions shell. Bash, zsh, fish, tout ce que vous avez configuré. Le support PTY complet signifie que tout fonctionne : vim, htop, les prompts interactifs, tout.

xterm.js avec accélération WebGL. Le rendu est rapide. Genre, vraiment rapide. Le scrollback monte jusqu’à 10 000 lignes et ça ne rame pas. Le moteur de rendu WebGL fait une vraie différence par rapport à l’approche canvas standard.
Onglets et panneaux divisés. Cmd+T pour un nouvel onglet, Cmd+D pour une division verticale, Cmd+Shift+D pour une division horizontale. Vous pouvez renommer les onglets. La gestion des panneaux fonctionne exactement comme on l’attend d’un terminal moderne.

Il a un tour des fonctionnalités intelligentes. Quand vous ouvrez l’app pour la première fois, il vous guide à travers les fonctionnalités intelligentes avec une visite guidée.

Ces fonctionnalités intelligentes incluent les suggestions fantômes depuis votre historique de commandes, la recherche floue dans l’historique avec Ctrl+R, les avertissements pour commandes dangereuses comme rm -rf ou git push --force, et la traduction du langage naturel en commandes.




Un panneau de paramètres complet. Famille de police, taille de police, style de curseur, thèmes de couleurs. Il est livré avec Dracula, Solarized, Monokai et plus encore. Vous pouvez configurer le flou d’arrière-plan, la transparence et les arguments shell.

Recherche de commandes dans le scrollback. Ctrl+F ouvre un overlay de recherche qui vous permet de chercher dans l’historique de votre terminal avec correspondance floue.

Regroupement de sortie en blocs. Les longues sorties de commandes sont regroupées en blocs repliables. Il y a un bouton “Résumer la sortie” pour quand une commande crache 2 000 lignes et que vous voulez juste l’essentiel.

Il fait tourner pico. Il fait tourner vim. Il fait tourner tout ce qu’un terminal devrait faire tourner, parce que c’est un terminal.

Il fait même tourner l’assistant IA de Docker. Les applications TUI interactives complètes fonctionnent sans problème.


Il fait tourner Claude Code à l’intérieur. J’ai utilisé le terminal pour lancer Claude Code afin de construire plus de fonctionnalités pour le terminal. Ça ressemblait à un type très spécifique d’inception.

Installez-le#
C’est une app native, pas un site web. Pas de déploiement Vercel ici. Vous pouvez récupérer la dernière release depuis la page des releases GitHub, ou utiliser les scripts d’installation :
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/nunocoracao/Vibe30-day27-terminal/main/install.sh | bash# Windows (PowerShell)
irm https://raw.githubusercontent.com/nunocoracao/Vibe30-day27-terminal/main/install.ps1 | iexOu compilez depuis les sources si vous voulez :
git clone https://github.com/nunocoracao/Vibe30-day27-terminal.git
cd Vibe30-day27-terminal
npm install
npm run tauri devNécessite Rust 1.77.2+ et Node.js 20+.
Les chiffres#
- 19 tâches Watchfire du scaffold à l’intégration des fonctionnalités intelligentes
- Backend Tauri 2 + Rust avec portable-pty pour de vraies sessions shell
- xterm.js avec WebGL pour un rendu rapide
- 6+ thèmes de couleurs incluant Dracula, Solarized et Monokai
- Pipeline CI/CD avec GitHub Actions compilant pour macOS, Linux et Windows
- Scripts d’installation pour les trois plateformes
Verdict du Jour 27#
Un émulateur de terminal touche tellement de couches. La gestion PTY en Rust. L’IPC entre le backend Rust et le frontend JavaScript via Tauri. Le rendu WebGL pour la performance. Les builds multi-plateformes et la signature de code via CI/CD. Les scripts d’installation qui détectent votre OS et votre architecture.
Et par-dessus tout ça, il a ajouté des fonctionnalités intelligentes. Les suggestions fantômes, la recherche floue, les avertissements pour commandes dangereuses, l’intégration IA. Ce ne sont pas des gadgets. J’ai trouvé les avertissements pour commandes dangereuses vraiment utiles quand j’ai accidentellement tapé quelque chose de destructif pendant les tests.
Le fait que ça fonctionne tout court est impressionnant. Le fait que ça fonctionne assez bien pour que je l’utilise réellement pour lancer Claude Code afin de construire encore plus de ses propres fonctionnalités, c’est autre chose. Je ne vais pas remplacer iTerm avec demain, mais l’écart entre “terminal vibe codé” et “terminal de production” est plus petit que ce que j’attendais.
Jour 27 sur 30. Plus que trois.
Ceci est le jour 27 de 30 Days of Vibe Coding. Suivez l’aventure pendant que je livre 30 projets en 30 jours en utilisant du coding assisté par IA.






