SFEIR
Technologie

Herdr

Multiplexeur de terminaux en Rust : un serveur en arrière-plan possède les sessions des agents de codage et signale lequel est bloqué.

SFEIR AI · Mis à jour le 29 août 2026

Un serveur qui possède les terminaux des agents

Herdr est un multiplexeur de terminaux écrit en Rust et distribué en un seul binaire, conçu pour les postes qui font tourner plusieurs agents de codage en parallèle. Le dépôt le résume en une ligne : « the runtime your coding agents live on ». Un serveur persistant détient les pseudo-terminaux ; le client d'interface n'est qu'une vue attachée, qu'on ferme et qu'on rouvre sans interrompre le travail.

La documentation pose le contrat : « Herdr keeps panes running in a background server. Your terminal client can detach and reconnect later. » Le détachement se fait au raccourci ctrl+b q, les agents continuent, et la commande herdr réattache. Après un redémarrage du serveur, la forme de session sauvegardée est restaurée ; la reprise native d'une session d'agent dépend, elle, de l'intégration officielle de cet agent.

La reprise à distance suit la même logique : herdr --remote user@host transforme le poste local en client léger qui se connecte en SSH, démarre ou rattache le serveur distant et rapatrie l'interface. Windows fonctionne comme client depuis la version 0.8.2, qui l'a sorti de bêta, mais pas comme hôte distant.

États d'agents et détection en trois étages

La fonction qui distingue Herdr d'un multiplexeur classique est l'attribution d'un état à chaque pane (working, blocked, done, idle), et le tri de l'interface sur cet état plutôt que sur l'ordre des onglets. L'outil transforme une grille de terminaux en file d'attente d'attention.

La détection est documentée en trois étages, du moins précis au plus fiable :

L'éditeur documente la limite du deuxième étage : « Blocked detection is deliberately strict for screen-manifest agents », et une invite inhabituelle « may initially show as idle instead of blocked until Herdr learns that screen shape ». La conséquence est bornée à l'affichage et aux attentes, sans envoi d'entrée ni action destructive. Une automatisation bâtie sur ces états vaut donc ce que vaut l'étage qui les produit.

  • Le processus au premier plan dans le pane, qui identifie l'agent en cours d'exécution.
  • Les screen manifests, règles TOML évaluées contre un instantané du bas du buffer, qui classent en idle, working ou blocked.
  • Les intégrations officielles, hooks de cycle de vie qui rapportent l'état de manière autoritative ; complets, ils deviennent la seule source et le repli sur les manifests est ignoré.

Une API socket qui laisse un agent en piloter d'autres

Herdr expose une API locale en JSON ligne à ligne, sur socket Unix ou named pipe sous Windows, avec un mode requête-réponse et des abonnements à événements. Les méthodes couvrent la topologie du poste : création d'espaces de travail, d'onglets et de panes, gestion des worktrees git (worktree.create, worktree.remove), démarrage d'un agent, envoi d'un prompt, lecture du contenu d'un pane, attente d'un changement d'état.

Un agent coordinateur peut ainsi ouvrir un pane, y démarrer un second agent, lui transmettre une consigne et attendre qu'il soit done ou blocked. La documentation précise la nature de l'attente : « Agent waits observe semantic state, not arbitrary command completion. » L'attente porte sur un état sémantique d'agent, sous la réserve de fiabilité ci-dessus.

Cette surface est aussi une surface d'exécution : une API locale capable de démarrer des agents, de créer des worktrees et d'injecter des touches dans un pane se traite comme telle sur une machine partagée.

Ce que Herdr refuse de posséder

Le produit revendique une position étroite : il détient les terminaux, et rien d'autre. Pas de modèle embarqué, pas d'enveloppe autour des agents, pas de remplacement de git, pas d'éditeur ni de vue de diff intégrés. Un commentaire du fil Hacker News de l'annonce Y Combinator nomme cette thèse mieux que la page d'accueil : « the thing that was most attractive was the seeming orthogonality of the tool », avec l'option « no integration just show me the terminal output of my program ».

Le contraste avec Orca, l'autre réponse au même goulot d'étranglement et le produit qui a popularisé le sigle ADE, a produit une analogie qui circule dans la communauté : « Orca is like VSCode and herdr is like Sublime Text ». Orca possède l'environnement complet et prend la tentative (une branche, un worktree, un diff) comme unité de travail ; Herdr possède la session longue et laisse git, l'éditeur et la revue au développeur.

