Hermes v0.20.2 : le patch des connexions — bureau multi-gateway, installation MCP en un clic et sessions par terminal

Lundi matin, vous lancez hermes update comme d’habitude, le terminal affiche discrètement « Updated to v0.20.2 », et voilà. Ne fermez pas encore le terminal : derrière ce patch release sans prétention se cache un changement structurel dont l’application de bureau avait besoin depuis des années. L’ère de la multi-connexion est enfin arrivée.
v0.20.2 (tag v2026.8.16) a fusionné ~397 PR et 967 commits au cours des trois jours écoulés depuis v0.20.1, concentrés sur trois domaines : l’architecture de connexion du bureau, l’expérience MCP et la reprise de session côté CLI. Les notes officielles sont, comme toujours, très brèves (la documentation complète arrivera avec v0.21.0), voici donc ce qui mérite vraiment votre attention cette semaine.
Bureau : de « une connexion » à « des connexions illimitées »
1. Registre multi-connexions : local, distant, cloud et SSH en même temps
L’application de bureau ne connaissait qu’une seule connexion globale ; accéder à un gateway distant ou à Hermes Cloud impliquait des overrides par profile à la fois alambiqués et sujets aux erreurs. Settings → Connections est désormais un véritable registre : un nombre illimité de sources d’agents nommées — le runtime local, les gateways distants (LAN / Tailscale / internet public), les instances Hermes Cloud, les hôtes SSH — persistées au même endroit, avec des libellés uniques insensibles à la casse imposés à l’enregistrement (#86679).
Elle embarque un routage du pool de backends par (connexion, profile) (#86839), un roster d’agents multi-sources + SDK (#86875), et des aides à la découverte : une pastille « Connect another Hermes gateway… » épinglée dans la barre de profiles et une entrée ⌘K dans la palette de commandes pour Settings → Connections (#87603). Gérer plusieurs machines et gateways ne signifie plus éditer des fichiers de config.
2. Vérifications de santé MCP en arrière-plan : les tokens expirés vous alertent désormais
L’expiration du token OAuth d’un serveur MCP passait autrefois inaperçue jusqu’à ce que vous ouvriez la page MCP par hasard. Le bureau lance désormais une analyse en arrière-plan à la connexion du gateway puis toutes les 30 minutes (#87579) ; lorsqu’un serveur passe en état needs-auth (ou en erreur), un avertissement s’affiche dans l’application — « GitHub MCP needs re-authentication » — avec une action Sign in qui crée un lien direct vers le panneau de configuration du serveur, y fait défiler la vue, le fait clignoter et place le bouton Authenticate à un clic. Les serveurs stdio sont exclus des sondes en arrière-plan, chaque sonde représentant un vrai spawn.
3. Liens profonds hermes:// : installez des serveurs MCP depuis une page web
Les fournisseurs MCP et leur documentation peuvent désormais proposer un bouton « Add to Hermes » en un clic (#87581). Le lien profond hermes://mcp/install?name=NAME&config=B64 passe par une validation stricte (le nom doit correspondre à ^[A-Za-z0-9._-]{1,64}$, la config est du JSON encodé en base64url) et par une boîte de dialogue de confirmation explicite avant que quoi que ce soit ne touche votre config — le même schéma que le cursor://anysphere.cursor-deeplink/mcp/install de Cursor, mais avec une barrière de sécurité solide.
CLI : la reprise de session connaît enfin votre terminal
4. Breadcrumbs de terminal : chaque panneau reprend sa propre session
Un simple hermes -c / --continue reprenait autrefois la session la plus récente à l’échelle globale — ouvrez deux panneaux tmux, l’un pour débugger un bug, l’autre pour concevoir une API, et -c entraînait les deux dans la même conversation. La CLI enregistre désormais un breadcrumb par terminal (chemin du tty, panneau tmux, fenêtre kitty, panneau wezterm, panneau Zellij ou session Windows Terminal) et reprend la dernière session de ce terminal précis (#87346). Les breadcrumbs vivent sous $HERMES_HOME/terminal-sessions/, sont écrits de manière atomique et expirent au bout de 30 jours.
5. chat -c <title> --create-if-missing : créez-la si elle manque
hermes chat -c "title" sans correspondance échouait autrefois en silence ; désormais il échoue bruyamment sur stderr avec le code de sortie 1 et vous oriente vers hermes sessions list ou --create-if-missing (#87706). Avec ce flag, un titre introuvable crée une nouvelle session nommée et vous y dépose — offrant aux scripts et aux plugins une primitive déterministe « envoyer vers ce fil nommé, en le créant si besoin ».
Corrections de génération d’images et d’UX des outils
6. L’upscaling d’images est de nouveau sur option (opt-in)
Un changement du 8 août enchaînait le Clarity Upscaler — un améliorateur créatif à diffusion de tuiles SD1.5 qui redessine le contenu — après 100 % des générations FAL/Krea de moins de 2 MP. Le rendu du texte/CJK de GPT Image 2, la typographie d’Ideogram et les visages photoréalistes en sortaient tous visiblement dégradés (#87883). L’upscaling est désormais désactivé par défaut ; passez upscale: true explicitement lorsque vous le souhaitez.
7. Chaque outil peut être interrompu avec Ctrl+C
Certains outils (génération d’images, TTS, transcription) ignoraient les interruptions — une génération FAL + un passage d’upscale pouvaient retenir votre tour pendant ~40 secondes. L’exécuteur séquentiel interroge désormais le flag d’interruption chaque seconde et abandonne un outil en cours d’exécution après un délai de grâce de 3 secondes (#87892) ; image_generate abandonne en outre son attente FAL en cours de manière coopérative. Ctrl+C veut enfin dire ce qu’il dit.
Autres corrections à connaître
- Les utilisateurs de Kitty récupèrent leur clavier : #87074 avait retiré l’activation du protocole clavier de Kitty pour corriger Ctrl+C, cassant toutes les combinaisons de touches modifiées dans kitty ; #87511 a mappé 294 séquences Ctrl/Alt/Shift, et #87630 a rétabli l’activation
CSI >1u— les deux problèmes sont résolus. - Les clés API Bedrock arrivent enfin : le token était fourré dans
OPENAI_API_KEYavec un simpleprovider: custom, si bien que les requêtes partaient avecapi_key="no-key-required"; il est désormais écrit comme un provider nommé (custom:bedrock-mantle+key_env) et livré correctement (#87191). /statusne mélange plus les providers : dans les sessions multi-providers avec fallback,/statuspouvait associer un modèle à un provider/une URL de base d’une autre route (GLM servi par NVIDIA NIM affiché commenous) ; les routes persistées sont désormais cohérentes (#87271).- Les listes désactivées fonctionnent enfin :
skills.disabledetagent.disabled_toolsetsenregistrés viahermes config setsous forme de chaînes JSON-array étaient traités comme des noms uniques et silencieusement ignorés pendant des mois ; les formes chaîne["a","b"]sont désormais analysées correctement (#86873). - Les tours streamés de /loop aboutissent : les tours streamés
already_sentterminent désormais correctement leur tick /loop (#87704) — se marie bien avec notre guide de la commande /loop.
Comment mettre à jour
hermes update
Après la mise à jour, lancez hermes doctor pour vérifier l’installation, redémarrez le gateway (hermes gateway), et jetez un œil à Settings → Connections pour découvrir le nouveau registre multi-connexions.
Les détails plus approfondis figurent dans nos notes de version v0.20.2 ; les gains cachés du patch précédent sont dans 13 gains d’efficacité issus de v0.20.1, et les analyses approfondies de la configuration MCP dans le guide des variables de contexte MCP.