L'âge d'un outil se mesure à quel point sa TUI part du principe que tu ne la regardes pas vraiment.
Le terminal Hermes avant v0.11.0 était précisément ce genre d'interface : il marchait, comme l'installeur en mode texte d'une vieille machine Linux marche. Chaque touche faisait quelque chose, chaque commande faisait ce qu'elle disait, et la mise en page visuelle était une politesse fine plus qu'un design. Je l'utilisais tous les jours. Je ne m'étais pas rendu compte à quel point je le contournais en silence, jusqu'à ce que v0.11.0 sorte.
Le 23 avril 2026, huit jours après la tool gateway de v0.10.0, Hermes Agent a sorti v0.11.0. Les release notes l'appellent « the interface release » — un de ces noms qui sonnent neutre tant qu'on n'entre pas vraiment dans le changelog. À la fin de v0.11.0, la couche entre toi et l'agent est un programme différent de celui que tu avais une semaine plus tôt.
Un nouveau TUI en React qui parle JSON-RPC à du Python
Le changement-titre, c'est le TUI à base d'Ink — une réécriture complète en React/Ink (imagine React, mais qui rend des cellules de terminal au lieu de DOM), posée sur un backend Python en JSON-RPC. Le bénéfice visible : un composer qui reste collé en bas et ne remonte pas quand la sortie scrolle, un streaming live avec support du presse-papiers, et un overlay d'observabilité qui montre ce que l'agent fait à l'instant — quel appel, quel outil, quel modèle — sans qu'il faille le lui demander.
Le bénéfice invisible compte davantage. Le TUI et le cœur de l'agent sont désormais deux processus, avec un protocole propre entre les deux. C'est la phrase ennuyeuse qui se prolonge habituellement par « et donc on a enfin pu sortir une extension d'éditeur ». L'extension elle-même, on ne la voit pas dans cette release ; ce qu'on voit, c'est tout ce que cette architecture rend possible derrière. Les améliorations ACP de v0.13.0 reposent là-dessus. Le hermes proxy de v0.14.0 repose là-dessus. Le dashboard qui a commencé en v0.9.0 grandit là-dessus.
Architecture de transport : quatre backends, cinq nouvelles routes d'inférence
L'autre moitié de v0.11.0 est un refactor que la plupart des utilisateurs ne verront jamais directement. La couche modèle a été réécrite autour d'une architecture de transport enfichable, avec quatre backends : AnthropicTransport, ChatCompletionsTransport, ResponsesApiTransport et BedrockTransport. L'enjeu, ce n'est pas l'abstraction en elle-même. L'enjeu, c'est ce qui en tombe.
Le support natif d'AWS Bedrock via Converse API atterrit dans v0.11.0. Idem pour GPT-5.5 via Codex OAuth, avec la découverte de modèles en direct dans le picker. Idem pour NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth et Vercel ai-gateway — cinq nouvelles routes d'inférence dans la même fenêtre, dont aucune n'aurait été un travail d'une semaine avant le refactor.
Le picker s'est rempli également : Claude Opus 4.7, Kimi K2.6 chez plusieurs fournisseurs, Xiaomi MiMo v2.5-pro et v2.5, xAI Grok STT/TTS, et Google Gemini TTS. Si ton usage de Hermes ressemble à « je choisis le modèle selon la tâche », v0.11.0 allonge sensiblement la liste.
Un petit truc qui ne devrait pas être petit : la configuration de timeout par fournisseur et par modèle débarque aussi. L'ancien « un timeout unique pour tout » était responsable d'une proportion gênante de runs longs qui plantaient.
/steer, hooks shell et une surface de plugins nettement plus large
/steer <prompt> est la petite commande qui change ta façon de parler à un agent qui tourne. Avant v0.11.0, corriger une tâche en cours, c'était annuler et reprompter — ce qui faisait généralement perdre l'état de travail et le contexte que l'agent avait monté. Avec /steer, tu pousses en plein vol : l'agent conserve son contexte, accepte la nouvelle direction et poursuit. Le pendant petit-mais-bruyant côté entrée : les raccourcis numériques sur les prompts d'approbation — tu appuies sur un chiffre, pas /approve.
Autour de /steer, la surface de plugins s'élargit jusqu'au point où un plugin Hermes peut faire des choses qu'il ne pouvait pas faire avant. v0.11.0 ajoute des points de hook pour les slash commands, le dispatch des outils, le blocage d'exécution et la transformation de résultats. La frontière entre « un plugin qui ajoute un bouton » et « un plugin qui retravaille vraiment le comportement de l'agent » était un mur ; v0.11.0 en a fait une porte.
Les shell hooks branchent des scripts shell en callbacks de cycle de vie — déclenchés au démarrage de session, à l'usage d'un outil, à la fin ou à l'erreur. Le mode webhook direct pousse les sorties vers des systèmes externes avec zéro LLM dans le chemin — l'agent y devient routeur, pas générateur. La complétion shell dynamique (bash, zsh, fish) est le genre « voyons, ça aurait dû être là depuis le début » dont tu ne te rends compte qu'une fois que c'est là.
QQBot, dashboards sur téléphone, et les cartes IA en streaming de DingTalk
Côté plateformes, v0.11.0 ajoute QQBot comme 17ᵉ plateforme de messagerie, sur QQ Official API v2, avec un assistant d'installation par QR code qui gère l'authentification de bout en bout. La release pompe aussi à peu près toutes les plateformes existantes : Discord (canaux forum, accès par rôle, toggle de slash commands), Feishu (réponses aux commentaires de document, états des réactions), DingTalk (préservation des mentions, cartes IA en streaming — oui, l'agent peut maintenant écrire directement dans une carte qui se met à jour en direct sur DingTalk), WhatsApp (messages vocaux, parité de politique) et WeCom/Weixin (création de bot par scan QR).
Le Local Web Dashboard venu de v0.9.0 a grandi dans cette release. Il a reçu l'i18n (anglais, chinois), le changement de thème en direct, un système de plugins et un layout responsive mobile. Le dashboard est désormais vraiment quelque chose que tu peux laisser ouvert sur ton téléphone pendant que l'agent travaille sur ton serveur.
En chiffres
La fenêtre de release entre v0.10.0 et v0.11.0 a couvert environ 1 556 commits en sept jours. Relis ce chiffre. Le picker de modèles a plus d'entrées qu'il y a un mois. Le TUI est un autre programme. La couche transport est un autre programme. Le dashboard est un autre programme. Le contrat des plugins est un autre contrat. La marque imprimée sur le binaire est la même.
J'ai vu des projets qui mergent 1 556 commits sur un an et appellent ça un cycle de release sain. v0.11.0 montre à quoi ressemble ce chiffre quand le récit de cadence cesse d'être une ligne marketing pour devenir un fait d'ingénierie. Les release notes ne se la jouent pas. La section « Highlights » dit juste « this was the interface release », parce que l'interface qui a avalé sept jours de merges, c'était précisément ce qui sortait par la porte.
---
Les releases « interface » sont sous-évaluées parce qu'une interface est le toucher d'un outil, pas ce qu'il fait. Les chiffres de benchmark ne bougent pas. La liste de fonctionnalités ne s'allonge pas. Mais le lendemain de v0.11.0, l'agent que j'utilisais depuis deux mois s'est mis à ressembler, d'une façon difficile à quantifier, à un autre agent — moins un programme de terminal avec du chat collé dessus, plus un programme de chat qui se trouve habiter un terminal.
La tuyauterie sous le nouveau TUI est ce qui rend possibles les trois semaines suivantes. v0.12.0 fera atterrir l'Autonomous Curator par-dessus. v0.13.0 fera atterrir le multi-agent Kanban par-dessus. v0.14.0 fera atterrir hermes proxy par-dessus. v0.11.0, c'est la fondation de tout ce mois-là.