Trois agents qui tournent, trois onglets de terminal, et cette question qui revient toutes les deux minutes : lequel attend quelque chose de moi ? Avec Claude Code, ça arrive vite. Un agent corrige un bug sur un projet client, un autre ajoute une fonctionnalité sur un outil perso, un troisième relit une migration. Chacun finit par s'arrêter pour demander une permission, poser une question ou annoncer qu'il a terminé. Et pendant ce temps, moi, je fais le tour des onglets comme un veilleur de nuit avec sa lampe torche.
Depuis la mi-septembre, c'est Herdr qui fait la ronde à ma place. C'est un gestionnaire de terminal pensé pour les agents IA de code, et je vous avoue que je ne m'attendais pas à ce qu'un outil aussi discret change autant ma façon de travailler.
Un berger, pas un énième terminal
Le nom dit tout. Herd, c'est le troupeau en anglais, et Herdr se comporte en berger : il ne fait pas le travail des moutons, il sait juste en permanence où chacun se trouve et lequel est coincé dans la clôture.
Techniquement, on pense d'abord à tmux. Herdr en reprend les réflexes (un préfixe ctrl+b, des onglets, des panneaux, des sessions qu'on détache et qu'on rattache) dans un unique binaire Rust, sans Electron, sous licence Apache 2.0. La différence tient en une phrase. Tmux sait qu'il y a des terminaux. Herdr sait qu'il y a des agents dedans.
Pour l'installer sous Linux :
curl -fsSL https://herdr.dev/install.sh | sh
# ou, si vous préférez un gestionnaire de paquets
brew install herdr
mise use -g herdrVieux réflexe d'admin : avant de piper un script dans sh, ouvrez-le dans le navigateur et lisez-le. Ça prend trente secondes, et c'est valable pour n'importe quel outil, pas seulement celui-ci.
Un workspace par dépôt, un onglet par tâche
Mon organisation est devenue très simple. Chaque dépôt a son workspace, et dans chaque workspace, un onglet par tâche, renommé avec ce qu'il fait. Chez moi, ça donne par exemple un onglet « Add-new-plugin-lighthouse » dans le dépôt d'un outil de mesure des Core Web Vitals, un onglet « Booking » dans un projet client, et ce site dans un troisième workspace. D'ailleurs, l'agent qui m'a aidé à préparer cet article tournait lui-même dans un panneau Herdr :
$ env | grep HERDR
HERDR_PANE_ID=w7:p1
HERDR_TAB_ID=w7:t1
HERDR_WORKSPACE_ID=w7
TERM_PROGRAM=herdrCes variables ne sont pas là pour décorer. Elles permettent à un agent de savoir où il se trouve et de piloter Herdr par sa CLI ou son API socket, pour ouvrir un panneau, envoyer un prompt à un autre agent, ou attendre qu'il ait fini. J'y reviendrai un jour, quand j'aurai assez joué avec pour avoir un avis.
Côté clavier, si vous venez de tmux, vous serez chez vous : tout passe par le préfixe ctrl+b, qu'on relâche avant d'appuyer sur la touche suivante. Et si un raccourci vous échappe, ctrl+b ? affiche la liste de ceux qui sont actifs. Voici ceux que j'ai fini par connaître par cœur, rangés par usage.
Pour les onglets et les workspaces :
| Raccourci | Action |
|---|---|
ctrl+b c | Créer un onglet |
ctrl+b shift+t | Renommer l'onglet |
ctrl+b shift+x | Fermer l'onglet |
ctrl+b 1 à 9 | Aller directement à l'onglet 1 à 9 |
ctrl+b n / ctrl+b p | Onglet suivant / précédent |
ctrl+b shift+n | Nouveau workspace |
ctrl+b w | Sélecteur de workspaces |
ctrl+b q | Détacher la session (tout continue de tourner) |
Pour découper l'écran, le jour où l'agent a besoin d'un voisin qui fait tourner les tests :
| Raccourci | Action |
|---|---|
ctrl+b v | Couper le panneau à droite |
ctrl+b - | Couper le panneau en bas |
ctrl+b h / j / k / l | Déplacer le focus, à la façon de Vim |
ctrl+b z | Zoomer le panneau en plein écran (et dézoomer) |
ctrl+b x | Fermer le panneau |
ctrl+b b | Masquer ou afficher la barre latérale |
Et pour retrouver ses agents, les deux qui comptent vraiment : ctrl+b g ouvre le sélecteur Goto, et ctrl+b o vous emmène droit sur l'agent qui vient de lever la main. Celui-là, je l'utilise plus que tous les autres réunis. On comprend pourquoi juste après.
Savoir qui attend, sans faire la ronde
Herdr attribue à chaque agent un état : en train de travailler, bloqué, terminé ou inactif. La barre latérale l'affiche (chez moi sous forme de symboles), et c'est tout le sel de l'outil. Un coup d'œil, et je sais quel agent a besoin de moi.
Pour les captures de cet article, j'ai monté une session de démo avec trois petits dépôts jetables et un agent Claude Code dans chacun. Le premier doit créer un fichier de module Magento et attend ma permission, le deuxième a résumé un README et a fini, le troisième rédige encore un plan de tests :

