Aller au contenu principal

Superviser plusieurs sessions Claude Code : on a fini par construire l'outil

par Paul Mantez, Co-fondateur & Développeur

Aby Claude Watcher — vue liste compacte

Aby Claude Watcher

Dashboard macOS open-source pour superviser vos sessions Claude Code — GitHub

Si vous utilisez Claude Code au quotidien avec plusieurs sessions ouvertes en parallèle, vous connaissez déjà la situation : vous lancez une grosse tâche dans un terminal, vous partez coder dans un autre, et vingt minutes plus tard vous réalisez que Claude vous attend silencieusement — il a besoin d'une permission pour continuer. Le temps se perd, le flow aussi.

C'est pour régler ce problème qu'on a construit Aby Claude Watcher, un petit dashboard macOS qui affiche en temps réel l'état de toutes vos sessions Claude Code. On le publie aujourd'hui en open source (MIT) sur notre GitHub.

Trois sessions surveillées en direct — états, outil en cours, tokens, branche git

Le problème : Claude Code, c'est génial, mais ça se perd dès qu'on multiplie les sessions

Claude Code est devenu indispensable dans notre quotidien de dev : refactoring, scripts one-shot, automatisations, tests, génération de code — on l'utilise partout. Mais dès qu'on jongle entre deux, trois, cinq sessions actives, on touche à la limite d'un outil pensé pour tourner dans un unique terminal.

Concrètement, voici ce qu'on vit tous les jours :

  • Une session Agent qui tourne depuis quinze minutes sur une grosse refacto — on ne sait pas si elle avance encore.
  • Une autre qui a fini sa réponse et attend qu'on valide une permission Bash — mais on est dans un autre onglet.
  • Une troisième en erreur, qu'on ne découvre que quand on y retourne.

Le résultat : on perd du temps à faire des allers-retours entre terminaux, et surtout on rate des prompts de validation. Claude attend. On code autre chose. Tout le monde stagne.

Ce que fait Aby Claude Watcher

L'app tourne en tâche de fond sur macOS et scanne ~/.claude/sessions/ en permanence. Pour chaque session Claude Code détectée, elle lit le fichier JSONL associé et en déduit un état courant parmi cinq possibles :

ÉtatCouleurCondition
thinkingvioletClaude est en train de réfléchir
runningvertun outil est en cours d'exécution (Bash, Read, Agent…)
waitingbleuClaude a fini et attend votre input
errorrougeune erreur a été détectée
completedgrisla session s'est terminée proprement

Chaque état a sa couleur, son animation, et déclenche — ou non — une notification. Le cœur de l'app, c'est cette machine à états. Elle a été pensée pour être honnête : on ne prétend pas détecter des choses qu'on ne peut pas détecter depuis le JSONL. Quand Claude attend une permission, l'info n'arrive pas dans le fichier de log avant que l'utilisateur l'accepte — donc on ne peut pas distinguer « en train d'exécuter un outil » et « en train d'attendre une validation ». Plutôt que de mentir avec des heuristiques bancales, on expose les signaux fiables.

Trois vues : grille, compacte ou micro

On a trois usages très différents en tête :

  • Grille — la vue riche, avec métadonnées complètes (durée, tokens, modèle, branche git, outil en cours, coût estimé). C'est la vue qu'on ouvre en plein écran quand on veut superviser.
  • Liste compacte — une fenêtre plus petite qu'on épingle en always-on-top dans un coin de l'écran. Le nom de la session, son état, et les actions principales (focus terminal, notif, plus) directement accessibles.
  • Micro — la vue ultra-minimaliste, vraiment juste un dot de couleur + le nom. Click sur la ligne pour focus le terminal. Conçue pour vivre dans un coin de l'écran pendant que vous codez ailleurs — l'awareness ambiante sans pollution visuelle.

Les trois vues se switchent en un clic, et chacune retient sa propre taille de fenêtre.

Vue compacte — épinglée always-on-top dans un coin de l'écran
Vue micro d'Aby Claude Watcher
Vue micro — l'awareness ambiante, juste dot + nom

On a volontairement évité tout framework côté renderer : HTML, CSS, JavaScript vanilla. Pas de React, pas de build step, pas de watchers. Ouvrir ui/index.html dans Chrome donne déjà 90% du rendu.

