N. Corbellari
← Notes

Outil · IA

Herdr le multiplexeur de terminal agentique

Avoir son environnement de développement, tous ses agents IA en un endroit, c'est possible. Aujourd'hui, parlons de Herdr.

Introduction

Aujourd’hui, nous allons parler de Herdr, un multiplexeur de terminal conçu spécialement pour faciliter l’accès aux agents et sessions IA.

Interface générale de Herdr

C’est quoi un multiplexeur de terminal ?

Le terme “multiplexeur de terminal” peut paraître barbare. En réalité, l’explication est simple, un multiplexeur de terminal permet de créer et gérer différentes sessions de terminal sur une seule fenêtre. Il en existe d’autres tels que tmux.

Pourquoi utiliser un multiplexeur de terminal ?

C’est vrai après tout, pourquoi avoir plusieurs sessions de terminal dans la même fenêtre ? Pour un développeur, cela est extrêmement utile. Il est possible de contrôler et vérifier simultanément différentes parties d’un projet sans avoir à jongler entre les différentes fenêtres.

Exemple concret

Dans cet exemple, on a un projet avec un backend utilisant Django et un frontend utilisant Next.js. Le projet est simple : un site web de review.

Imaginons que je souhaite lancer le projet, le multiplexeur nous permet d’avoir rapidement une vue sur les serveurs backend et frontend de développement. En effet, on divise un panneau en deux pour avoir en haut le frontend et en bas le backend :

Panneau divisé avec le frontend en haut et le backend en bas

Imaginons maintenant que l’on souhaite simultanément créer un shell Django pour avoir accès en direct à notre base de données, il suffit de séparer verticalement le panneau pour avoir à nouveau un terminal.

Panneau séparé verticalement pour ajouter un shell Django

Il existe plein d’autres fonctionnalités intéressantes liées à un multiplexeur :

  • Éviter de perdre une session SSH lorsque l’on se fait déconnecter
  • Rapidité d’exécution avec les raccourcis clavier

Installer et tester Herdr

Herdr est disponible sous Windows, macOS et Linux. L’installation est relativement simple, une fois un terminal ouvert, on entre la commande :

# Linux et macOS
curl -fsSL https://herdr.dev/install.sh | sh

# Windows
powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"

Et l’installateur réalise son travail. Il est recommandé de fermer et d’ouvrir un nouveau terminal ensuite pour relancer la configuration bash/PowerShell avec le PATH à jour.

Herdr est un programme qui consomme peu. Le programme est écrit en Go, donc ultra rapide, et le binaire pèse à peine 21 Mo.

Consommation et poids du binaire Herdr

Initiation

Pour lancer Herdr, on entre dans le terminal :

herdr

Herdr se lance et on voit l’écran suivant :

Écran de lancement de Herdr

Une fois validé, on a l’espace de travail général de Herdr.

Disposition de l’outil

Disposition générale de l’outil Herdr

L’espace est divisé en quatre parties principales :

Partie 3 - Disposition terminal

C’est ici que vous allez retrouver vos différents terminaux, vous pourrez ici les diviser horizontalement et verticalement et même vous déplacer de l’un à l’autre sans utiliser votre souris.

Partie 4 - tabs

Les tabs représentent un agencement de terminal. On peut avoir différentes fenêtres et leur donner un nom. Par exemple, dans ma configuration quotidienne, j’ai cette disposition de tabs :

Exemple de disposition des tabs

Partie 1 - spaces

Cette partie permet de créer des espaces de travail. Les espaces de travail peuvent être :

  • définis par l’utilisateur
  • définis par worktree (on en parlera plus tard) Un espace de travail est une configuration de tabs précise.
Partie 2 - session IA

Ici, on va retrouver les différentes sessions IA et leur état, on en reparlera plus tard.

En pratique

C’est en forgeant que l’on devient forgeron, donc utilisons Herdr. Je suis un développeur et je travaille sur la bibliothèque numérique vue précédemment.

Ma manière de travailler (hypothétique) est la suivante :

  • Je développe avec l’IA pour m’assister notamment en utilisant opencode
  • Je fais tourner deux serveurs de développement afin de tester le projet sur ma machine
  • J’ai un terminal pour développer en utilisant Neovim (pas de jugement).

Une des choses importantes à savoir est que Herdr fonctionne avec des commandes qui sont déclenchées via le clavier. Le format est toujours :

<prefix> + <touche_clavier>

Par défaut <prefix> est Ctrl+b

Agent IA

La première chose que je peux faire est de créer un espace de travail dédié à mon IA opencode. Pour cela, je presse <Ctrl+b> + c, un dialogue s’affiche :

Dialogue de création d’un espace de travail

Il vous suffit de choisir le nom de l’espace de travail :

Choix du nom de l’espace de travail

Et le nouvel onglet s’affiche en haut dans la barre. Pour y accéder, il suffit de cliquer dessus.