Le mécanisme mérite qu'on s'y arrête, parce qu'il explique aussi ses limites. Sans intégration particulière, Herdr repère le processus de l'agent dans le panneau, puis lit le bas de l'écran tel qu'il est affiché, en le comparant à des règles de détection écrites pour chaque agent connu. Il en reconnaît une vingtaine : Claude Code, Codex, Copilot CLI, Gemini CLI, OpenCode, Cursor Agent, et d'autres. L'état « bloqué » est volontairement strict : Herdr ne l'affiche que si l'écran ressemble à une demande de permission ou à une question qu'il connaît.
La conséquence est un peu contre-intuitive. Un prompt inhabituel peut apparaître comme « inactif » alors que l'agent attend bel et bien une réponse. La documentation le dit elle-même : ne vous fiez pas à un « inactif » pour envoyer quelque chose à l'aveugle. En cas de doute, une commande explique ce que Herdr a vu et pourquoi il a conclu ainsi :
herdr agent explain w7:p1Mieux vaut un outil qui affiche ses doutes qu'un outil qui se trompe avec aplomb.
La notification qui vient vous chercher
Voir les états, c'est bien. Ne plus avoir à les regarder, c'est mieux. Ma configuration tient en quelques lignes, et la plus importante est la première du bloc [ui.toast] :
[ui.toast]
delivery = "system"
[theme]
name = "one-dark"
[ui]
status_indicators = "symbols"Avec delivery = "system", Herdr passe par les notifications du bureau. Je peux donc être dans le navigateur, en train de relire une PR ou de répondre à un mail, et une bulle m'annonce qu'un agent a terminé ou qu'il est bloqué. Je reviens dans le terminal, ctrl+b o, et me voilà sur le bon panneau, au bon endroit, sans avoir cherché.
Quand plusieurs agents réclament de l'attention en même temps, je passe plutôt par ctrl+b g. Le sélecteur Goto liste tous les agents, workspace par workspace, avec leur état et leur branche git. On y cherche avec /, et quatre touches filtrent la liste : b pour les bloqués, w pour ceux qui travaillent, i pour les inactifs, d pour ceux qui ont terminé (a pour tout réafficher).

ctrl+b g) : chaque agent, son workspace, sa branche et son état.Ça paraît anodin. Sur une journée, c'est la différence entre surveiller des agents et travailler avec eux.
Copier-coller sans lâcher le clavier
Un agent vous sort une stack trace, une commande ou un bout de diff, et il faut le récupérer. C'est là que beaucoup de multiplexeurs agacent, parce que le copier-coller du terminal ne marche plus comme d'habitude. Herdr propose deux chemins.
Le plus simple, c'est la souris. Sélectionnez le texte en le glissant, et il part directement dans le presse-papiers : pas de ctrl+c, pas de mode spécial, un petit toast confirme la copie. Le double-clic sélectionne un mot. Pour coller, rien ne change, c'est le raccourci de votre terminal : ctrl+shift+v sous Linux, cmd+v sur Mac. Si cette copie automatique vous dérange, copy_on_select = false dans la configuration garde la sélection affichée jusqu'à ce que vous fassiez ctrl+c.
Le second chemin, celui que je préfère dès que le texte dépasse l'écran, c'est le mode copie, calqué sur celui de tmux :
| Raccourci | Action |
|---|---|
ctrl+b [ | Entrer en mode copie |
h / j / k / l | Déplacer le curseur |
w / b / e | Sauter de mot en mot |
ctrl+u / ctrl+d | Défiler d'une demi-page |
/ / ? | Chercher vers le bas / vers le haut |
n / N | Occurrence suivante / précédente |
v ou espace | Commencer la sélection |
y ou entrée | Copier la sélection |
q ou échap | Sortir sans rien copier |

ctrl+b [) : une recherche avec ?README, la sélection démarrée avec v, et l'aide en bas.Deux détails m'ont surpris au début. Le mode copie ne met pas l'agent en pause : sa sortie continue d'arriver pendant que vous sélectionnez, ce qui est plutôt une bonne nouvelle. Et comme ctrl+b est le préfixe, il ne remonte pas d'une page comme dans Vim. Utilisez PageUp ou ctrl+u, ou changez de préfixe si ça vous manque vraiment.
Rien ne meurt, ou presque
Les terminaux ne vivent pas dans la fenêtre que vous voyez, mais dans un petit serveur Herdr qui tourne en arrière-plan. Fermer le terminal par mégarde ne tue donc rien. Un ctrl+b q pour détacher, puis herdr pour revenir, et tout est là : les agents ont continué à travailler pendant votre absence, exactement comme une session tmux.
Le « presque » mérite d'être dit, parce que c'est un détail qui m'avait échappé. Après un redémarrage de la machine, les processus d'origine ne survivent pas, évidemment. Herdr restaure la disposition (workspaces, onglets, panneaux), mais pour qu'un agent reprenne sa conversation là où il l'avait laissée, il faut que l'intégration de cet agent soit installée. En préparant cet article, je me suis aperçu que je ne l'avais jamais fait pour Claude Code :
$ herdr integration status
claude: not installed (/home/gabriel/.claude/hooks/herdr-agent-state.sh)
codex: not installed (/home/gabriel/.codex/herdr-agent-state.sh)
...
$ herdr integration install claudeL'intégration fait remonter l'état directement depuis l'agent, au lieu de le déduire de l'écran. Les états deviennent plus fiables, et la reprise après redémarrage devient possible. Deux mois que je m'en passais sans le savoir. Faites-le dès l'installation, pas comme moi.
Herdr se connecte aussi à des machines distantes en SSH : leurs agents apparaissent dans la même barre latérale que les agents locaux. Je ne l'utilise pas encore, mes agents tournent tous en local, donc je me garde d'en dire plus.
Ce que j'en pense, après deux mois
Je me méfie des outils « pour l'IA » qui sortent chaque semaine, et la plupart ne passent pas le cap du troisième jour chez moi. Herdr, lui, est resté, sans doute parce qu'il ne prétend pas rendre les agents plus intelligents. Il règle un problème bien plus terre à terre, celui de l'attention : savoir où regarder, et à quel moment.
Si vous faites tourner un seul agent à la fois, vous n'en avez probablement pas besoin. À partir de deux, essayez-le une journée. Et pensez à installer l'intégration.