Comment organiser une douzaine de sessions Claude Code actives dans tmux
Quand vous lancez Claude Code dans le terminal pour quelques modifications rapides, tout semble bien rangé. Exécutez la commande, donnez-lui une tâche, attendez la réponse, fermez. Les problèmes commencent quand vous gardez quatre ou cinq projets ouverts en même temps. Dans un dépôt, l'agent refactorise des tests, dans un autre il écrit une migration de base de données, et dans un troisième il exécute une compilation.
En moins d'une demi-heure, le terminal devient un labyrinthe. On ne sait plus où l'agent attend une confirmation de commande, où il exécute encore des scripts, et où il a terminé depuis longtemps et reste inactif. Vous devez parcourir manuellement les fenêtres tmux, perdant du temps à vérifier les statuts.
Tak Matsuyama, auteur du blog devas.life et de plusieurs utilitaires populaires pour Neovim et tmux, a déployé une solution à ce problème. Son plugin tmux-claude-session-manager transforme des fenêtres de terminal dispersées avec des agents en une liste ordonnée avec commutation rapide.
Ce que fait le plugin
Fondamentalement, c'est un gestionnaire de tâches pour Claude Code dans tmux. L'outil combine l'interface fzf, le mécanisme de popup intégré de tmux, et l'API interne de Claude Code.
Vous appuyez sur une combinaison de touches et vous voyez une fenêtre flottante avec une liste de toutes les sessions actives. Chaque processus affiche immédiatement son statut :
- working (l'agent est occupé à générer ou exécuter des commandes) ;
- waiting (une entrée ou confirmation de l'utilisateur est requise) ;
- idle (la session est inactive) ;
- temps depuis la dernière activité de l'agent.
Les agents qui nécessitent votre attention sont automatiquement déplacés en haut de la liste. Un aperçu en direct de l'écran via capture-pane s'affiche à côté. Vous pouvez immédiatement voir quelle question a bloqué l'assistant, sans même basculer vers la session elle-même.
Appuyer sur Entrée vous place directement dans le contexte de la fenêtre souhaitée et ouvre la session dans un cadre popup. Vous avez terminé le dialogue ou l'agent a accompli son travail — appuyez sur la combinaison de touches pour supprimer le processus, et la session se ferme proprement.
Détails intéressants sous le capot
Il n'y a pas de démons personnalisés ni de lourds hooks bash analysant la sortie ici. L'auteur a emprunté une voie plus élégante.
Les versions de Claude Code 2.1.139 et supérieures peuvent exposer des informations sur leurs agents via la commande intégrée . Chaque instance en cours signale son état actuel à un superviseur local. Le plugin lit simplement ce JSON via jq.
Le principal défi technique consistait à faire correspondre les processus aux panes tmux. Sur macOS, par exemple, un pane signale souvent le PID du shell parent plutôt que celui du programme enfant. À l'intérieur du plugin, le script relie les identifiants le long d'une chaîne : -> -> tmux pane.
Grâce à cette liaison, le plugin suit les processus plutôt que les sessions. Si vous avez lancé trois agents différents dans un projet ou lancé Claude dans un pane adjacent sans le plugin, l'outil trouvera quand même chaque processus et l'affichera comme une ligne séparée. L'interrogation complète ne nécessite que trois appels système, donc l'interface fonctionne sans délais.
Autre détail bien pensé : si vous ouvrez le menu de sélection ( + ) alors que vous êtes déjà dans un popup Claude, le plugin détache d'abord le popup actuel, puis agrandit la fenêtre de sélection à la taille complète du terminal externe. Pas de poupées gigognes de cadres rétrécissants.
Installation et configuration de base
Vous aurez besoin de tmux version 3.2 ou supérieure avec support des popups, fzf installé, l'utilitaire jq, et une version récente de Claude Code.
Si vous utilisez le gestionnaire de plugins TPM, ajoutez cette ligne à votre fichier de configuration :
Après cela, appuyez sur + pour le charger.
Par défaut, le plugin utilise deux combinaisons de touches :
- + lance une nouvelle session Claude dans le répertoire courant dans une fenêtre popup (ou se connecte à une existante) ;
- + ouvre le sélecteur fzf avec tous les agents actifs.
Dans la fenêtre de liste, les flèches standard et le filtrage de texte fonctionnent. Entrée bascule vers la session sélectionnée, et arrête le processus de force.
Les paramètres sont simples à écraser. Par exemple, vous pouvez définir des indicateurs de lancement pour Claude lui-même ou modifier les dimensions de la fenêtre :
Pour les amateurs de contrôle modal, le README contient un excellent exemple d'intégration avec une disposition de style vim. Vous pouvez configurer fzf pour que la liste s'ouvre en mode navigation via /, et le passage en mode recherche se fait avec les touches ou :
Cela vaut-il la peine de l'installer
Si vous exécutez Claude Code une fois par semaine pour quelques lignes de code, vous pouvez facilement vous passer du plugin. Un onglet de terminal classique est parfaitement suffisant.
L'outil est utile pour ceux qui utilisent activement l'approche par agent dans le terminal et parallélisent les tâches entre différentes branches ou sous-projets. Le plugin élimine la corvée de trouver le bon onglet et consolide la surveillance des tâches en arrière-plan dans un seul écran clair. La configuration prend quelques minutes, et le code source du script est compact et transparent, sans magie inutile.
Projets similaires