Sur la sécurité, ce refus a une conséquence utile et une limite. Contrairement à Orca, la documentation de Herdr ne fait état d'aucun préremplissage des drapeaux de contournement de permissions des agents. Mais l'absence de préremplissage ne vaut pas isolement : Herdr ne fournit ni conteneur, ni bac à sable, ni compte d'exécution distinct. Un agent en session persistante de plusieurs jours conserve les droits, les clés SSH et l'accès réseau de son opérateur. Le mode --remote vers une machine jetable est la parade que le produit rend facile, pas celle qu'il applique par défaut.

Éditeur, licence et trajectoire

Le projet est porté par Can Celik (Oğulcan Çelik), fondateur unique basé à Ankara, et a rejoint Y Combinator le 6 août 2026 : promotion Fall 2026, team size 1, primary partner Pete Koomen. Aucun montant de financement n'est publié sur la fiche de l'accélérateur.

La version 0.8.0, publiée le 3 août 2026, note : « Relicensed Herdr from AGPL-3.0-or-later to Apache-2.0. » Le billet d'annonce en donne le motif, signé du fondateur : « The runtime, what you use right now, stays free. Apache-2.0. » Plusieurs articles tiers mentionnent encore l'AGPL et des licences commerciales : l'information est périmée. Aucun périmètre payant n'est publié à ce jour.

Le 29 août 2026, l'API GitHub renvoie 33 340 étoiles, 2 422 forks et 257 tickets ouverts pour un dépôt créé le 27 mars 2026 ; la page d'accueil affiche 612 033 installations, 866 plugins communautaires et 21 CLI d'agents détectées, en version 0.8.2. Ces valeurs bougent chaque jour et se lisent à leur date. Trois autres entités portent des noms voisins sans lien avec ce produit : Herdr.io, plateforme de gestion de projet, et Herdr.org, orchestrateur d'agents métier.

Questions fréquentes

Qu'est-ce que Herdr ?

Un multiplexeur de terminaux open source écrit en Rust, distribué en un seul binaire, qui fait tourner les agents de codage dans un serveur en arrière-plan. Les sessions survivent à la fermeture du poste et aux coupures SSH, et chaque pane porte un état (working, blocked, done, idle) qui trie l'interface sur ce qui demande une réponse.

Herdr remplace-t-il tmux ?

Il en reprend le modèle (serveur en arrière-plan, panes, préfixe ctrl+b) et y ajoute ce que tmux ignore : la détection des agents de codage, leur état, une API socket et un marché de plugins, avec la souris traitée au même rang que le clavier. Sur un poste sans flotte d'agents, tmux reste un choix défendable.

Sous quelle licence Herdr est-il publié ?

Apache 2.0 depuis la version 0.8.0, publiée le 3 août 2026, qui note explicitement le passage depuis AGPL-3.0-or-later. Plusieurs sources tierces mentionnent encore l'AGPL et des licences commerciales : cette information est périmée.

Un agent peut-il piloter Herdr ?

Oui. Une API socket locale en JSON permet de créer des panes et des worktrees, de démarrer un agent, de lui envoyer un prompt et d'attendre son changement d'état. La réserve porte sur la fiabilité de cet état : autoritatif quand un hook d'intégration officiel le rapporte, heuristique quand il est déduit du contenu de l'écran.

Herdr isole-t-il les agents qu'il fait tourner ?

Non. Contrairement à Orca, il ne préremplit aucun drapeau de contournement de permissions, mais il ne fournit pas non plus de conteneur, de bac à sable ni de compte d'exécution distinct. Un agent lancé dans un pane garde le compte utilisateur, les clés SSH et l'accès réseau de son opérateur. L'isolation passe par le mode --remote vers une machine jetable, ou par un conteneur monté en amont.

Herdr fonctionne-t-il sous Windows ?

Comme client, oui : la version 0.8.2 du 19 août 2026 a sorti Windows de bêta sur le canal stable. Comme hôte distant, non : la documentation indique que Windows n'est pas pris en charge comme cible de herdr --remote, qui vise des hôtes Linux ou macOS.

Sources

Articles liés