TERMINAL-BROWSER : un navigateur complet dans votre terminal
📌 TERMINAL-BROWSER est un navigateur web qui s’exécute directement dans votre terminal. Basé sur Chromium, il affiche de vraies pages web en utilisant le protocole graphique kitty, avec une UI construite en Rust et React.
Ce qui m’a frappé en premier, c’est la fluidité. Pas de clignotement, pas de latence visible — le rendu se fait via l’API offscreen d’Electron, qui lit les pixels directement depuis le GPU. Le résultat est étonnamment proche d’un navigateur classique, mais entièrement contenu dans un onglet de terminal.
L’intégration avec les agents codants est l’usage le plus pertinent. La commande terminal-browser action expose une CLI compatible agent-browser : votre agent peut ouvrir une page, cliquer, remplir des formulaires, tester un flux d’achat. Il voit le même navigateur que vous, dans le même onglet. Demandez-lui de créer un plan HTML, il l’ouvre à côté de vous en split pane.
Le fonctionnement technique est élégant. Le protocole kitty (supporté par Ghostty, Kitty, cmux, WezTerm et une cinquantaine d’autres terminaux) permet d’afficher des pixels dans le terminal. Chromium est lancé via Electron en mode offscreen. Les entrées utilisateur — clics, souris, clavier — sont capturées par le terminal, puis converties en événements synthétiques pour Chromium. Pour le scroll et le trackpad, une petite app Swift tourne en arrière-plan pour intercepter les événements OS.
L’UI extérieure du navigateur est dessinée par un moteur graphique Rust. L’interface elle-même est définie en TypeScript via un renderer React personnalisé. Tout — UI et contenu web — est rendu sur le même canvas Rust, ce qui permet de superposer des éléments d’interface par-dessus les pages.
Le SSH fonctionne sans configuration : lancez terminal-browser open localhost:8080 sur un serveur distant et vous voyez le site, sans port forwarding. Pratique pour vérifier un déploiement en cours.
Points clés :
- 🖥️ Chromium complet dans un onglet de terminal
- 🤖 CLI
actionpour que votre agent contrôle le navigateur - ⚡ Rendu GPU via Electron offscreen — pas de perte de frames
- 🔧 UI Rust + React avec renderer personnalisé
- 🌐 Fonctionne sur SSH sans port forwarding
- 📦 Supporte Ghostty, Kitty, cmux, WezTerm et 50+ terminaux
La roadmap mentionne le support Linux (en PR), les extensions Chrome et un mode design. Pour l’instant, c’est macOS uniquement. L’installation se fait via un simple curl | bash.
J’ai trouvé l’approche intéressante pour le workflow agent + site web côte à côte. Si vous travaillez avec un coding agent et que vous voulez voir ce qu’il fait en temps réel, TERMINAL-BROWSER remplit ce rôle sans quitter le terminal. Le projet est jeune (631 stars, MIT), mais la technique est solide.
Sources :
