smux : automatiser tmux et faire collaborer plusieurs agents IA dans le terminal
https://github.com/ShawnPana/smux
📌 smux transforme tmux en espace de travail prêt pour l’automatisation: installation en une commande, configuration clavier sans préfixe, navigation rapide entre panes et surtout tmux-bridge pour laisser un agent lire un pane, y taper du texte ou envoyer des touches sans bricoler une intégration complexe. Pour un usage quotidien, cela simplifie autant l’organisation d’un terminal personnel que la coordination entre plusieurs assistants IA lancés côte à côte.
L’installation est volontairement courte. Une seule commande télécharge la configuration tmux, le binaire tmux-bridge et la commande smux, puis place l’ensemble dans ~/.smux/. Si tmux n’est pas déjà présent, le script tente de l’installer automatiquement via Homebrew sur macOS ou via apt, dnf, pacman ou apk sur Linux. Sur Linux, un outil presse-papiers peut aussi être installé pour garder un comportement pratique quand on sélectionne du texte à la souris. Ce démarrage réduit le temps perdu à construire un environnement tmux maison avant de pouvoir l’utiliser.
Sur le poste local, smux cherche surtout à rendre tmux plus direct. Les raccourcis Option permettent de naviguer entre les panes avec i, j, k, l, d’ouvrir un nouveau split, de fermer un pane, de changer de layout ou de basculer entre les fenêtres sans passer par la séquence de préfixe traditionnelle. Pour quelqu’un qui passe déjà ses journées dans le terminal, ce détail change le rythme d’usage. Les panneaux deviennent des espaces de travail permanents et non un outil qu’on évite parce que sa gestuelle reste trop lourde.
L’autre apport majeur est tmux-bridge. Cet utilitaire expose des commandes très simples comme read, type, keys, list, name ou resolve. En pratique, cela veut dire qu’un agent ou un script Bash peut inspecter les dernières lignes d’un pane, écrire une commande dans ce pane puis simuler l’appui sur Entrée, Échap ou Ctrl+C. Ce modèle suffit déjà à couvrir beaucoup de cas utiles: demander une revue à un autre agent ouvert dans le pane voisin, relancer une commande bloquée, injecter une réponse dans un REPL, ou encore piloter un shell interactif sans dépendre d’une API spécifique à l’outil exécuté.
points clés
- 🧩 Installation en une commande avec configuration tmux, CLI
smuxet binairetmux-bridge - ⌨️ Raccourcis Option sans préfixe pour naviguer, créer des panes et changer de fenêtres plus vite
- 🤖 Pilotage inter-panes pour agents IA, scripts Bash et shells interactifs
- 🧠 Convention de lecture avant action qui limite les erreurs de saisie et de ciblage
- 🐧 Compatibilité macOS et Linux avec installation automatique de tmux selon le gestionnaire de paquets disponible
Dans un usage concret, smux est pertinent dès qu’il faut garder plusieurs contextes de travail actifs. Un pane peut contenir l’éditeur ou un shell applicatif, un autre une suite de tests, un troisième un agent chargé de relire un diff et un quatrième un agent qui applique un correctif. Avec tmux-bridge, un agent peut demander à un autre de vérifier un fichier précis puis récupérer la réponse dans son propre pane. Cela reste du terminal, donc l’approche est sobre et peu coûteuse en ressources, mais elle donne une base réelle pour organiser une collaboration instrumentée entre outils.
Le projet reste local. Rien dans le flux présenté n’impose un service cloud ou une exécution distante. Les échanges passent par tmux et des commandes shell, ce qui est intéressant pour la confidentialité: le contenu manipulé reste dans la session de la machine tant que les agents utilisés eux-mêmes ne l’envoient pas ailleurs. Smux ne promet pas une mémoire applicative autonome ou un stockage centralisé des conversations; il s’appuie plutôt sur l’état visible des panes et sur des conventions d’interaction. C’est plus simple, mais aussi plus prévisible pour qui veut garder le contrôle sur son environnement.
Le démarrage est rapide. Il faut disposer de macOS ou Linux, accepter l’installation de tmux si nécessaire, lancer le script d’installation puis ouvrir une session tmux. Ensuite, la prise en main passe par quelques commandes de base: tmux-bridge list pour voir les panes, tmux-bridge read pour lire un contexte, tmux-bridge type pour injecter une commande, et tmux-bridge keys pour l’exécuter. Le projet mentionne aussi l’installation d’un skill via npx skills add ShawnPana/smux, ce qui élargit l’usage à plusieurs assistants capables d’exécuter Bash.
Au final, smux n’essaie pas de réinventer un environnement agentique complet. Il prend un composant déjà éprouvé, tmux, puis ajoute ce qu’il faut pour le rendre à la fois agréable à utiliser manuellement et exploitable par des agents. Pour qui veut un terminal plus structuré, plus rapide et surtout capable de faire circuler des actions entre panes sans usine à gaz, c’est un projet très concret.