Focus terminal : la feature qui change tout

Voici la feature qu'on utilise cent fois par jour : quand une session passe en waiting, un clic sur l'icône terminal de sa card ramène la fenêtre exacte du terminal qui l'a lancée au premier plan.

Ça marche avec neuf terminaux différents : iTerm2, Terminal.app, Warp, VSCode, Cursor, Ghostty, kitty, WezTerm et Hyper. La technique derrière : on remonte l'arbre des processus depuis le PID de la session Claude jusqu'au terminal hôte, puis on le focus via AppleScript. Pour VSCode et Cursor, on cible la window helper spécifique, pas juste l'app.

Et pour que ce soit parfaitement précis (la bonne fenêtre, le bon onglet), on fournit deux wrappers shell optionnels :

cc       # démarre une nouvelle session Claude Code
cwa      # reprend la dernière session

Ces wrappers communiquent avec l'app via une socket Unix locale (/tmp/aby-claude-watcher.sock) et enregistrent l'identifiant de la fenêtre terminale au moment du lancement. Résultat : le bouton « Focus terminal » ne loupe plus jamais sa cible, même si vous avez quinze onglets ouverts.

Local-first, zéro télémétrie

C'est un point auquel on tient : rien ne sort de votre machine. Pas de métriques, pas d'analytics, pas de phone-home. Le seul appel réseau sortant, c'est quand vous cliquez manuellement sur Vérifier les mises à jour dans les paramètres — une requête HTTPS vers l'API GitHub pour voir si une nouvelle release existe. C'est tout.

La config utilisateur (sessions, noms personnalisés, position de la fenêtre, langue, son, etc.) reste sur votre machine dans ~/Library/Application Support/aby-claude-watcher/config.json.

Comment on l'installe

L'app est disponible sur la page Releases du repo GitHub. On télécharge le .dmg, on drag dans /Applications, et au premier lancement, on fait clic-droit → Ouvrir au lieu du double-clic.

Pourquoi ? Parce qu'on n'a pas encore signé le build avec un Apple Developer ID (c'est payant et on n'a pas encore franchi le pas). macOS Gatekeeper bloque donc le double-clic par défaut. Le clic-droit → Ouvrir est le bypass officiel d'Apple, à faire une seule fois — ensuite l'app se lance normalement.

Pour les plus curieux, tout est aussi installable depuis les sources :

git clone https://github.com/aby-agency/aby-claude-watcher.git
cd aby-claude-watcher
npm install
npm start

Open source, MIT, pull requests bienvenues

Le projet est sous licence MIT et entièrement ouvert. Le README.md détaille l'architecture (Electron + watcher JSONL + socket Unix + AppleScript), les raccourcis clavier, la FAQ, et le fichier CLAUDE.md documente les décisions d'architecture — notamment pourquoi on a viré l'état « idle » et la feature « stuck hint » qui généraient trop de faux positifs pendant les runs longs de subagents.

Si vous rencontrez un bug, si une feature vous manque, si vous voulez porter l'app sur Linux ou Windows — les issues et PRs sont ouvertes.

En bref

Aby Claude Watcher, c'est l'outil qu'on aurait aimé avoir dès qu'on a commencé à enchaîner plusieurs sessions Claude Code par jour. On l'a construit pour nous, on le peaufine depuis quelques semaines en interne, et maintenant on vous le donne.

Si vous bossez avec Claude Code au quotidien, essayez-le. Et si vous pensez qu'il manque quelque chose, dites-le-nous sur GitHub.

Un projet autour de Claude, de l'IA, ou de l'automatisation ? Parlons-en.

Plus d'articles

Les agents autonomes Salesforce : un nouveau collaborateur intelligent

Définition, cas d'usage, fonctionnement, garde-fous et plateforme Agentforce : tout ce qu'il faut savoir sur les agents autonomes dans Salesforce.

Voir plus

Créer des prompts efficaces et sûrs avec Salesforce

Avec Prompt Builder et la couche de confiance Einstein, Salesforce transforme la manière de concevoir des prompts IA fiables et personnalisés.

Voir plus

Nous contacter

Un projet ? Parlons-en.

On répond en moins de 24h.