Nouvel onglet affiché dans la barre du haut

Et vous pouvez lancer opencode, Claude ou tout autre agent IA à l’intérieur :

opencode .
pi
claude
codex

Vous remarquerez qu’une fois lancé, un “agent” apparaît en bas à gauche de l’interface :

Agent détecté en bas à gauche de l’interface

Le petit rond à gauche du nom de l’agent indique son état :

  • rond vert creux (cas actuel) : l’agent n’est pas en train de travailler
  • rond jaune plein : l’agent est en train de travailler
  • rond rouge plein : l’agent est bloqué et nécessite une intervention humaine
Pourquoi c’est utile ?

On voit en un clin d’œil où en sont les agents et leur état. En ce moment même, j’utilise cette fonctionnalité, j’écris cette note de blog en attendant que l’agent ait fini d’implémenter une feature sur mon SaaS et je vois instantanément s’il nécessite une intervention ou non. Par conséquent, je ne perds pas de temps à attendre que l’agent ait fini ou en laissant l’agent inactif longuement. Le point fort, c’est que l’on peut voir tous ces agents en un clin d’œil.

Espace de développement

Maintenant, on peut créer un nouvel espace pour notre espace développement. De nouveau :

<Ctrl+b> + c

Je vais l’intituler “nvim” et lancer nvim à l’intérieur

Espace de développement avec nvim

Et je peux coder à l’intérieur.

C’est tout ?

Évidemment : non. La force de Herdr réside, tout comme tmux, dans le fait que vous n’avez pas à toucher le clavier si vous connaissez bien l’outil. Contrairement à tmux, où pour obtenir les commandes il faut se rendre sur le site, Herdr est pensé puisque si vous savez ce que vous voulez faire, mais que vous ne savez pas comment le faire, il vous suffit :

  1. de presser <Ctrl + b> + ?
  2. appuyer sur ?
  3. écrire ce que vous cherchez Close pane par exemple

Recherche d’une commande avec Close pane

De cette manière, vous apprenez de manière autodidacte l’outil sans faire des va-et-vient vers votre interface web.

Git

C’est un outil que vous utilisez normalement beaucoup en tant que développeur. Herdr propose une intégration bien faite avec les worktrees.

C’est quoi un worktree ?

Un worktree, c’est une branche Git mais qui n’est pas dans le même dossier que le projet actuel. C’est une fonctionnalité qui a été démocratisée avec les agents IA car cela permet à plusieurs agents de travailler sur différentes features (puisqu’ils ne travaillent pas dans le même dossier).

Par exemple, dans notre projet, imaginons que l’on souhaite travailler sur une fonctionnalité co-authoring.

Première étape, on crée un worktree :

git worktree add <dossier_du_worktree> -b <nom_de_la_branche>

Création d’un worktree Git

Ensuite, on presse <Ctrl+b> + Shift + n qui permet de créer un nouvel espace de travail Et, à gauche, dans l’onglet spaces, vous devez voir un nouvel élément (dans mon cas, je l’ai renommé hobby, car j’écris ces lignes dans mon temps libre)

Nouvel élément dans l’onglet spaces

C’est quoi l’intérêt de ce que l’on fait ?

Très bonne question et on peut y répondre dès à présent. Ce qui est intéressant maintenant, c’est qu’en faisant un clic droit sur cet espace, on voit Open worktree

Menu Open worktree au clic droit

Et en cliquant dessus, on peut sélectionner notre worktree.

Sélection du worktree

Et en cliquant sur le nouveau worktree, on voit un nouvel espace sous-jacent à main qui se crée.

Nouvel espace sous-jacent à main

On voit qu’en cliquant dessus, un nouvel espace vierge apparaît. On peut donc personnaliser les espaces selon les worktrees.

C’est excellent car cela permet de personnaliser l’espace de travail selon la feature. Imaginons, je suis en train de créer une pipeline CI dans mon projet. Je peux alors créer un terminal avec

docker compose logs -f

pour voir en temps réel ce que ma CI fait.

Deux secondes plus tard, je retourne sur le worktree feature/tests_frontend où je peux exécuter mes tests Playwright en deux secondes en faisant flèche du haut puis Entrée (car le terminal est propre à ce worktree et contient uniquement les commandes de cet espace worktree)

Juste après, je peux retourner dans le worktree docs et dire à l’agent IA que la doc qu’il a écrite n’est pas incroyable, et lui demander d’améliorer certains passages.

Conclusion

Dans cette note, nous n’avons qu’effleuré les fonctionnalités de Herdr. Je n’ai même pas parlé de son écosystème de plugins ultra riche, ni même des fonctionnalités avancées vis-à-vis des agents IA. C’est un outil très utile et polyvalent, surtout pour les DevOps et les développeurs.

Si vous souhaitez en apprendre plus sur le sujet, je vous redirige vers le site de Herdr même.