hermes@agent:~/.hermes$ cat hermes.md

Hermes Agent : le guide de référence des praticiens (2026)

# Un guide de référence destiné aux praticiens sur Hermes Agent, l’agent d’IA open source et auto-améliorant de Nous Research : authentification auprès des fournisseurs et OAuth, fichiers de configuration, système de compétences et utilisation comme passerelle de messagerie multiplateforme.

author: words: 44624 read_time: 224m updated: 2026-09-10 07:45
$ less hermes.md

En bref : Hermes Agent est un agent d’IA open source et auto-améliorant de Nous Research. Il fonctionne comme une CLI et comme un gateway de messagerie multiplateforme, stocke sur disque une identité durable et une mémoire persistante, agrège des skills qui s’améliorent à l’usage et fonctionne avec tout fournisseur LLM compatible avec OpenAI — Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Qwen Cloud, Hugging Face, Google, xAI/SuperGrok ou votre propre endpoint auto-hébergé.1219 Depuis la v0.14.0 (16 mai 2026), Hermes prend en charge l’OAuth SuperGrok avec le contexte de 1 million de tokens de grok-4.3, un proxy local compatible avec OpenAI pour les fournisseurs OAuth (hermes proxy), une intégration native de x_search, l’installation depuis PyPI (désormais obsolète depuis la v0.19.0 — le programme d’installation en une ligne est la méthode prise en charge), l’installation différée des dépendances, 28 plateformes de messagerie dont LINE et SimpleX Chat, /handoff, les diagnostics sémantiques LSP après chaque écriture, l’outil unifié video_generate, computer_use via cua-driver pour les fournisseurs autres que Anthropic, une version bêta native pour Windows ainsi que la résolution de 12 problèmes P0 et 50 problèmes P1.19 Pour la plupart des nouveaux utilisateurs, l’authentification auprès des fournisseurs constitue la principale difficulté : Hermes propose 39 fournisseurs dans sa liste de sélection statique au tag v2026.9.7 et étend automatiquement cette liste à partir de 39 plugins de fournisseurs intégrés, auxquels s’ajoutent les endpoints personnalisés, avec trois parcours d’authentification distincts (clé API dans .env, OAuth via hermes model ou endpoint personnalisé dans config.yaml). Le modèle d’authentification est la première chose à maîtriser : tout le reste dépend du fournisseur sélectionné.

Hermes Agent fonctionne comme un environnement d’exécution complet pour agents, et non comme une simple interface de chat. Il lit votre système de fichiers, exécute des commandes dans des backends isolés, extrait des données du Web, lance des sous-agents, exécute des tâches cron planifiées, communique avec Telegram/Discord/Slack/WhatsApp/Signal/Email depuis un même processus gateway et crée ses propres skills à partir de son expérience.1 La CLI est une interface de terminal bâtie sur une boucle de conversation dans run_agent.py ; le gateway est un processus de longue durée qui transmet les messages des plateformes de messagerie à cette même boucle de conversation.3

La différence entre une utilisation occasionnelle et experte de Hermes repose sur cinq systèmes. Maîtrisez-les et Hermes deviendra un puissant multiplicateur de capacités :

  1. Résolution des fournisseurs : comment les flux d’authentification sont associés aux appels API
  2. Hiérarchie de configuration : config.yaml + .env + auth.json + SOUL.md + AGENTS.md
  3. Système d’outils et de toolsets : ce que l’agent peut faire, avec des autorisations propres à chaque plateforme
  4. Système de skills : la mémoire procédurale que l’agent crée et fait évoluer
  5. Gateway + cron + profiles : exécuter Hermes là où vous vivez, et pas seulement là où vous vous trouvez

Points clés

  • L’authentification auprès des fournisseurs suit trois parcours, pas un seul. Clé API dans .env, OAuth via hermes model/hermes auth ou endpoint personnalisé dans config.yaml. Choisissez le parcours correspondant à votre fournisseur, pas simplement celui qui vous semble familier.
  • Une seule commande suffit pour changer de fournisseur. hermes model vous guide de manière interactive parmi tous les fournisseurs pris en charge, y compris les connexions OAuth, tandis que /model provider:model permet d’en changer en cours de session sans perdre l’historique.2
  • Deux fichiers constituent la surface de configuration modifiable par l’utilisateur. ~/.hermes/config.yaml contient les paramètres et ~/.hermes/.env les secrets. auth.json, SOUL.md, MEMORY.md et skills/ sont gérés directement par Hermes — vous pouvez modifier SOUL.md manuellement, mais l’agent intervient lui-même sur tous les autres éléments.4
  • Hermes succède à OpenClaw. Si vous effectuez une migration, hermes claw migrate importe automatiquement plus de 30 catégories d’état.5
  • Par défaut, les tâches auxiliaires utilisent votre modèle principal. La vision, la classification des approbations, la compression et les titres de session sont traités sous forme d’appels LLM « auxiliaires » distincts. Au tag auto, chacun d’eux est acheminé vers votre modèle de chat principal : vous n’avez rien à configurer, mais ces tâches annexes peuvent entraîner un surcoût notable avec les modèles de raisonnement coûteux. Lorsque cela compte, affectez individuellement les emplacements auxiliary.<task> à des modèles rapides et peu coûteux.434

Ce que change la v0.14

La v0.14.0 vise moins à introduire une fonctionnalité phare qu’à alléger la configuration tout en élargissant les environnements dans lesquels Hermes peut fonctionner.19 Voici les principales évolutions opérationnelles :

  • L’installation et le démarrage sont plus légers. pip install hermes-agent fonctionne depuis PyPI, les adaptateurs lourds sont installés à la demande lors de leur première utilisation et le processus de lancement diffère suffisamment d’opérations pour réduire le démarrage à froid d’environ 19 secondes. (Depuis, la v0.19.0 a rendu les installations avec pip obsolètes — consultez Installation.)
  • Les abonnements peuvent devenir des endpoints API locaux. hermes proxy transforme les fournisseurs reposant sur OAuth, tels que Claude Pro, ChatGPT Pro et SuperGrok, en endpoint local compatible avec OpenAI pour des outils comme Codex, Aider, Cline et Continue.
  • La portée du gateway s’étend. LINE et SimpleX Chat rejoignent le gateway (le tableau comparatif des plateformes dans la documentation en recense 28 au tag v2026.8.31 ; la section Gateway de messagerie précise ce que ce nombre englobe), Microsoft Teams est intégré de bout en bout, la récupération de l’historique Discord est activée par défaut et les invites clarify de Telegram/Discord utilisent désormais des boutons natifs.
  • La vérification au moment de l’écriture s’améliore. Après les modifications, Hermes peut afficher, pour chaque tour, un récapitulatif des changements apportés aux fichiers ainsi que les diagnostics sémantiques du serveur de langage avant le tour suivant, ce qui le rapproche d’un travail d’agent fondé sur des preuves.
  • Les outils de bureau et multimédias s’enrichissent. computer_use fonctionne via cua-driver pour les fournisseurs autres que Anthropic, video_generate est unifié derrière des backends interchangeables et vision_analyze envoie les pixels bruts aux modèles réellement capables de les analyser.

Chaque section ci-dessous s’appuie sur la documentation en amont disponible sur hermes-agent.nousresearch.com/docs et sur l’arborescence du code source sur github.com/NousResearch/hermes-agent. Chaque affirmation factuelle est accompagnée d’une note de bas de page renvoyant vers la page précise dont elle provient.

Choisissez votre parcours

Ce dont vous avez besoin Où aller
Installer Hermes Installation — programme d’installation en une ligne ou étapes manuelles
Vous connecter à un fournisseur Authentification et fournisseurs — la section que vous êtes venu consulter
Changer de modèle en cours de session La commande hermes auth et Endpoints personnalisés et auto-hébergés pour la syntaxe de /model
Exécuter un LLM local Endpoints personnalisés et auto-hébergés — Ollama, vLLM, SGLang, llama.cpp, LM Studio
Connecter des plateformes de messagerie Gateway de messagerie — Telegram, Discord, Slack, WhatsApp, Signal, Google Chat, LINE, SimpleX Chat, ntfy, Buzz (28 dans le tableau comparatif de la documentation)
Écrire ou installer un skill Système de skills — divulgation progressive + hub de skills
Référence détaillée de chaque commande CLI Poursuivez votre lecture — ou accédez directement aux Commandes CLI

Fonctionnement de Hermes : le modèle mental

Hermes s’articule autour d’une boucle de conversation unique que n’importe quel point d’entrée peut invoquer. Ces points d’entrée sont la CLI (cli.py), le gateway de messagerie (gateway/run.py), l’adaptateur ACP pour l’intégration aux éditeurs, l’exécuteur de traitements par lots et un serveur API.3 Tous finissent par appeler AIAgent.run_conversation() dans run_agent.py, qui :

  1. Construit le prompt système à partir de SOUL.md, MEMORY.md, USER.md, des skills, des fichiers de contexte et des instructions relatives aux outils via agent/prompt_builder.py (la décomposition de septembre 2026 l’a déplacé dans le nouveau package agent/)3
  2. Détermine le fournisseur d’exécution via runtime_provider.py — c’est à cette étape que sont sélectionnés votre mode d’authentification, l’URL de base et le mode API3
  3. Appelle le fournisseur à l’aide de l’un des trois modes API : chat_completions, codex_responses ou anthropic_messages3
  4. Transmet tous les appels d’outils renvoyés à model_tools.py et au registre central des outils (tools/registry.py)3
  5. Répète la boucle jusqu’à ce que le modèle produise une réponse finale, puis enregistre la session dans SQLite avec FTS53

Il est essentiel de comprendre cette boucle, car chaque fonctionnalité — personnalités, mémoire, skills, compression, solution de repli — se rattache à l’une de ces étapes. Lorsque vous consultez une clé de configuration et vous demandez à quoi elle sert, la réponse est généralement : « elle permet d’ajuster l’étape 1, 2, 3 ou 4 de la boucle ci-dessus ».

Noyau indépendant de la plateforme. Une seule classe AIAgent prend en charge la CLI, le gateway, ACP, le traitement par lots et le serveur API. Les différences propres aux plateformes résident dans le point d’entrée, et non dans l’agent lui-même.3 C’est pourquoi les mêmes commandes slash fonctionnent dans le terminal et dans Telegram — elles sont acheminées depuis un COMMAND_REGISTRY partagé dans hermes_cli/commands.py.6

La structure des dossiers constitue le système. Hermes stocke tout sous ~/.hermes/ (ou $HERMES_HOME pour les profiles autres que celui par défaut) :4

~/.hermes/
├── config.yaml        # Settings (model, terminal, TTS, compression, etc.)
├── .env               # API keys and secrets
├── auth.json          # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md            # Primary agent identity (slot #1 in system prompt)
├── memories/          # Persistent memory (MEMORY.md, USER.md)
├── skills/            # Bundled + agent-created + hub-installed skills
├── cron/              # Scheduled jobs
├── sessions/          # Gateway session state
└── logs/              # agent.log, gateway.log, errors.log (secrets auto-redacted)

Chaque fichier ci-dessus remplit un rôle précis ; aucun ne fait double emploi. Si vous cherchez à savoir « où Hermes stocke X », la réponse se trouve parmi ces fichiers.


Nouveautés de la v0.21.0 (The Pantheon Release)

Hermes Agent v0.21.0 (tag v2026.8.31, 31 août 2026) est la version fonctionnelle actuelle et constitue le registre organisé vers lequel toute la série cumulative v0.20.x renvoyait jusqu’ici : « Cette version regroupe tout le contenu des tags de correctifs d’infrastructure v0.20.1 à v0.20.6 — ces périodes sont entièrement documentées ici. » La mise en scène prolonge celle du Herald : « La v0.20.0 a fait de Hermes le héraut — il parlait et transmettait les messages aux autres agents. Dans la v0.21.0, les dieux se rassemblent. » Voici les statistiques, reproduites telles quelles : « Depuis la v0.20.0 : environ 5 800 commits · environ 2 475 PR fusionnées · environ 5 680 fichiers modifiés · environ 869 000 insertions · environ 135 000 suppressions · environ 2 100 issues clôturées · plus de 760 contributeurs ».35

La version s’organise par domaine fonctionnel ; ce résumé en fait autant. Lorsqu’une fonctionnalité modifie une section permanente de ce guide, le renvoi figure directement dans le texte.

  • Bot Mode : vos agents forment désormais une société intégrée. Bot Mode, auparavant fourni par le plugin hermes-bots dans la période v0.20.3, devient une composante activée par défaut de l’application de bureau. Chaque profile d’agent reçoit un nom, un visage d’avatar déterministe avec des commandes de génération aléatoire et de verrouillage, ainsi qu’une place dans une liste commune ; vous créez des discussions de groupe à la manière de Discord, dans lesquelles plusieurs bots et vous-même échangez dans une même salle, mentionnez n’importe quel bot avec @ depuis l’éditeur et attribuez des noms et des images aux salles. Le sous-catalogue comprend des cartes de messages agent à agent avec attribution, des avis de livraison côté expéditeur, une hydratation donnant la priorité à l’affichage pour des réveils instantanés, un volet Routines et une refonte fondée sur le système de conception de l’application. Comme l’indique la version elle-même : « Auparavant, le “multi-agent” désignait de la tuyauterie ; désormais, cela ressemble à une application de chat remplie de collègues. »35
  • hermes peer : des messages privés de bot à bot entre vos agents. Tout agent Hermes peut envoyer un message à n’importe quel autre agent par son identifiant, quels que soient leurs profiles et gateways, depuis la CLI ou au sein d’une conversation — demandez à votre bot de recherche de transmettre ses conclusions à votre bot de programmation, puis lisez sa réponse là où vous vous trouvez. « Les réponses arrivent dans le Bot Chat canonique de chaque agent : les conversations entre agents sont donc durables et consultables, et ne disparaissent pas après leur envoi. » La commande hermes peer (ajout, affichage et suppression de peers, ainsi que dm) figure dans le tableau des commandes de premier niveau.35
  • Des tâches cron qui se souviennent. Les tâches planifiées cessent d’avoir une mémoire de poisson rouge : les agents cron chargent et actualisent une mémoire persistante comme tous les autres agents, continuity=true transmet la sortie de chaque exécution à la suivante afin qu’un moniteur puisse éliminer les doublons en fonction de ce qu’il a déjà signalé, chaque tâche dispose d’un bloc-notes durable, les tâches en mode moniteur ignorent entièrement la LLM lorsque rien n’a changé, l’effort de raisonnement peut être défini pour chaque tâche et la sortie cron peut être envoyée dans le Bot Chat canonique d’un bot, où celui-ci répond effectivement. La section Tâches planifiées (Cron) documente désormais le fonctionnement précis de chacune au niveau de ce tag.3537
  • Orchestration en direct des subagents. delegate_task se dote d’actions de contrôle : répertorier les enfants en cours d’exécution, réorienter l’un d’eux en plein travail ou l’arrêter prématurément tout en conservant son résultat partiel. Les sorties des enfants peuvent être validées selon un schéma JSON, le coût de chaque délégation apparaît dans les résultats et les valeurs par défaut passent à 250 itérations par subagent et 10 enfants simultanés (les limites unifiées qui ont remplacé max_async_children dans la v0.19.0).3538
  • Le centre de commande MCP. Les serveurs MCP et le catalogue fusionnent sur une même page de l’application de bureau, avec import par glisser-déposer « collez n’importe quoi », contrôles d’intégrité en arrière-plan vous invitant à vous réauthentifier avant qu’un appel d’outil n’échoue, vue superposée des coûts et de l’utilisation de la flotte (estimation des tokens du schéma, utilisation sur 30 jours par serveur) et liens profonds hermes:// permettant d’installer un serveur MCP après confirmation explicite. Consultez Intégration de MCP.35
  • Une vague d’améliorations pour la CLI. Ctrl+P ouvre une palette de commandes avec recherche approximative (également accessible avec /palette), le sélecteur /model filtre les résultats à mesure que vous saisissez du texte, /status affiche le mode de raisonnement, les approbations en attente et l’utilisation du contexte, tandis que la barre d’état peut présenter en temps réel le pourcentage de résultats issus du cache, la latence et le nombre de tokens par seconde, avec un réglage pour chaque champ. S’y ajoutent un arrêt d’urgence global, l’épinglage et le désépinglage des sessions, des textes indicatifs tournants dans l’éditeur et des animaux de compagnie dans le terminal. Précision terminologique : la version présente un vérificateur d’approbation en simulation sous le nom hermes approval-check ; dans ce tag, cette interface correspond à hermes approvals test — aucune sous-commande approval-check n’existe.3540
  • L’agent pilote le navigateur de l’application de bureau. Le navigateur intégré cesse d’être une simple fenêtre que l’agent ne peut qu’observer : Hermes y navigue, clique et lit directement son contenu, tandis que les pages peuvent s’ouvrir dans votre navigateur système avec des menus contextuels complets pour les liens.35
  • Six nouveaux fournisseurs et une vague d’enrichissements du catalogue de modèles. Meta Model API (Muse Spark), CommandCode, Tencent TokenPlan, Nebius Token Factory, Ramp Router et Actual Computer. Trois d’entre eux (Meta AI, CommandCode et Actual Computer) avaient été intégrés au cours de périodes cumulatives antérieures et figuraient déjà dans la matrice des fournisseurs ; celle-ci inclut désormais Tencent TokenPlan, Nebius Token Factory et Ramp Router, ainsi que la nouvelle offre Alibaba Token Plan mentionnée dans la documentation. Les catalogues accueillent GLM-5.3-Flash, qwen3.8-max/flash, Gemini 3.7 Flash, MiniMax M3 free, Nemotron 3.5 Lightning et Muse Spark 1.2. Deux évolutions structurelles les accompagnent : model_overrides dans config.yaml vous permet de modifier la fenêtre de contexte ou la tarification de n’importe quel modèle sans attendre une nouvelle version, et les fournisseurs peuvent maintenant être distribués sous forme de packages installés avec pip et détectés par des points d’entrée ; un registre unifié de garde-fous de sélection avertit également l’utilisateur dans chaque sélecteur lorsqu’un modèle s’entraîne sur ses données.3536
  • Renforcement général de la sécurité. Les écritures dans les fichiers protégés contenant les instructions des agents (AGENTS.md, skills, espaces de stockage de mémoire) nécessitent désormais toujours une approbation, afin qu’un agent victime d’une injection de prompt ne puisse pas modifier discrètement ses propres consignes permanentes ; une vaste opération de masquage comble les failles susceptibles d’exposer des secrets dans les erreurs du terminal, la lecture des fichiers .env, les checkpoints et les journaux ACP ; le système d’approbation reconnaît désormais les commandes destructrices de Windows ; sur macOS, les autorisations persistent après les mises à jour grâce à une identité de signature TCC stable (hermes desktop --setup-tcc-identity) ; enfin, l’entrée Blender du catalogue MCP et son skill ont été supprimés à la suite d’une compromission en amont. Consultez Renforcement de la sécurité pour les détails correspondant à ce tag.3539
  • Maturation du gateway. Slack bénéficie de cartes dynamiques natives (réponses réellement diffusées en streaming, avec cartes facultatives pour les plans et les tâches) ainsi que de la désactivation des aperçus de liens sortants ; Telegram se dote d’un sélecteur intégré permettant de rechercher toutes les commandes et tous les skills via @botname, sans subir la limite de son menu de commandes ; le canal de relais gagne en maturité (initialisation native des plugins, opérations sur les cartes dynamiques avec diffusion des brouillons en streaming, segmentation par étendues de session, rétablissement de la transcription vocale STT) ; un socket de contrôle du gateway permet aux consommateurs de la flotte de l’interroger et aux programmes de mise à jour de le suspendre proprement au lieu d’arrêter tout son arbre de processus ; enfin, le turn-reaper capture les piles des workers bloqués lorsque le watchdog se déclenche.35
  • Une vague de skills. Huit skills de productivité récupérés (document-to-action-items, meeting-action-items, email-inbox-triage, github-issue-to-pr, weekly-review-planning, competitor-news-monitor, product-price-monitor, social-media-content-calendar), des clients API dérivés de fichiers HAR (« observez une fois un site Web, puis appelez directement son API caché sans navigateur »), publish-site, session-librarian, blocked-page-recovery, merge-reconciler, plan-interrogation et un linter consultatif de SKILL.md lors de la création.35

Annulés pendant cette période (non distribués) : le mode Model Council (/council) et le context engine DCP ont tous deux été intégrés, puis annulés ; le serveur gateway exclusivement WS (#94245) a été fusionné, puis annulé (#96118), si bien que FastAPI reste sur le chemin de démarrage de l’application de bureau — mais la relecture des événements estampillés par numéro de séquence (#94219) et la reconnexion sans perte de l’application de bureau via WebSocket ont bien été distribuées. Electron est revenu à la version 40.10.2. Si des publications de la communauté consacrées aux périodes v0.20.x mentionnaient l’un de ces éléments, ceux-ci ne figurent pas dans cette version.35

La procédure de mise à jour ne change pas : hermes update depuis une installation existante, ou le programme d’installation shell pour une nouvelle installation. La sous-section cumulative située sous la version Herald ci-dessous conserve, pour chaque tag, le détail des éléments intégrés pendant chaque période.35

Nouveautés de la v0.21.1 (le correctif cumulatif)

Hermes Agent v0.21.1 (tag v2026.9.7, 7 septembre 2026) est la version actuelle, volontairement succincte : une « version corrective » qui « regroupe l’état actuel de la branche main depuis la v0.21.0 pour les déploiements associés à un tag et les consommateurs en aval ». Le corps fournit les statistiques de cette période — « 5 139 commits hors fusion dans 4 364 fichiers modifiés (+601 014 / -768 419) » et « 632 PR fusionnées » — puis reporte le récit détaillé : « Les notes de version complètes et éditorialisées pour cette période seront publiées avec la v0.22.0. » Il s’agit donc de la plus vaste période entre deux tags de toute l’histoire du projet (aucune période précédente entre deux tags adjacents ne dépasse les 2 790 commits hors fusion de v2026.7.20..v2026.7.30), accompagnée des notes de version les plus courtes. En attendant que la v0.22.0 en fournisse le compte rendu éditorialisé, les six ensembles ci-dessous résument ce qui change concrètement dans votre utilisation d’Hermes avec ce tag, chaque point ayant été vérifié dans le code source.41

  • Le code source a été décomposé, et le délai de compatibilité des plugins expire le 14 septembre. La décomposition de septembre 2026 (PR #102117) a scindé les grands modules du dépôt en fichiers spécialisés : un nouveau package agent/ contient les composants internes de la boucle de conversation (214 modules de premier niveau et sept sous-packages ; prompt_builder.py se trouve désormais dans agent/prompt_builder.py, tandis que run_agent.py reste le fichier d’origine d’AIAgent), les analyseurs des sous-commandes de CLI ont été déplacés dans un package hermes_cli/subcommands/ (61 modules), la liste statique CANONICAL_PROVIDERS a été déplacée de hermes_cli/models.py vers hermes_cli/models_catalog_static.py (la liste elle-même reste inchangée : 39 entrées statiques, toujours complétées automatiquement à partir des 39 dossiers de plugins de fournisseurs inclus), et delegate_task a été réparti entre une douzaine de modules tools/delegate_tool_* environ. Les chemins d’importation internes ne constituent pas une API stable ; un nouveau fichier COMPAT_MANIFEST.md à la racine du dépôt réexporte donc 1 148 noms publics « moved-lazy » depuis leurs anciens chemins de modules, chacun émettant un HermesPluginCompatWarning une fois par nom et par processus lors de sa résolution. Cette couche de compatibilité est temporaire et sera supprimée le 14 septembre 2026, six jours après le tag. À compter de cette date, tout plugin tiers concerné ne sera pas chargé : la bannière de CLI, hermes doctor et hermes update affichent un avis rouge nommant le plugin désactivé, l’application de bureau affiche une boîte de dialogue unique et hermes plugins list en indique la raison. Si vous utilisez des plugins externes, vérifiez-les dès maintenant : hermes plugins compat <path> affiche chaque occurrence sous la forme file:line, avec l’ancien chemin -> le nouveau chemin, et renvoie le code de sortie 1 tant qu’il en reste (--json pour une sortie lisible par une machine ; exécutez la commande sans argument pour analyser tous les plugins installés). Si l’auteur d’un plugin n’a pas encore effectué la migration, la solution de secours consiste à définir plugins.allow_deprecated_imports: true dans config.yaml ; les plugins concernés continueront ainsi à se charger après cette date, jusqu’à ce que l’annulation du commit de compatibilité supprime effectivement les anciens chemins. La section Système de plugins contient le même encadré.42
  • Les conversations du gateway ne sont désormais plus jamais renouvelées selon des minuteries. La documentation relative au cycle de vie des sessions énonce maintenant explicitement le contrat : « L’inactivité et le temps écoulé ne provoquent jamais le renouvellement d’une conversation. /new et /reset créent une limite explicite ; la compression du contexte continue de gérer les longs historiques. L’ancienne configuration des minuteries est ignorée. Le type de données SessionResetPolicy existant est une donnée de compatibilité inerte, et non une politique appliquée à l’exécution. » Les limites sont explicites et définies par l’utilisateur ; si vous avez conservé des minuteries de réinitialisation de session datant d’OpenClaw lors de l’exécution de hermes claw migrate, elles sont désormais inertes. Consultez Gateway de messagerie.43
  • L’autorisation MCP bénéficie désormais d’un flux par code d’appareil. hermes mcp login <name> accepte maintenant --flow {browser,device} : browser correspond au flux PKCE existant, device à une connexion par code d’appareil conforme à la RFC 8628 pour les machines sur lesquelles un rappel de navigateur est peu pratique, et cette option remplace la configuration oauth.flow du serveur. Cette période a également renforcé le reste de la surface d’authentification MCP : la propriété du profile est appliquée dans toutes les sessions OAuth, les caches de métadonnées OAuth mal formés sont ignorés au lieu de bloquer un serveur, et l’application de bureau relaie OAuth de MCP au moyen de rappels locaux au client. Autre changement connexe : -t/--toolsets filtre désormais aussi les serveurs MCP configurés qui sont effectivement lancés ; une exécution ponctuelle de hermes -z -t <toolsets> évite ainsi le démarrage à froid des serveurs inutiles. Le bloc de commandes de la section Intégration de MCP inclut désormais login et reauth [--all], deux commandes antérieures à cette période, mais qui n’avaient pas encore été documentées ici.44
  • La délégation rend désormais compte avec transparence du travail en arrière-plan. Six améliorations de fiabilité apportées à delegate_task, toutes relevées dans le code source de l’outil de délégation pour ce tag. (1) Par défaut, un lot exécuté en arrière-plan renvoie UNE SEULE notification d’achèvement ; l’activation de delegation.independent_completions scinde l’appel en unités d’achèvement : les tâches partageant une même valeur group sont réunies et signalées ensemble, tandis que chaque tâche non groupée est signalée séparément dès qu’elle se termine. Ce comportement par défaut est intentionnel — le code source précise qu’une rafale de notifications pour chaque tâche « fragmentait les orchestrateurs qui n’étaient pas conçus pour cela ». (2) Les processus en arrière-plan d’un enfant sont arrêtés lors de sa finalisation, sauf si celui-ci les transmet au parent avec process_manage(action="handoff") ; les processus résiduels non transmis sont nommés dans le résultat sous orphaned_processes, tandis que les processus enfants ayant pris fin sans que leur sortie ait jamais été lue apparaissent sous unread_completions, avec la fin de leur sortie. Selon la docstring du code source, le principe de conception est le suivant : le parent « doit l’apprendre de l’environnement d’exécution » au lieu de se fier à l’affirmation « watcher running » d’un enfant. (3) delegation.fallback_providers devient une véritable option de configuration : null hérite de la chaîne du parent pour les enfants non épinglés, [] désactive le fallback, et un enfant épinglé par fournisseur, endpoint ou modèle ne bénéficie d’aucun fallback sauf si ce paramètre en définit un. (4) La chaîne de fallback de l’enfant est résolue au moyen du normaliseur canonique ; les entrées mal formées sont donc écartées au lieu d’empêcher un lancement. (5) Un plantage en cours d’unité ne fait plus perdre les enfants ayant terminé : chaque enfant achevé d’une unité à plusieurs enfants est enregistré durablement sur la propre ligne de l’unité et conservé comme résultat partiel lors de la récupération. (6) Les subagents n’héritent jamais du niveau de cache de prompt d’une heure : un enfant délégué est rétrogradé au niveau de cinq minutes, car le niveau d’une heure est tarifé pour une personne qui s’absente, et non pour une rafale d’enfants parallèles.45
  • Fournisseurs et modèles. Les catalogues accueillent GPT-6 Astra et Astra Pro d’OpenAI, accompagnés des variantes de niveau de vitesse -fast/-flex (« prix multiplié par 2, niveau prioritaire » / « prix multiplié par 0,5, niveau flex ») dans les catalogues Nous Portal et OpenRouter. Sur la route OAuth de ChatGPT/Codex, Astra est réservé aux comptes autorisés (seule la découverte en direct propre au compte peut le proposer) et reçoit une variante de sélection -900k, activable volontairement, qui porte la fenêtre annoncée de 272K à environ 900K après vérification en direct ; le suffixe n’est jamais transmis. S’y ajoutent : anthropic/claude-fable-5.1, google/gemini-3.7-flash et gemini-3.8-flash, qwen/qwen3.8-max-0902 et qwen3.8-flash, ainsi que la famille Muse Spark 1.3 de Meta (contexte de 1M, variantes de contributeurs incluses) et un plugin fournisseur de génération d’images Meta muse-image. Tavily fait son entrée comme backend de recherche et d’extraction sur le Web (TAVILY_API_KEY ; un fonctionnement sans clé est possible lorsque Tavily est sélectionné via hermes tools). Un environnement d’exécution llama.cpp géré fait des modèles locaux une option de premier ordre (binaires officiels, un seul llama-server supervisé, configuration en un clic depuis l’application de bureau), tandis que les fournisseurs de processus externes hors dépôt disposent de leur propre branche de résolution. Sur le plan opérationnel, les catalogues distants du sélecteur sont désormais actualisés toutes les 20 minutes (model_catalog.ttl_minutes, valeur par défaut : 20 ; l’ancienne clé ttl_hours n’est respectée que lorsqu’un utilisateur l’a explicitement définie).46
  • Application de bureau : annotez la page, contrôlez la session. Le navigateur intégré bénéficie d’un mode commentaire : cliquez sur Annotate, puis sur n’importe quel élément de la page active — ou tracez un rectangle — et saisissez une note ; les commentaires enregistrés restent affichés sous forme de repères numérotés et n’envoient jamais de tour de conversation à eux seuls. Une fois terminé, « Add N comments » transfère le lot dans la zone de saisie avec une capture d’écran recadrée pour chaque repère ; chaque commentaire associé à un élément contient son sélecteur CSS, son balisage et les styles calculés pertinents pour la mise en page. L’agent peut ainsi retrouver l’élément dans votre code source au lieu de le deviner à partir d’une image (les mots de passe, les valeurs masquées et les attributs ressemblant à des clés sont expurgés avant que le balisage ne quitte la page). Les lots volumineux sont regroupés par région de la page : une vingtaine de commentaires devient ainsi une poignée de tâches qui concernent généralement des fichiers distincts, ce qui permet de les répartir en toute sécurité entre plusieurs workers parallèles. Autour de cette fonctionnalité viennent s’ajouter des commandes structurées de session et des commandes d’automatisation des sessions, la création de sessions par glisser-déposer, une vue d’importation de sessions pour les transcriptions provenant d’autres agents de programmation, display.resume_last_session (valeur par défaut : true ; lors d’un démarrage à froid, la dernière conversation ou page est rouverte), une demande de consentement à la première ouverture proposant browser.use_real_profile lorsqu’un panneau Browser s’ouvre alors que cette option est désactivée, un catalogue intégré de skills facultatifs sous Capabilities -> Skills avec installation en un clic, ainsi qu’une nouvelle interface de bureau en russe (les 17 catalogues de langues de CLI restent inchangés).47

La procédure de mise à jour reste inchangée : hermes update depuis une installation existante, ou le programme d’installation shell pour une nouvelle installation. Il reviendra à la v0.22.0 de fournir le compte rendu éditorialisé de cette période ; les ensembles ci-dessus résument ce qui change avec ce tag.41

Nouveautés de la v0.20.0 (version The Herald)

Hermes Agent v0.20.0 (tag v2026.8.3, 3 août 2026) était la version fonctionnelle précédant la v0.21.0, qui a regroupé l’ensemble des nouveautés ; les versions v0.20.1 (13 août) et v0.20.2 (16 août) sont des tags de stabilisation qui s’appuient sur elle, tandis que les versions v0.20.3 (tag v2026.8.16.2, publiée le 17 août), v0.20.4 (tag v2026.8.18, 18 août), v0.20.5 (tag v2026.8.19, publiée le 21 août) et v0.20.6 (tag v2026.8.27, 27 août) poursuivent cette série de regroupements avec leurs propres lots de fonctionnalités — consultez la sous-section ci-dessous. La période écoulée depuis la v0.19.0 couvre environ 3 650 commits, 1 400 PR fusionnées et 1 200 tickets clôturés, avec plus de 650 contributeurs.49

Trois changements rendent obsolètes les instructions données par les versions précédentes de ce guide. Lisez-les avant toute autre chose :

  • Node 26 est désormais obligatoire. Le programme d’installation fixe NODE_VERSION="26" et refuse les environnements d’exécution plus anciens avec le message « Node.js … is too old (Hermes requires Node >=26). » Les programmes d’installation, heal et upgrade appliquent tous cette exigence. Notez que la page d’installation du site de documentation indique encore Node v22 — le script d’installation et les notes de version, plus récents, font autorité.49
  • pip et Homebrew ont été abandonnés, pas simplement déclarés obsolètes. Citation exacte : « brew + pip/PyPI wheel channels retired (shell installer / Docker / Nix are the supported channels). » Si votre installation repose encore sur pip ou brew, ce canal ne reçoit plus aucune nouvelle version.49
  • La limite d’itérations par défaut pour les appels d’outils est passée de 90 à 500. Les longues exécutions autonomes ne se heurtent plus à une limite artificielle, et tous les seuils de pression sur le budget ci-dessous sont calculés par rapport à ce nouveau plafond. read_file utilise également une valeur par défaut de 2 000 lignes au lieu de 500.49

Autres nouveautés de cette version :

  • Voix conversationnelle. Synthèse vocale en streaming avec interruption par la voix et mots d’activation traités sur l’appareil.49
  • A2A v1.0. Un plugin de protocole agent à agent, qui répond à la demande de longue date du ticket nº 514.49
  • Webhooks sortants signés. hermes webhook ne gérait auparavant que les événements entrants ; la v0.20.0 ajoute des webhooks sortants de cycle de vie signés par HMAC pour les événements de session, de tour et d’outil.49
  • Citations étayées. Un nouveau skill doté d’un mode de vérification des faits.49
  • Vague d’améliorations de CLI pour les utilisateurs avancés. !command exécute instantanément une commande shell sans consommer de tour du modèle ; /init analyse le projet et crée ou met à jour un fichier AGENTS.md ; /diff affiche les changements indexés, tous les changements ou ceux de la session depuis n’importe quelle interface ; /context détaille ce qui occupe la fenêtre de contexte ; /focus propose une vue à sortie réduite permettant de récupérer les lignes masquées ; Ctrl+S met de côté une invite en cours de rédaction. hermes import-agent migre une configuration Claude Code ou Codex CLI en une seule commande.49
  • Nouveautés concernant la gestion des secrets. Une source de secrets reposant sur une commande auxiliaire et compatible avec tous les coffres, la rotation des jetons en une seule commande avec des erreurs de démarrage exploitables, un cache chiffré de dernier recours facultatif pour Bitwarden, des clés injectées depuis le coffre et limitées au dossier personnel de chaque profile, ainsi que la parité des SecretRef ${env:VAR} entre config.yaml et la configuration MCP. Le modèle d’authentification à trois voies présenté ci-dessous reste inchangé.49
  • Démarrage à chaud plus rapide. Le démarrage à froid de hermes -w est passé d’environ 14 s à 1,8 s.49
  • L’application de bureau est devenue une plateforme. Des artifacts avec des cartes versionnées et un aperçu interactif dans un bac à sable, un SDK de plugins avec Kanban comme premier plugin de bureau, un raccourci clavier global de saisie rapide, plusieurs fenêtres d’interface graphique, un mode de backend distant SSH et une connexion native conforme à la RFC 8252.49

Les regroupements v0.20.3, v0.20.4, v0.20.5 et v0.20.6 (du 17 au 27 août)

Après la v0.20.0, le projet a adopté un rythme soutenu de regroupements associés à des tags, qui ne se limitaient pas à la stabilisation. Pour les quatre versions, les notes détaillées avaient été reportées de la même façon — chacune indiquait que « full curated release notes for this window will ship with v0.21.0 » — et la v0.21.0 les a désormais publiées : la section Nouveautés de la v0.21.0 ci-dessus constitue le relevé éditorialisé de toute cette période (la version confirme que ces fenêtres « are fully documented here »). Les blocs ci-dessous restent le relevé par tag établi à l’époque — ils précisent les apports de chaque tag, que les notes éditorialisées regroupent.48233035

v0.20.3 (environ 250 commits et 125 PR depuis la v0.20.2) :

  • Migration vers MCP 2.x SDK, avec prise en charge du protocole sans état du 28 juillet 2026. Hermes adopte la génération actuelle de MCP SDK et prend en charge la révision sans état du protocole.48
  • Bot Mode est fourni sous forme de plugin intégré (hermes-bots) contenant le protocole principal de collaboration.48
  • Un plugin fournisseur CommandCode rejoint le catalogue des fournisseurs.48
  • Contrats d’exécution Cua Driver 0.20 pour l’utilisation de l’ordinateur, accompagnés d’un renforcement de la propriété de l’environnement d’exécution Python des sous-processus (isolation de PYTHONHOME/PYTHONPATH).48
  • Fiabilité : autoréparation du planificateur cron (récupération après EMFILE, rapprochement des revendications obsolètes, réarmement des tâches bloquées), corrections des pertes de données lors du transfert de sessions, autoréparation de la connexion de l’application de bureau au gateway distant et série d’améliorations issues de l’écosystème (analyse de sécurité lors de l’installation des plugins, /worktree, conservation des modifications manuelles par /rollback, lecture des fichiers UTF-16).48

v0.20.4 (environ 146 commits et 74 PR depuis la v0.20.3) :

  • L’interface vitrée de l’application de bureau : travail sur le verre mat et la translucidité, avec un sélecteur de givre et une présélection pour macOS.48
  • Une barre latérale à onglets SESSIONS|BOTS, avec masquage et réaffichage de chaque bot, ainsi que des corrections pour les discussions de groupe de Bot Mode (tours prolongés des membres, rendu Markdown, routage entre machines).48
  • Analyse consultative NVIDIA SkillEvaluator de niveau 1 lors de l’installation des skills — des vérifications de licence et de sécurité s’exécutent lorsque vous installez un skill.48
  • Renforcement de l’envoi de médias par cron (délai d’expiration configurable, pièces jointes pour les exécutions manuelles, signalement des déclenchements manqués), corrections liées au thread de la boucle d’événements et aux conflits d’accès dans SessionDB, transparence de hermes update au sujet des branches mises en attente et notifications natives du système d’exploitation pour Kanban.48

v0.20.5 (environ 746 commits et 323 PR depuis la v0.20.4) :

  • Le niveau web sans clé : la recherche web fonctionne sur les nouvelles installations sans aucune clé API — rotation gratuite entre 5 fournisseurs avec basculement en anneau.23
  • Une vague de finitions pour CLI : sélecteur /model avec recherche approximative, palette de commandes accessible avec Ctrl+P et affichage /status plus détaillé.23
  • Bot Mode gagne en maturité : fils de discussion dans les salons de groupe, résumés de conversation repliables, avatars en forme de blob et pièces jointes PDF ou autres fichiers par glisser-déposer.23
  • Outils pour les flottes et les worktrees : reçus de hermes update, hermes update --plan (les notes de version parlent de « fleet --plan verification » ; l’option appartient à hermes update, et non à une commande fleet, et l’aide de son analyseur indique qu’elle permet de « Show the update plan and exit without changing anything »), ainsi que hermes worktree list/prune.2327
  • Les tâches cron bénéficient d’une mémoire persistante et d’un niveau d’effort de raisonnement propre à chaque tâche, auxquels s’ajoutent des mécanismes de discipline d’exécution et de protection contre les blocages de l’environnement d’exécution inspirés des conclusions de l’évaluation Composio, une clarification portant sur plusieurs questions, le fournisseur sans authentification et indépendant d’opencode, ainsi que des optimisations des performances de l’application de bureau (hydratation de Bot Mode donnant la priorité au premier rendu, React Compiler dans les deux moteurs de rendu).23

v0.20.6 (tag v2026.8.27, 27 août — environ 1 313 commits et 525 PR depuis la v0.20.5) :

La version se décrit explicitement comme une « Patch release. This tag rolls up the ~525 PRs merged since v0.20.5 into a stable tagged release for downstream consumers », et sa propre description évalue cette période à environ 1 313 commits portant sur quelque 1 557 fichiers (+177 113 / −21 682), soit environ 525 PR fusionnées.30 Voici les principales nouveautés mentionnées dans cette description :

  • Navigation avec un profile réel soumise à consentement — la navigation locale peut utiliser votre profile Chromium par défaut, avec sous Windows un processus de fermeture soumis à approbation.30
  • Le navigateur de l’application de bureau dispose de sa propre fenêtre système, ainsi que d’un moteur géré de mise à jour distante SSH et d’un rail de profiles pour les flottes.30
  • Extension du catalogue MCP distant : plus de 50 serveurs hébergés par des fournisseurs et vérifiés en conditions réelles, notamment Cloudflare, Grafana Cloud, Better Stack et Railway.30
  • Chiffrement facultatif des secrets stockés avec le trousseau du système d’exploitation — fini les demandes d’autorisation du trousseau macOS à chaque lancement.30
  • Nouveaux modèles dans les sélecteurs : GLM-5.3-Flash, MiniMax M3 gratuit et MiniMax H3 Max pour la vidéo.30
  • Mise en cache des résultats avec TTL pour web_search/web_extract et tool_search multi-requête avec racinisation.30
  • La compression lean-tail est désormais utilisée par défaut — la section Compression du contexte ci-dessous décrit la configuration correspondant à ce tag.3031
  • Les backends de terminal sont devenus extensibles par plugins — consultez Backends de terminal.3032
  • Transparence des outils de mise à jour et des flottes : les outils de mise à jour suspendent les gateways via le socket de contrôle au lieu d’arrêter de force leur arborescence de processus, tandis que les installations gérées par image ou paquet refusent les mises à jour sur place qui ne sont pas sûres.30
  • Accusés de réception persistants des incidents cron avec des erreurs plus claires en cas de divergence du code, contrôles du déploiement des aperçus de liens Slack et identités de conteneurs Docker partagées.30

La procédure de mise à jour reste inchangée : hermes update depuis une installation existante, ou le programme d’installation shell pour une nouvelle installation.482330

Nouveautés de la v0.19.0 (The Quicksilver Release)

Hermes Agent v0.19.0 (tag v2026.7.20, 20 juillet 2026) tire son nom de la rapidité propre au dieu messager : cette version repose avant tout sur une réactivité brute, avec une réduction d’environ 80 % du délai avant le premier token lors du premier tour, sur toutes les plateformes. Autour de cet axe central viennent s’articuler la gestion de la facturation dans le terminal, l’utilisation de gestionnaires de mots de passe comme sources de secrets, les approbations intelligentes par défaut, des sous-agents observables et la livraison des réponses résistante aux plantages. La période écoulée depuis la v0.18.0 est la plus dense de l’histoire du projet : environ 2 245 commits, 1 065 PR fusionnées, 3 300 issues clôturées et plus de 450 contributeurs de la communauté.50

  • Environ 80 % plus rapide jusqu’au premier token, partout. À froid, le délai entre l’envoi et la distribution est passé d’environ 4,3 s à 0,9 s sur le CLI, le gateway, la TUI, l’application de bureau et cron : la détection des capacités de Discord a été retirée du chemin critique, la vérification d’Ollama est ignorée pour les fournisseurs connus comme n’utilisant pas Ollama et les opérations bloquantes ont été supprimées de l’initialisation de l’agent. La latence perçue a également fait l’objet d’une optimisation spécifique : les modèles de raisonnement diffusent désormais leur réflexion en direct par défaut (display.show_reasoning est activé) et la zone de réponse s’actualise à chaque token plutôt qu’à chaque ligne.50
  • Vague d’optimisations du rendu sur l’application de bureau et la TUI. L’application de bureau a bénéficié d’une refonte des performances répartie sur une vingtaine de PR : 14 fois moins de CPU consommé par le découpeur de Markdown en streaming grâce à une analyse lexicale incrémentielle par blocs, virtualisation des diffs dans le volet de révision, changement de session réactif même avec de longues transcriptions et suppression des nouveaux rendus de la barre latérale et des lignes d’outils à chaque token. La TUI affiche désormais le Markdown diffusé progressivement, bloc par bloc.50
  • Les installations via pip et Homebrew sont obsolètes. Ces deux méthodes ont été classées parmi les installations « héritées non prises en charge », avec une suppression prévue. Cette suppression a depuis eu lieu dans la v0.20.0 : les canaux brew et pip/PyPI wheel ont été retirés ; seuls le programme d’installation shell, Docker et Nix restent officiellement pris en charge.5049
  • Les secrets peuvent provenir de votre gestionnaire de mots de passe. Une nouvelle interface enfichable SecretSource récupère les secrets depuis Bitwarden et 1Password (références op://) au chargement. Elle permet d’activer simultanément plusieurs coffres-forts, applique un ordre de priorité déterministe, signale les conflits et indique la provenance de chaque variable : les clés API n’ont donc plus besoin d’être conservées dans un fichier .env en texte brut. De futurs fournisseurs de coffres-forts pourront être ajoutés sous forme de plugins.50
  • Les approbations intelligentes sont désormais activées par défaut. Lorsque Hermes souhaite exécuter une commande signalée, un réviseur LLM indépendant l’évalue au lieu de vous demander confirmation à chaque fois ; chaque décision ne couvre que cette commande précise. Les règles de refus définies par l’utilisateur bloquent les commandes correspondantes même en mode YOLO, /deny <reason> transmet le motif de votre refus afin que l’agent rectifie sa trajectoire et l’action d’approbation pre_tool_call du plugin (réintroduite avec des clés de règle) soumet un appel d’outil à une validation humaine.50
  • Facturation dans le terminal : /subscription et /topup. Gérez votre forfait Nous Portal sans quitter le terminal : consultez votre offre et votre quota restant, prévisualisez précisément le coût d’une montée en gamme ou la date de prise d’effet d’une rétrogradation, puis appliquez le changement avec possibilité de l’annuler. L’application de bureau bénéficie d’un onglet équivalent dans les paramètres de facturation.50
  • Observez les sous-agents travailler sans jamais perdre une réponse terminée. Les distributions lancées avec delegate_task renvoient des fichiers de transcription en direct que vous pouvez consulter avec tail -f dès le démarrage des sous-agents : chaque appel d’outil, résultat et réponse diffusée apparaît dans un journal lisible dédié à chaque enfant. Les résultats des délégations en arrière-plan persistent après un redémarrage. De plus, les réponses finales du gateway sont consignées dans un registre des obligations de livraison au sein de state.db, puis renvoyées au démarrage suivant si le gateway s’interrompt pendant leur transmission. L’option de configuration max_async_children est obsolète au profit de limites de concurrence unifiées pour les délégations.50
  • Un seul gateway, plusieurs profiles. Un gateway multiplexé unique partageant un même token de bot peut acheminer des guildes, des canaux ou des fils de discussion précis vers différents profiles, chacun disposant d’une configuration, de skills, d’une mémoire et de secrets entièrement isolés, avec une substitution via GATEWAY_MULTIPLEX_PROFILES. L’index de routage a été déplacé dans state.db ; sessions.json n’est désormais plus qu’un miroir hérité facultatif.50
  • Vague de nouveaux fournisseurs et modèles. Fireworks AI bénéficie désormais d’une intégration native (estimation des coûts et deuxième place dans le sélecteur de fournisseurs), aux côtés de DeepInfra et d’Upstage Solar. Les catalogues accueillent GPT-5.6 (Sol/Terra/Luna + Pro, intégré de bout en bout), grok-4.5 (disponibilité générale), kimi-k3 (qui remplace kimi-k2.x) et Claude Sonnet 5, lui aussi entièrement intégré. Un indicateur enabled: false propre à chaque fournisseur et la configuration excluded_providers retirent les fournisseurs inutilisés des sélecteurs et du processus de résolution de /model.50
  • L’intensité du raisonnement devient réglable. Les nouveaux niveaux d’intensité max et ultra sont disponibles sur toutes les interfaces, avec des substitutions par modèle dans la configuration, un niveau par emplacement dans les préréglages MoA (les conseillers approfondissent leur réflexion tandis que le synthétiseur reste rapide), un niveau par tâche pour les modèles auxiliaires et une commande /reasoning limitée à la session dans le CLI.50
  • Évolutions du CLI et de MCP. hermes sessions export exporte aux formats Markdown, Quarto, HTML, requête seule et trace Hugging Face, avec un nettoyage facultatif via --redact ; /model --once permet de remplacer le modèle pendant un seul tour ; les invocations de slash-skills peuvent être enchaînées (/skill-a /skill-b do XYZ) ; --safe-mode facilite le dépannage ; hermes config get/unset complètent la gestion de la configuration ; hermes serve devient un véritable backend headless ; enfin, les outils MCP adoptent la convention de nommage mcp__server__tool.50

Si vous effectuez une mise à niveau depuis la v0.18.x, deux changements méritent votre attention en priorité : une installation via pip ou Homebrew déclenche désormais un avertissement indiquant qu’il s’agit d’une méthode héritée non prise en charge (migrez vers le programme d’installation en une ligne), tandis que max_async_children est obsolète au profit des limites de concurrence unifiées pour les délégations. Tout le reste est additif : les principales raisons d’effectuer la mise à niveau sont la réduction d’environ 80 % de la latence du premier tour, les approbations intelligentes et le registre de livraison qui protège les réponses terminées contre les plantages.


Nouveautés de la v0.18.0 (The Judgment Release)

Hermes Agent v0.18.0 (tag v2026.7.1, 1er juillet 2026) tire son nom du jugement : l’agent vérifie son propre travail au lieu d’affirmer qu’il a réussi, tandis que son raisonnement collectif devient réellement observable. Cette version résorbe également l’intégralité du backlog P0/P1, soit environ 692 éléments de priorité maximale résolus en 12 jours.22

  • Mixture-of-Agents comme modèle de premier ordre. MoA peut désormais être sélectionné comme n’importe quel autre modèle sur toutes les interfaces, et le raisonnement collectif devient visible : la sortie complète de chaque modèle de référence s’affiche dans son propre bloc libellé, avec diffusion de la réponse en direct. Vous pouvez ainsi observer la réflexion de l’ensemble plutôt que de recevoir une réponse fusionnée opaque.22
  • Contrats d’achèvement pour /goal. Avant de déclarer un objectif atteint, l’agent vérifie désormais son propre travail en exécutant les contrôles du projet au lieu d’affirmer simplement sa réussite : il applique son jugement à lui-même.22
  • /learn — décrivez n’importe quoi pour en faire un skill. Transformez un workflow en skill réutilisable en le décrivant ; les skills générés respectent automatiquement les conventions du fichier CONTRIBUTING.md du dépôt.22
  • Chronologie /journey. Un historique visuel de la mémoire et des skills au fil du temps, avec des fonctions de modification, ainsi qu’un graphe de mémoire dans l’application de bureau.22
  • Déploiement en éventail des sous-agents en arrière-plan. Déléguez plusieurs tâches qui s’exécutent simultanément sans bloquer la conversation : l’unique sous-agent d’arrière-plan de la v0.17.0 devient une véritable flotte.22
  • Projects dans l’application de bureau. Des Projects de développement de premier ordre, organisés selon un modèle projet/dépôt/lane.22
  • Gateway avec mise à l’échelle jusqu’à zéro. Les gateways peuvent se mettre en veille lorsqu’ils sont inactifs et coordonner leur drainage pour assurer des déploiements transparents, ce qui compte particulièrement si vous exécutez Hermes comme service permanent.22
  • Prise en charge de Google Vertex AI. L’accès à Gemini via des comptes de service GCP, avec actualisation automatique des tokens OAuth2, rejoint le catalogue des fournisseurs.22
  • Commande d’édition /prompt. Ouvre $EDITOR pour rédiger des requêtes multilignes au lieu de lutter avec la ligne de saisie.22

Si vous effectuez une mise à niveau depuis la v0.17.x, rien ici ne rompt le CLI. Les principales raisons d’effectuer la mise à niveau sont les contrats d’achèvement (des objectifs qui se vérifient eux-mêmes), MoA comme fonctionnalité de premier ordre avec des ensembles observables et /learn pour capturer des skills.


Nouveautés de la v0.17.0 (The Reach Release)

Hermes Agent v0.17.0 (tag v2026.6.19, 19 juin 2026) tire son nom de la portée désormais étendue de l’agent — nouveaux canaux de messagerie, nouveaux fournisseurs de modèles et contrôle plus poussé de l’application de bureau et du tableau de bord. Cette version enrichit la v0.16.x ; l’interface CLI reste inchangée.21

  • Nouveaux canaux de messagerie. iMessage fonctionne désormais sans relais Mac grâce à Photon Spectrum (OAuth par code d’appareil, hermes photon login) ; l’API WhatsApp Business Cloud est un adaptateur Meta officiel qui supprime la nécessité d’un processus de passerelle ; SimpleX prend désormais en charge les groupes, les pièces jointes natives, le regroupement des textes et l’acceptation automatique ; enfin, Raft rejoint les plugins de plateforme intégrés avec un canal de réveil dont la confidentialité est garantie par contrat.21
  • Nouveaux modèles et fournisseurs. Le catalogue accueille z-ai/glm-5.2 (contexte de 1 million), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra et grok-composer-2.5-fast (le modèle de Cursor via OAuth xAI, avec un contexte de 200 000). Le modèle xAI par défaut devient grok-build-0.1, tandis que les modèles adaptatifs Anthropic suivent désormais le contrat de raisonnement moderne (ils n’envoient jamais de champ reasoning).21
  • Application de bureau et tableau de bord. L’application de bureau accueille les sous-agents en arrière-plan, avec des « fenêtres de suivi » diffusant en direct l’activité déléguée (delegate_task(background=true)), un sélecteur de modèle Composer, des raccourcis clavier reconfigurables, des notifications natives du système d’exploitation, des brouillons de saisie propres à chaque fil, des thèmes issus du VS Code Marketplace, ainsi qu’une interface en japonais et en chinois traditionnel. Le tableau de bord ajoute un outil complet de création de profile (modèle, skills et MCPs sans modifier config.yaml), un sélecteur global de profile, un Skills Hub remanié avec analyse de sécurité, des Automation Blueprints (modèles paramétrés utilisables depuis un formulaire, une commande slash, une conversation ou la documentation) et une connexion sécurisée qui renvoie le code 401 derrière la barrière OAuth.21
  • Skills et outils. image_generate peut désormais modifier et transformer une image source, au lieu de seulement en créer une de toutes pièces, avec tous les fournisseurs d’images pris en charge ; l’outil memory dispose maintenant d’un tableau operations pour effectuer en une seule requête des ajouts, remplacements et suppressions atomiques par lots ; un nouveau skill simplify-code exécute en parallèle une passe de révision et de nettoyage menée par trois agents, conditionnée par un niveau de risque fondé sur le principe de la « barrière de Chesterton » ; enfin, le booléen write_approval remplace le paramètre à trois états write_mode.21
  • Architecture. Les sous-agents en arrière-plan renvoient immédiatement un identifiant et réintroduisent leur résultat dans un nouveau tour ; un gestionnaire de sollicitation MCP permet de demander une confirmation au cours d’un appel d’outil, tandis que les outils MCP qui se connectent tardivement sont exposés entre les tours sans compromettre le cache ; cron devient un CronScheduler modulaire, doté d’un fournisseur de cron géré Chronos ; enfin, un nouveau périmètre Managed (/etc/hermes) permet à un administrateur d’imposer une configuration que l’utilisateur ne peut pas modifier, parallèlement à un relais Gateway-Gateway destiné aux topologies à plusieurs gateway.21
  • Nouvelles commandes. /version, /billing (gestion interactive de la facturation dans le terminal), hermes photon login (authentification iMessage) et hermes curator run --consolidate — la consolidation est désormais facultative, si bien que la curation courante en arrière-plan ne consomme aucun token.21
  • Sécurité. La v0.17.0 corrige un contournement de la liste de refus permettant une évasion shell, adopte un comportement de refus sécurisé en l’absence de modules d’approbation ou d’adaptateurs gateway appliquant leur propre politique, assainit l’environnement des sous-processus exécutant les scripts des tâches cron, masque les secrets dans les vidages de débogage des requêtes, recherche les motifs d’exfiltration dans les configurations stdio MCP et met à jour urllib3 ainsi que PyJWT pour corriger des CVE.21

Si vous effectuez une mise à niveau depuis la v0.16.x, rien ici ne rompt la compatibilité de l’interface CLI : il s’agit de nouveaux canaux, modèles et points d’accès autour du même agent. iMessage sans relais, les adaptateurs WhatsApp officiels et le périmètre administrateur Managed constituent les principales raisons d’effectuer la mise à niveau.


Nouveautés de la v0.16.0 (The Surface Release)

Hermes Agent v0.16.0 (tag v2026.6.5, 5 juin 2026) tire son nom des nouvelles interfaces qu’elle place devant l’agent centré sur CLI. La grande nouveauté : Hermes ne se limite plus au terminal.20

  • Application de bureau native. Hermes Desktop est une nouvelle application Electron pour macOS, Linux et Windows, avec installation en un clic et mise à jour automatique intégrée. Elle propose une fenêtre de chat en streaming, le glisser-déposer de fichiers, le collage d’images depuis le presse-papiers, une palette Cmd+K, une liste de sessions avec archivage et recherche, ainsi qu’un sélecteur de modèle dans la barre d’état. Elle peut se connecter à une gateway Hermes distante par l’intermédiaire d’un WebSocket sécurisé, avec une authentification par OAuth ou identifiant et mot de passe, des hôtes distants propres à chaque profile et des sessions simultanées sur plusieurs profiles, reliées par des références @session inter-profiles. L’interface de bureau comprend également une traduction complète en chinois simplifié (简体中文), assurée par une couche i18n typée (display.language ; l’anglais reste la langue par défaut).20
  • Panneau d’administration dans le navigateur. Le tableau de bord web local, auparavant simple vue d’état, devient un panneau d’administration complet : catalogue MCP avec boutons d’activation et de désactivation, gestion des identifiants, création de webhooks et de hooks, configuration de la mémoire, commandes de la gateway et page System permettant de rechercher les mises à jour avant leur installation ainsi que de lancer Debug Share en un clic. Une nouvelle page Channels permet de configurer depuis le navigateur toutes les plateformes de messagerie de la gateway (Telegram, Discord, Slack et les autres). L’authentification est désormais modulaire : connexion par identifiant et mot de passe, fournisseur OIDC générique auto-hébergé, hermes dashboard register pour un client OAuth auto-hébergé et rotation des sessions par refresh token.20
  • Nouvelles commandes CLI et slash. /undo [N] revient sur les N derniers tours de l’utilisateur, avec préremplissage et suppression réversible, et fonctionne dans l’interface CLI, la TUI et sur toutes les plateformes de messagerie. Il est maintenant possible de définir l’interface par défaut (cli ou tui), avec une option --cli pour la remplacer ponctuellement ; la TUI bénéficie d’une commande /model unifiée et d’une fenêtre superposée Sessions. hermes portal devient un alias lisible du parcours d’intégration de Nous Portal, avec de nouveaux parcours de premier démarrage Quick Setup et Full Setup. Deux outils de diagnostic font aussi leur apparition : hermes prompt-size et hermes sessions optimize.20
  • Nouveaux modèles et fournisseurs. Le sélecteur accueille deepseek-v4-flash, MiniMax-M3 (contexte de 1 million, fournisseurs MiniMax natifs), qwen3.7-plus (Nous + OpenRouter) et gemini-3.5-flash (OAuth Gemini + clé API). Un fournisseur OAuth xAI Grok natif rejoint le lanceur de l’application de bureau, la recherche du sélecteur de modèle devient approximative sur toutes les interfaces, les fournisseurs à plusieurs endpoints sont regroupés sur une seule ligne et l’actualisation du catalogue passe d’un rythme quotidien à un rythme horaire.20 (Depuis, la v0.21.1 a de nouveau modifié cette fréquence : les catalogues distants du sélecteur sont actualisés toutes les 20 minutes, model_catalog.ttl_minutes.46)
  • Skills allégés et divulgation progressive. L’ensemble de skills par défaut abandonne les skills redondants et obsolètes (Spotify devient un plugin natif, Linear passe à hermes mcp install linear et plusieurs entrées périmées sont supprimées), déplace davantage d’éléments dans la catégorie facultative et ajoute une condition de pertinence environments: dans le frontmatter (kanban/docker/s6), qui maintient les skills propres à un contexte hors de l’index jusqu’à ce qu’ils soient demandés. NVIDIA/skills devient une source fiable par défaut du Skills Hub, aux côtés d’OpenAI, Anthropic et HuggingFace. Les outils MCP et ceux des plugins bénéficient d’une divulgation progressive (délimitée), tandis qu’un bug MCP qui signalait à tort la réussite de l’authentification OAuth lorsqu’aucun token n’avait été obtenu est corrigé.20
  • Sécurité. La v0.16.0 impose une version corrigée de Starlette (≥1.0.1) pour la faille CVE-2026-48710 (BadHost), retire de la boucle d’événements les vérifications d’URL contre les attaques SSRF dans les parcours asynchrones, supprime le token bearer d’inférence Bedrock de l’environnement des sous-processus, ajoute bws_cache.json au mécanisme de protection de la lecture des fichiers, ajoute docker restart/stop/kill à la liste des motifs dangereux et assainit les caractères Unicode invisibles dans le contenu vérifié des skills. Cette version a corrigé 2 problèmes P0 et 62 problèmes P1, dont 16 liés à la sécurité.20

Si vous effectuez une mise à niveau depuis la v0.15.x, rien de tout cela ne rompt la compatibilité de l’interface CLI elle-même ; il s’agit de nouvelles interfaces et de nouveaux fournisseurs autour du même agent. L’application de bureau et le panneau d’administration sont les principales raisons d’effectuer la mise à niveau si vous souhaitez proposer Hermes à des utilisateurs qui ne travaillent pas dans un terminal ou administrer une gateway distante depuis un navigateur.


Installation

Le programme d’installation en une ligne constitue la méthode d’installation prise en charge. Il gère Python, uv, Node.js, ripgrep, ffmpeg, le clonage du dépôt, l’environnement virtuel et la commande globale hermes.7

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Les installations avec pip et Homebrew sont obsolètes depuis la version v0.19.0. Le paquet PyPI introduit par la version v0.14.0 (pip install hermes-agent) et la formule Homebrew sont désormais signalés comme des installations « héritées non prises en charge » : chaque interface affiche un avertissement (sans rien bloquer) lorsque Hermes en détecte une, et l’arrêt de la publication sur PyPI/Homebrew est prévu. Si vous avez effectué l’installation avec pip ou brew, migrez vers le programme d’installation ci-dessus.50

Fonctionne sous Linux, macOS, WSL2 et Android/Termux (le programme d’installation détecte automatiquement Termux et utilise un ensemble de paquets Android testé).7 Windows en mode natif est désormais une plateforme de niveau 1, et non plus la version bêta préliminaire livrée avec la v0.14.0 : installez-la avec iex (irm https://hermes-agent.nousresearch.com/install.ps1). La documentation souligne toutefois une restriction : sous macOS, seuls les Mac avec Apple Silicon sont pris en charge ; les Mac Intel ne le sont pas.49 Historiquement, la v0.14.0 avait ajouté la prise en charge native de Windows en version bêta préliminaire au moyen d’un programme d’installation PowerShell, mais WSL2 reste l’option la plus sûre pour un usage en production en attendant que la prise en charge de Windows gagne en maturité.19

Une fois l’installation terminée :

source ~/.bashrc    # or ~/.zshrc
hermes              # Start chatting

Le seul prérequis est git. Le programme d’installation configure automatiquement Python 3.11 avec uv (sans nécessiter sudo), Node.js 26 (pour l’automatisation du navigateur et le bridge WhatsApp), ripgrep et ffmpeg. Depuis la v0.20.0, Node 26 constitue la version minimale obligatoire : le programme d’installation refuse toute version antérieure et installe à la place une version de Node gérée par Hermes.497

Vérifier l’installation

hermes --version    # Check version (global flag; there is no `version` subcommand)
hermes doctor       # Diagnose config/dependency issues
hermes status       # Show current configuration + auth state
hermes dump         # Copy-pasteable setup summary for debugging

hermes doctor vous indique précisément ce qui manque et comment y remédier.7 hermes dump est la commande de diagnostic à coller dans une issue GitHub ou un fil de discussion Discord lorsque vous demandez de l’aide : elle fournit un récapitulatif en texte brut de l’ensemble de votre configuration, dont les secrets sont masqués.8

Installation manuelle

Si vous avez besoin d’un contrôle total — version personnalisée de Python, extras spécifiques, intégration à Nix/NixOS — la procédure manuelle est décrite pas à pas dans le guide d’installation du projet en amont.7 Voici les principaux extras facultatifs que vous pouvez combiner avec uv pip install -e ".[<extras>]" :

Extra Fonctionnalités ajoutées
all Tous les éléments ci-dessous
messaging gateway Telegram et Discord
cron Analyse des expressions cron
cli Interface de menu dans le terminal pour l’assistant de configuration
modal Backend d’exécution cloud Modal
voice Entrée microphone CLI et lecture audio
tts-premium Voix premium ElevenLabs
honcho Mémoire native pour l’IA (intégration Honcho)
mcp Prise en charge de Model Context Protocol
homeassistant Intégration à Home Assistant
acp Prise en charge de l’intégration aux éditeurs ACP
slack Messagerie Slack
pty Prise en charge des terminaux PTY (outils CLI interactifs)
dev pytest et utilitaires de test
termux Ensemble de paquets Android testé (comprend cron, cli, pty, mcp, honcho, acp)

La commande d’installation pour Termux est différente — elle utilise pip avec un fichier de contraintes, et non uv pip :

python -m pip install -e ".[termux]" -c constraints-termux.txt

En effet, sous Android, .[all] installe faster-whisper par l’intermédiaire de l’extra voice, lequel dépend de wheels ctranslate2 qui ne sont pas publiés pour Android.7


Authentification et fournisseurs

À la version v2026.9.7, hermes_cli/models_catalog_static.py contient 39 entrées statiques CANONICAL_PROVIDERS à la ligne 311 (la décomposition de septembre 2026 a déplacé la liste hors de hermes_cli/models.py ; les entrées elles-mêmes restent inchangées, y compris tencent-tokenplan de la v0.21.0) et étend automatiquement cette liste à partir de plugins/model-providers/ (39 dossiers inclus ; neuf d’entre eux — actual, alibaba-coding-plan, commandcode, deepinfra, meta-ai, nebius-token-factory, opencode-free, router, upstage — n’ont aucune entrée statique et sont intégrés par l’extension automatique, car ils utilisent le type d’authentification api_key par défaut). La page de documentation consacrée aux fournisseurs présente dans ses tableaux 45 fournisseurs cloud et par abonnement, ainsi qu’une ligne dédiée aux endpoints personnalisés, puis décrit séparément les serveurs locaux et auto-hébergés (Ollama, vLLM, SGLang, llama.cpp, LM Studio, LiteLLM, ClawRouter et tout endpoint compatible avec OpenAI).26 À cela s’ajoutent les endpoints personnalisés et trois parcours d’authentification distincts. Voici l’ensemble des options d’authentification, organisé par parcours pour vous permettre de trouver celui qui correspond à votre situation.

Les trois parcours d’authentification

Chaque fournisseur dans Hermes suit l’un des trois schémas d’authentification suivants :

Parcours 1 — Clé API dans .env. Placez votre clé dans ~/.hermes/.env : Hermes la lit au démarrage. Ce parcours est utilisé par OpenRouter, AI Gateway, z.ai/GLM, Kimi/Moonshot, MiniMax (ainsi que MiniMax China), Alibaba Cloud/DashScope, Kilo Code, OpenCode Zen, OpenCode Go, DeepSeek, Hugging Face, Google/Gemini et la plupart des fournisseurs tiers.2 Depuis la v0.19.0, la clé ne doit plus nécessairement résider dans un fichier en texte brut : une interface extensible SecretSource peut récupérer les secrets depuis Bitwarden ou 1Password (références op://) lors du chargement, avec plusieurs coffres activés simultanément, un ordre de priorité déterministe, des avertissements en cas de conflit et la provenance de chaque variable — .env reste la solution de repli. (Ce mécanisme diffère du jeton d’amorçage de Bitwarden Secrets Manager introduit dans la v0.15.0, qui regroupait les clés des fournisseurs derrière un seul jeton ; SecretSource remplace le fichier en texte brut lui-même, et de futurs fournisseurs de coffres pourront être ajoutés sous forme de plugins.)50

Parcours 2 — OAuth via hermes model ou hermes auth. Lance un flux de code d’appareil, ouvre un navigateur et stocke les identifiants dans ~/.hermes/auth.json (avec la possibilité d’importer des identifiants existants depuis des outils tels que Claude Code ou Codex CLI). Ce parcours est utilisé par Nous Portal, OpenAI Codex (compte ChatGPT), GitHub Copilot et Anthropic (Claude Pro/Max).2

Parcours 3 — Endpoint personnalisé dans config.yaml. Pour tout API compatible avec OpenAI — Ollama, vLLM, SGLang, llama.cpp, LM Studio, proxy LiteLLM, Together AI, Groq, Azure OpenAI ou votre propre serveur auto-hébergé. Il se configure une seule fois via hermes model → Custom endpoint, puis est enregistré dans config.yaml.2

Matrice complète des fournisseurs

Cette matrice couvre les fournisseurs présentés dans les tableaux de la documentation, avec la procédure de configuration exacte pour chacun ; à cette version, le sélecteur en répertorie davantage que la documentation (voir le décompte ci-dessus), et tout service compatible avec OpenAI peut passer par la ligne consacrée aux endpoints personnalisés.226

Fournisseur Parcours d’authentification Configuration
Nous Portal OAuth hermes model (connexion OAuth, sur abonnement)
OpenAI Codex OAuth hermes model (code d’appareil ChatGPT, utilise les modèles Codex)
GitHub Copilot OAuth ou jeton hermes model (code d’appareil OAuth), ou COPILOT_GITHUB_TOKEN / GH_TOKEN / gh auth token
GitHub Copilot ACP Sous-processus local hermes model (nécessite copilot CLI dans PATH + copilot login)
Anthropic OAuth ou clé API hermes model (privilégie les identifiants Claude Code), ou ANTHROPIC_API_KEY, ou jeton de configuration ANTHROPIC_TOKEN
OpenRouter Clé API OPENROUTER_API_KEY dans ~/.hermes/.env
AI Gateway (Vercel) Clé API AI_GATEWAY_API_KEY dans ~/.hermes/.env (fournisseur : ai-gateway)
z.ai / GLM (ZhipuAI) Clé API GLM_API_KEY dans ~/.hermes/.env (fournisseur : zai)
Kimi / Moonshot Clé API KIMI_API_KEY dans ~/.hermes/.env (fournisseur : kimi-coding). La v0.19.0 ajoute kimi-k3 aux catalogues (kimi-k2.x a été retiré).50
MiniMax (mondial) Clé API MINIMAX_API_KEY dans ~/.hermes/.env (fournisseur : minimax)
MiniMax China Clé API MINIMAX_CN_API_KEY dans ~/.hermes/.env (fournisseur : minimax-cn)
Alibaba Cloud (Qwen) Clé API DASHSCOPE_API_KEY dans ~/.hermes/.env (fournisseur : alibaba, alias : dashscope, qwen)
Kilo Code Clé API KILOCODE_API_KEY dans ~/.hermes/.env (fournisseur : kilocode)
OpenCode Zen Clé API OPENCODE_ZEN_API_KEY dans ~/.hermes/.env (fournisseur : opencode-zen)
OpenCode Go Clé API OPENCODE_GO_API_KEY dans ~/.hermes/.env (fournisseur : opencode-go)
DeepSeek Clé API DEEPSEEK_API_KEY dans ~/.hermes/.env (fournisseur : deepseek)
Hugging Face Clé API HF_TOKEN dans ~/.hermes/.env (fournisseur : huggingface, alias : hf)
Google / Gemini Clé API GOOGLE_API_KEY ou GEMINI_API_KEY dans ~/.hermes/.env (fournisseur : gemini)
Fireworks AI Clé API Fournisseur pleinement intégré, avec estimation des coûts et colonnes de prix mises en cache dans le sélecteur de modèles ; promu à la deuxième position dans les sélecteurs de fournisseurs. Nouveau dans la v0.19.0.50
DeepInfra Clé API Fournisseur pleinement intégré, avec une intégration renforcée. Nouveau dans la v0.19.0.50
Upstage Solar Clé API Fournisseur pleinement intégré. Nouveau dans la v0.19.0.50
xAI (Grok) Fournisseur natif / OAuth SuperGrok Fournisseur pleinement intégré, avec accès direct à API et catalogue de modèles (v0.9.0+). La v0.14.0 ajoute OAuth SuperGrok et porte la fenêtre de contexte de grok-4.3 à 1 million de tokens pour les comptes éligibles.21619 La v0.17.0 ajoute grok-composer-2.5-fast (le modèle de Cursor via OAuth xAI, avec un contexte de 200 000 tokens) et définit grok-build-0.1 comme modèle xAI par défaut.21 La v0.19.0 fait passer grok-4.5 en disponibilité générale dans le catalogue.50
Voix personnalisées xAI Clé API Fournisseur TTS avec clonage vocal. Nouveau dans la v0.13.0 ; configurez-le sous tts: dans config.yaml et fournissez la clé xAI dans .env.18
Xiaomi MiMo Fournisseur natif Fournisseur pleinement intégré, avec assistant de configuration et catalogue de modèles. MiMo v2 Pro est disponible gratuitement sur Nous Portal pour les tâches auxiliaires (v0.9.0+).1615
Google AI Studio Clé API GOOGLE_API_KEY ou GEMINI_API_KEY dans ~/.hermes/.env. Accès direct à Gemini avec détection automatique des longueurs de contexte via le registre models.dev (v0.8.0+).15
Qwen OAuth (Portal) OAuth hermes model → « Qwen OAuth (Portal) » (fournisseur : qwen-oauth ; connexion PKCE dans le navigateur réutilisant une connexion locale à Qwen CLI). Fournisseur OAuth prenant en charge les requêtes du portail (v0.8.0+). Le parcours DashScope par clé API ci-dessus, auparavant nommé Alibaba Cloud, a été renommé Qwen Cloud dans la v0.14.0 ; les clés de configuration existantes continuent de fonctionner.151926
OpenCode Free Sans clé Aucune clé API ni aucun compte requis (fournisseur : opencode-free, alias : free, opencode_free). Sélectionnez-le via hermes model ou /model free ; les requêtes sont envoyées anonymement. Le plugin est arrivé durant la période de la v0.20.5, dont les notes de version le décrivent comme « le fournisseur opencode-free sans authentification ».2326
OpenAI API (direct) Clé API OPENAI_API_KEY dans ~/.hermes/.env (fournisseur : openai-api, OPENAI_BASE_URL facultatif)26
Google Vertex AI OAuth2 / ADC hermes model → « Google Vertex AI » (fournisseur : vertex ; OAuth2 via le JSON d’un compte de service ou les identifiants Application Default Credentials, facturé à votre projet GCP)26
Azure AI Foundry Endpoint + clé hermes model → « Azure AI Foundry » (fournisseur : azure-foundry ; utilise votre endpoint et votre clé Azure OpenAI / Foundry ; le sélecteur le décrit comme un « endpoint de type OpenAI ou Anthropic »)26
AWS Bedrock Identifiants AWS hermes model → « AWS Bedrock » (fournisseur : bedrock ; chaîne d’identifiants AWS standard via boto3, IAM ou clé API ; Claude, Nova, Llama, DeepSeek)26
NVIDIA NIM / Build Clé API NVIDIA_API_KEY dans ~/.hermes/.env (fournisseur : nvidia ; Nemotron et autres modèles hébergés par NIM sur build.nvidia.com, ou endpoint NIM local via le remplacement de l’URL de base)26
Ollama Cloud OAuth ou clé API hermes model → « Ollama Cloud » (fournisseur : ollama-cloud ; collez OLLAMA_API_KEY et choisissez parmi les modèles hébergés dans le cloud détectés)26
StepFun Step Plan Clé API STEPFUN_API_KEY dans ~/.hermes/.env (fournisseur : stepfun ; modèles d’agent et de programmation via le API de Step Plan)26
MiniMax (OAuth) OAuth hermes model → « MiniMax (OAuth) » (fournisseur : minimax-oauth ; connexion PKCE dans le navigateur pour le Coding Plan, région mondiale ou chinoise)26
Meta AI Clé API MODEL_API_KEY dans ~/.hermes/.env (fournisseur : meta-ai ; Meta Model API, famille Muse Spark)26
NovitaAI Clé API NOVITA_API_KEY dans ~/.hermes/.env (fournisseur : novita ; plus de 200 modèles, Model API, Agent Sandbox, GPU Cloud)26
Arcee AI Clé API ARCEEAI_API_KEY dans ~/.hermes/.env (fournisseur : arcee ; alias : arcee-ai, arceeai ; modèles Trinity)26
GMI Cloud Clé API GMI_API_KEY dans ~/.hermes/.env (provider : gmi ; aliases : gmi-cloud, gmicloud). Utilisez l’identifiant de modèle exact renvoyé par l’endpoint /v1/models de GMI26
Actual Computer Clé API ou daemon local ACTUAL_API_KEY dans ~/.hermes/.env pour le relais hébergé, ou ACTUAL_BASE_URL=http://127.0.0.1:8080 pour le daemon local sans clé sur l’interface loopback (provider : actual ; aliases : actual-computer, actualcomputer, aci)26
Tencent TokenHub Clé API TOKENHUB_API_KEY dans ~/.hermes/.env (provider : tencent-tokenhub ; aliases : tencent, tokenhub, tencentmaas ; Hy3 Preview)26
CommandCode Clé API COMMANDCODE_API_KEY dans ~/.hermes/.env (provider : commandcode, alias commandcode-chat ; modèles Claude via commandcode-anthropic, alias commandcode-claude). Fonctionne avec les forfaits GOAT/Pro/Max/Provider, mais pas avec le forfait Go à 1 $, qui ne donne pas accès à API. Le plugin est arrivé durant la période de la v0.20.3.4826
Alibaba Cloud (Coding Plan) Clé API DASHSCOPE_API_KEY (provider : alibaba-coding-plan, alias alibaba_coding) ; une référence de facturation distincte utilisant un endpoint différent de celui du provider DashScope alibaba26
Tencent TokenPlan Clé API TOKENPLAN_API_KEY dans ~/.hermes/.env (provider : tencent-tokenplan, aliases : tokenplan, tencent-lkeap ; aperçu de Hy4 via l’endpoint Messages Anthropic sur api.lkeap.cloud.tencent.com). Nouveauté de la v0.21.0 ; le sélecteur regroupe TokenHub et TokenPlan sous une seule ligne d’affichage « Tencent Hy »3536
Nebius Token Factory Clé API NEBIUS_API_KEY dans ~/.hermes/.env (provider : nebius-token-factory ; aliases : nebius, nebius-tf, tokenfactory). Nouveauté de la v0.21.03536
Ramp Router Clé API RAMP_ROUTER_API_KEY dans ~/.hermes/.env (provider : router ; aliases : ramp-router, ramp, router.com). Le gateway LLM natif d’OpenAI Responses de Ramp sur api.router.com dispose d’un catalogue dynamique propre au compte : les identifiants de modèles valides correspondent à ceux que renvoie /v1/models pour votre clé, si bien que le sélecteur les récupère au lieu de les coder en dur. Nouveauté de la v0.21.03536
Alibaba Cloud (Token Plan) Clé API ALIBABA_TOKEN_PLAN_API_KEY dans ~/.hermes/.env (provider : alibaba-token-plan ; endpoint pour la Chine continentale : alibaba-token-plan-cn) — le forfait à nombre fixe de tokens de Model Studio, une troisième référence Alibaba aux côtés de alibaba et alibaba-coding-plan36
Endpoint personnalisé config.yaml hermes model → « Custom endpoint » (enregistré dans config.yaml). La liste des services compatibles avec OpenAI dans la documentation comprend Together AI, Groq, Cerebras (https://api.cerebras.ai/v1), Mistral, Azure OpenAI, LocalAI et Jan26
Depuis la v0.19.0, vous pouvez également masquer les providers que vous n’utilisez pas : un indicateur enabled: false propre à chaque provider et une clé de configuration excluded_providers les retirent des sélecteurs /model et de la résolution intégrée des providers.50

Anthropic : trois méthodes d’authentification

Anthropic dispose de sa propre section, car Hermes prend en charge trois voies distinctes pour accéder à Claude, et il est essentiel de choisir la bonne. D’après la documentation en amont :2

# Method 1: API key (pay-per-token)
export ANTHROPIC_API_KEY=***
hermes chat --provider anthropic --model claude-sonnet-4-6

# Method 2: OAuth through hermes model (preferred)
# Uses Claude Code's credential store when available
hermes model

# Method 3: Manual setup-token (fallback/legacy)
export ANTHROPIC_TOKEN=***
hermes chat --provider anthropic

# Auto-detect Claude Code credentials
hermes chat --provider anthropic   # reads Claude Code files automatically

Lorsque vous choisissez Anthropic OAuth avec hermes model, Hermes privilégie le propre magasin d’identifiants de Claude Code au lieu de copier le token dans ~/.hermes/.env. Ainsi, les identifiants Claude actualisables le restent.2 Si vous utilisez déjà Claude Code sur la même machine, c’est la solution la plus propre.

Pour définir Anthropic de façon permanente dans config.yaml :

model:
  provider: "anthropic"
  default: "claude-sonnet-4-6"

--provider claude et --provider claude-code fonctionnent également comme raccourcis de --provider anthropic.2

Copilot GitHub : deux modes

Copilot est pris en charge selon deux modes : l’API Copilot directe (recommandée) et Copilot ACP (qui lance le CLI Copilot local en tant que sous-processus).2

# Direct Copilot API
hermes chat --provider copilot --model gpt-5.4

# Copilot ACP (requires the Copilot CLI in PATH + an existing copilot login)
hermes chat --provider copilot-acp --model copilot-acp

D’après la documentation en amont, l’authentification est vérifiée dans cet ordre :2 1. Variable d’environnement COPILOT_GITHUB_TOKEN 2. Variable d’environnement GH_TOKEN 3. Variable d’environnement GITHUB_TOKEN 4. Solution de repli CLI avec gh auth token 5. Connexion par code d’appareil OAuth via hermes model

Le type de token est déterminant. L’API Copilot ne prend pas en charge les Personal Access Tokens classiques (ghp_*). Les types pris en charge sont les tokens OAuth (gho_*), les PAT à granularité fine (github_pat_* avec l’autorisation Copilot Requests) et les tokens d’application GitHub (ghu_*). Si gh auth token renvoie un token ghp_*, utilisez plutôt hermes model pour vous authentifier via OAuth.2

Providers d’IA chinois (prise en charge native)

Hermes intègre la prise en charge de z.ai/GLM, Kimi/Moonshot, MiniMax (endpoints mondiaux et chinois) et Alibaba Cloud avec des identifiants de provider dédiés.2

# z.ai / ZhipuAI GLM
hermes chat --provider zai --model glm-5                 # Requires: GLM_API_KEY

# Kimi / Moonshot AI
hermes chat --provider kimi-coding --model kimi-for-coding   # Requires: KIMI_API_KEY

# MiniMax (global)
hermes chat --provider minimax --model MiniMax-M2.7          # Requires: MINIMAX_API_KEY

# MiniMax (China)
hermes chat --provider minimax-cn --model MiniMax-M2.7       # Requires: MINIMAX_CN_API_KEY

# Alibaba Cloud / DashScope (Qwen)
hermes chat --provider alibaba --model qwen3.5-plus          # Requires: DASHSCOPE_API_KEY

Les URL de base peuvent être remplacées à l’aide des variables d’environnement GLM_BASE_URL, KIMI_BASE_URL, MINIMAX_BASE_URL, MINIMAX_CN_BASE_URL ou DASHSCOPE_BASE_URL.2

Z.AI détecte automatiquement l’endpoint. Lorsque vous utilisez le provider z.ai/GLM, Hermes sonde plusieurs endpoints (mondiaux, chinois et variantes de codage) afin d’en trouver un qui accepte votre clé API. L’endpoint fonctionnel est automatiquement mis en cache : GLM_BASE_URL n’est donc pas nécessaire pour la plupart des utilisateurs.2

xAI (Grok) active automatiquement la mise en cache des prompts. Lorsque l’URL de base contient x.ai, Hermes envoie l’en-tête x-grok-conv-id avec chaque requête afin de les acheminer vers le même serveur pendant une session de conversation, ce qui permet de réutiliser les prompts système et l’historique mis en cache.2 Tout est automatique ; aucune configuration n’est nécessaire.

La commande hermes auth

hermes auth est la commande de gestion des identifiants destinée aux pools et aux identifiants OAuth.6

hermes auth                              # Interactive wizard
hermes auth list                         # Show all credential pools
hermes auth list openrouter              # Show one provider's pool
hermes auth add openrouter --api-key sk-or-v1-xxx
hermes auth add anthropic --type oauth
hermes auth remove openrouter 2          # Remove by index
hermes auth reset openrouter             # Clear cooldowns

Les pools d’identifiants permettent d’alterner entre plusieurs clés API ou tokens OAuth pour un même provider. Ils sont utiles pour répartir les limites de débit entre plusieurs clés sans modifier le code.6 Les anciennes commandes hermes login / hermes logout ont été supprimées ; utilisez désormais hermes auth.6

Endpoints personnalisés et auto-hébergés

Hermes fonctionne avec tout endpoint API compatible avec OpenAI. Si un serveur implémente /v1/chat/completions, vous pouvez y connecter Hermes.2

Configuration interactive (recommandée) :

hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter: API base URL, API key, Model name

Configuration manuelle de config.yaml :

model:
  default: your-model-name
  provider: custom
  base_url: http://localhost:8000/v1
  api_key: your-key-or-leave-empty-for-local

Les deux méthodes enregistrent les paramètres dans config.yaml, qui constitue l’unique source de vérité pour le modèle principal, le provider et l’URL de base.2 Les anciennes variables d’environnement OPENAI_BASE_URL et LLM_MODEL ne sont plus lues pour configurer le modèle principal : utilisez hermes model ou modifiez directement config.yaml.2 (OPENAI_BASE_URL + OPENAI_API_KEY restent pris en charge comme solution de repli pour le chemin de routage auxiliaire provider: "main" ; ne les supprimez donc pas à l’aveugle si vous les utilisez dans ce contexte.)4

Changement d’endpoint personnalisé en cours de session :

/model custom:qwen-2.5             # Custom endpoint with explicit model
/model custom                      # Auto-detect the model from the endpoint
/model custom:local:qwen-2.5       # Named custom provider "local"
/model custom:work:llama3          # Named custom provider "work"
/model openrouter:claude-sonnet-4  # Back to a cloud provider

/model custom (seul, sans nom de modèle) interroge l’API /v1/models de votre endpoint et sélectionne automatiquement le modèle si un seul est chargé — pratique pour les serveurs locaux qui exécutent un modèle unique.2

Serveurs LLM locaux (modèles de configuration)

La documentation officielle propose des guides de configuration complets pour Ollama, vLLM, SGLang, llama.cpp et LM Studio. Voici les principales commandes que vous exécuterez réellement. Chacune est conçue pour produire un endpoint fonctionnel vers lequel Hermes peut pointer.2

Ollama — la solution locale la plus simple, sans aucune configuration :

ollama pull qwen2.5-coder:32b
OLLAMA_CONTEXT_LENGTH=32768 ollama serve   # Raise from 4k default
hermes model   # Custom endpoint → http://localhost:11434/v1 → qwen2.5-coder:32b

Piège critique avec Ollama : par défaut, Ollama utilise des fenêtres de contexte très courtes (4 096 tokens avec moins de 24 Go de VRAM). Vous devez l’augmenter au moyen de OLLAMA_CONTEXT_LENGTH ou d’un Modelfile — le API compatible OpenAI n’accepte pas la longueur du contexte transmise par le client, donc Hermes ne peut pas la définir pour vous.2 Pour un usage avec un agent, prévoyez au moins 16k à 32k.

vLLM — service d’GPU hautes performances :

pip install vllm
vllm serve meta-llama/Llama-3.1-70B-Instruct \
  --port 8000 \
  --max-model-len 65536 \
  --tensor-parallel-size 2 \
  --enable-auto-tool-choice \
  --tool-call-parser hermes

L’appel d’outils nécessite --enable-auto-tool-choice et --tool-call-parser <name>. Parsers pris en charge : hermes (Qwen 2.5, Hermes 2/3), llama3_json, mistral, deepseek_v3, deepseek_v31, xlam, pythonic. Sans ces flags, les appels d’outils seront renvoyés sous forme de texte brut.2

SGLang — service rapide avec RadixAttention pour réutiliser le cache KV :

pip install "sglang[all]"
python -m sglang.launch_server \
  --model meta-llama/Llama-3.1-70B-Instruct \
  --port 30000 \
  --context-length 65536 \
  --tp 2 \
  --tool-call-parser qwen

Piège avec SGLang : la valeur par défaut de max_tokens est 128. Définissez --default-max-tokens sur le serveur ou configurez model.max_tokens dans config.yaml si les réponses sont tronquées.2

llama.cpp / llama-server — CPU et Metal sur Apple Silicon :

./build/bin/llama-server \
  --jinja -fa \
  -c 32768 \
  -ngl 99 \
  -m models/qwen2.5-coder-32b-instruct-Q4_K_M.gguf \
  --port 8080 --host 0.0.0.0

--jinja est requis pour l’appel d’outils. Sans cette option, llama-server ignore entièrement le paramètre tools et le modèle tente d’appeler les outils en écrivant du JSON dans le texte de sa réponse — ce que Hermes ne peut pas interpréter comme de véritables appels d’outils.2

LM Studio — application de bureau avec interface graphique :

Démarrez le serveur depuis l’application LM Studio (onglet Developer → Start Server), ou via CLI : lms server start (démarre sur le port 1234) et lms load qwen2.5-coder --context-length 32768.2 Faites ensuite pointer hermes model vers http://localhost:1234/v1.

Piège critique avec LM Studio : LM Studio lit la longueur du contexte dans les métadonnées du modèle, mais de nombreux modèles GGUF indiquent une valeur par défaut de 2048 ou 4096. Définissez toujours explicitement la longueur du contexte dans les paramètres du modèle de LM Studio — cliquez sur l’icône en forme d’engrenage à côté du sélecteur de modèle, réglez « Context Length » sur au moins 16384 (de préférence 32768), puis rechargez le modèle.2

Fournisseurs personnalisés nommés

Si vous utilisez plusieurs endpoints personnalisés (par exemple, un serveur de développement local et un serveur GPU distant), définissez-les comme fournisseurs personnalisés nommés dans config.yaml :2

custom_providers:
  - name: local
    base_url: http://localhost:8080/v1
    # api_key omitted — Hermes uses "no-key-required" for keyless local servers
  - name: work
    base_url: https://gpu-server.internal.corp/v1
    api_key: corp-api-key
    api_mode: chat_completions      # optional, auto-detected from URL
  - name: anthropic-proxy
    base_url: https://proxy.example.com/anthropic
    api_key: proxy-key
    api_mode: anthropic_messages    # for Anthropic-compatible proxies

Vous pouvez ensuite passer de l’un à l’autre en cours de session avec la syntaxe triple :

/model custom:local:qwen-2.5
/model custom:work:llama3-70b
/model custom:anthropic-proxy:claude-sonnet-4

Vous pouvez également sélectionner les fournisseurs personnalisés nommés depuis le menu interactif de hermes model.2

Architecture de fournisseurs extensible (v0.13.0+)

La version v0.13.0 fournit une classe abstraite ProviderProfile ainsi qu’un dossier plugins/model-providers/, afin que des fournisseurs d’inférence tiers puissent s’intégrer sans modification du cœur du système.18 Si un fournisseur propose un mode API compatible avec OpenAI, Anthropic ou Codex, vous pouvez implémenter une sous-classe de ProviderProfile qui déclare le parcours d’authentification, l’URL de base, le catalogue de modèles et les en-têtes de mise en cache ; Hermes la résout par le même chemin runtime_provider.py que celui utilisé par les fournisseurs intégrés. C’est le changement architectural à l’origine de l’élargissement des fournisseurs dans la version v0.13.0 : au lieu de modifier le code principal pour ajouter un fournisseur, vous fournissez un plugin.

Proxy local compatible OpenAI (v0.14.0+)

hermes proxy expose un endpoint local compatible OpenAI, adossé au fournisseur OAuth auquel Hermes est déjà connecté — Claude Pro, ChatGPT Pro, SuperGrok ou un autre fournisseur compatible configuré.19 Ainsi, les outils qui attendent un API de type OpenAI, notamment Codex CLI, Aider, Cline, Continue ou des scripts personnalisés, peuvent réutiliser l’authentification Hermes associée à votre abonnement sans clé API distincte. Considérez le proxy comme une infrastructure locale de développement : choisissez intentionnellement son adresse d’écoute, ne l’exposez pas à grande échelle et tenez compte des conditions propres à chaque fournisseur.

Détection de la longueur du contexte

Selon la documentation officielle, deux paramètres sont constamment confondus :2

  • context_length — la fenêtre de contexte totale (budget combiné des tokens d’entrée et de sortie, par exemple 1 000 000 pour Claude Opus 4.7 ou 200 000 pour Sonnet 4.6). Hermes s’en sert pour décider quand compresser l’historique.
  • model.max_tokens — la limite de sortie (nombre maximal de tokens que le modèle peut générer dans une seule réponse). Elle est indépendante de la longueur de l’historique.

Définissez context_length lorsque la détection automatique détermine une taille de fenêtre incorrecte :

model:
  default: "qwen3.5:9b"
  base_url: "http://localhost:8080/v1"
  context_length: 131072      # tokens

Hermes utilise une chaîne de résolution reposant sur plusieurs sources pour détecter les fenêtres de contexte : remplacement dans la configuration → fournisseur personnalisé par modèle → cache persistant → endpoint /models → Anthropic /v1/models → API OpenRouter → Nous Portal → models.dev (registre maintenu par la communauté recensant plus de 3800 modèles) → valeurs par défaut de secours (128K).2 Le système tient compte du fournisseur : un même modèle peut donc avoir des limites de contexte différentes selon le service qui l’héberge (par exemple, claude-opus-4.6 dispose de 1M via Anthropic en direct, contre 128K sur GitHub Copilot).2

Routage intelligent des modèles : rotation des fournisseurs et fallback

Hermes ne vous limite pas à un seul modèle chez un seul fournisseur. Le routage intelligent des modèles désigne l’ensemble des mécanismes qui déterminent quels fournisseur et modèle traitent réellement une requête : les pools d’identifiants répartissent la charge entre les clés, un fallback configuré prend le relais en cas d’échec du fournisseur principal, et les emplacements auxiliaires ci-dessous acheminent les tâches secondaires vers des modèles moins coûteux, indépendamment de votre modèle principal.26 Configurez ces trois éléments ensemble – c’est ce qui distingue un agent qui se retrouve bloqué par une limite de débit d’un agent qui continue à travailler.

Pools d’identifiants. Si vous disposez de plusieurs clés API pour un même fournisseur, configurez une stratégie de rotation via hermes auth. Vous répartirez ainsi les limites de débit entre plusieurs clés.6

Modèle de fallback. Configurez un provider:model de secours vers lequel Hermes basculera automatiquement en cas d’échec de votre modèle principal (limites de débit, erreurs serveur, échecs d’authentification) :2

fallback_model:
  provider: openrouter            # required
  model: anthropic/claude-sonnet-4  # required
  # base_url: http://localhost:8000/v1    # optional, for custom endpoints
  # api_key_env: MY_CUSTOM_KEY           # optional, env var name

Le fallback change de modèle et de fournisseur en cours de session sans perdre votre conversation. Il ne se déclenche qu’une seule fois au maximum par session.2 Fournisseurs prenant en charge le fallback : openrouter, nous, openai-codex, copilot, copilot-acp, anthropic, huggingface, zai, kimi-coding, minimax, minimax-cn, deepseek, ai-gateway, opencode-zen, opencode-go, kilocode, alibaba, custom.2

Modèles auxiliaires

Hermes utilise des modèles « auxiliaires » pour les tâches secondaires : analyse d’images (vision), classification des demandes d’approbation de commandes dangereuses, compression du contexte, génération des titres de session, insertion de balises audio TTS, mise en correspondance des skills, distribution des outils MCP, ainsi que la famille de spécificateurs et décomposeurs Kanban.434 Par défaut (auxiliary.*.provider: "auto"), chaque tâche auxiliaire s’exécute avec votre modèle de chat principal – le même couple fournisseur/modèle que celui sélectionné dans hermes model. La documentation précise explicitement que ce comportement remplace l’ancienne détection automatique d’un fournisseur peu coûteux : « Les versions précédentes orientaient les utilisateurs d’agrégateurs (OpenRouter, Nous Portal) vers une option peu coûteuse choisie par défaut côté fournisseur. Ce comportement était déroutant … auto utilise désormais le modèle principal pour tout le monde, tandis que les remplacements propres à chaque tâche dans config.yaml restent prioritaires. »34 Aucune configuration n’est nécessaire pour commencer ; le compromis concerne le coût – avec des modèles de raisonnement onéreux, les tâches auxiliaires peuvent entraîner des dépenses significatives. Orientez donc chaque tâche vers un modèle rapide et peu coûteux lorsque cela compte. Deux anciennes tâches auxiliaires n’utilisent désormais plus du tout de LLM : l’extraction web (« web_extract et les instantanés du navigateur tronquent les longs contenus de manière déterministe et stockent le texte intégral pour permettre une lecture paginée avec read_file — aucun LLM n’intervient ») et la recherche dans les sessions (l’outil à structure unique renvoie directement le contenu de la base de données). Leurs anciens blocs auxiliary.web_extract.* et auxiliary.session_search.* ont disparu des valeurs par défaut — les valeurs restantes dans un fichier config.yaml existant sont « des résidus inoffensifs qui sont ignorés » — et l’emplacement flush_memories est également absent des valeurs par défaut dans ce tag.34

Vous pouvez configurer le modèle et le fournisseur utilisés par chaque tâche auxiliaire. Chaque emplacement auxiliaire utilise les mêmes paramètres : provider, model, base_url (ainsi que api_key, timeout, extra_body et un paramètre reasoning_effort propre à chaque tâche).434

auxiliary:
  vision:                          # vision_analyze + browser screenshots
    provider: "auto"               # "auto" (= main model), "openrouter", "nous", "main", etc.
    model: ""                      # e.g. "openai/gpt-4o", "google/gemini-2.5-flash"
    base_url: ""                   # Custom OpenAI-compatible endpoint
    api_key: ""                    # Falls back to OPENAI_API_KEY
    timeout: 120
    download_timeout: 30
  approval:                        # dangerous-command approval classifier
    provider: "auto"
    model: ""
    timeout: 30
  compression:                     # summarizer -- legacy compression.summary_* keys migrate here (config v17)
    provider: "auto"
    model: ""
    base_url: ""
    timeout: 120
  title_generation:                # auto-generated session titles after the first exchange
    enabled: true                  # set false to disable auto-titles
    provider: "auto"
    model: ""
    language: ""                   # empty follows the conversation; e.g. "English" pins titles to one language
  tts_audio_tags:    { provider: "auto", model: "" }  # Gemini 3.1 TTS hidden audio-tag insertion
  skills_hub:        { provider: "auto", model: "" }  # skill matching and search
  mcp:               { provider: "auto", model: "" }  # MCP tool dispatch
  triage_specifier:  { provider: "auto", model: "" }  # hermes kanban specify: rough one-liner into a concrete spec, promoted to todo
  kanban_decomposer: { provider: "auto", model: "" }  # hermes kanban decompose: triage task into a graph of child tasks routed to specialist profiles
  profile_describer: { provider: "auto", model: "" }  # hermes profile describe --auto: 1-2 sentence profile descriptions

D’autres emplacements spécialisés suivent la même structure — goal_judge (évalue si le contrat /goal est satisfait), curator (le fork de révision de l’utilisation des skill), background_review (le fork d’auto-amélioration exécuté après le tour), review (le sous-agent de révision de /review), moa_reference et moa_aggregator (Mixture-of-Agents), memory_query_rewrite et monitor — et vous n’avez pas du tout besoin de modifier YAML manuellement : exécutez hermes model, puis sélectionnez « Configure auxiliary models » pour accéder à un sélecteur interactif par tâche.34

L’option de fournisseur "main" signifie « utiliser le même fournisseur que mon agent principal » — elle est valide uniquement dans auxiliary:, compression: et les entrées de repli principales (fallback_providers:, ou l’ancien fallback_model:). Elle n’est pas valide pour le paramètre de premier niveau model.provider. Si vous utilisez un endpoint personnalisé compatible avec OpenAI comme modèle principal, définissez provider: custom dans votre section model:.4

Pourquoi est-ce important ? Comme auto utilise déjà votre modèle principal, l’ancien piège selon lequel « il faut configurer OpenRouter sous peine de voir les tâches auxiliaires se dégrader silencieusement » a disparu — le compromis porte désormais sur le coût. Si votre modèle principal est un modèle de raisonnement coûteux, confiez les tâches secondaires les plus bavardes à un modèle économique et rapide :

auxiliary:
  vision:
    provider: "openrouter"
    model: "google/gemini-2.5-flash"
  compression:
    provider: "openrouter"
    model: "google/gemini-2.5-flash"

Système de configuration

Hermes dispose d’un système de configuration à plusieurs niveaux. Il est essentiel d’en comprendre l’ordre de priorité, car les niveaux supérieurs remplacent les niveaux inférieurs, et l’un de ces niveaux correspond à un registre global de fournisseurs qui n’apparaît pas dans config.yaml.

Organisation des fichiers de configuration

Selon la documentation officielle, les fichiers suivants constituent une configuration Hermes :4

~/.hermes/
├── config.yaml       # All settings (model, terminal, TTS, compression, memory, toolsets, ...)
├── .env              # Secrets (API keys, bot tokens, passwords)
├── auth.json         # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md           # Primary agent identity (slot #1 in system prompt)
├── memories/         # Persistent memory (MEMORY.md, USER.md)
├── skills/           # Bundled + agent-created + hub-installed skills
├── cron/             # Scheduled jobs
├── sessions/         # Gateway session state
└── logs/             # agent.log, gateway.log, errors.log (secrets auto-redacted)

config.yaml ou .env — lorsque les deux définissent un même paramètre, config.yaml l’emporte pour les paramètres non secrets.4 La règle est la suivante : - Secrets (clés API, jetons de bots, mots de passe) → .env - Tout le reste (modèle, backend du terminal, paramètres de compression, limites de mémoire, toolsets) → config.yaml

Les secrets peuvent être référencés depuis config.yaml à l’aide d’une interpolation de type shell :4

auxiliary:
  vision:
    api_key: ${GOOGLE_API_KEY}
    base_url: ${CUSTOM_VISION_URL}
  delegation:
    api_key: ${DELEGATION_KEY}

Gestion de la configuration

hermes config                # View current configuration
hermes config show           # Same as above
hermes config edit           # Open config.yaml in your editor
hermes config set KEY VAL    # Set a specific value
hermes config get KEY        # Print a single value (v0.19.0+)
hermes config unset KEY      # Remove a key so the default applies again (v0.19.0+)
hermes config path           # Print the config file path
hermes config env-path       # Print the .env file path
hermes config check          # Check for missing options (after updates)
hermes config migrate        # Interactively add missing options

Exemples :4

hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config set OPENROUTER_API_KEY sk-or-...   # Saves to .env

hermes config check et hermes config migrate sont les commandes à exécuter après chaque hermes update : elles détectent les nouvelles options de configuration qui ne figurent pas encore dans votre fichier.6

Ordre de priorité de la configuration

Hermes charge la configuration depuis plusieurs sources. Lorsque plusieurs sources définissent la même valeur, celle qui a la priorité la plus élevée l’emporte :4

  1. Arguments CLIhermes chat --model anthropic/claude-sonnet-4 (remplacement pour une seule exécution)
  2. Variables d’environnement — appliquées au démarrage du processus
  3. config.yaml — le fichier de paramètres principal
  4. .env — secrets uniquement
  5. Valeurs par défaut intégrées — appliquées lorsqu’aucune autre source ne définit de valeur

Les options CLI l’emportent toujours pour l’exécution concernée. config.yaml constitue la source de vérité à long terme.

Localisation (v0.13.0+)

La version v0.13.0 a ajouté 7 langues pour les messages CLI et gateway : chinois (simplifié), japonais, allemand, espagnol, français, ukrainien et turc.18 La version v0.14.0 traduit toutes les commandes gateway et le tableau de bord web, ajoute 8 langues supplémentaires et porte leur nombre total à 16.19 Dans le tag v2026.8.31, l’arborescence locales/ contient 17 catalogues de messages — l’anglais et 16 traductions (af, ar, de, es, fr, ga, hu, it, ja, ko, pt, ru, tr, uk, zh-hant, zh).33 La documentation n’est actuellement traduite qu’en zh-Hans. La langue est déterminée à partir des variables d’environnement LC_ALL / LANG ou d’une clé locale: explicite dans config.yaml. L’anglais reste la langue par défaut et la source de vérité pour toute chaîne qui n’a pas encore été traduite.

Profiles — Plusieurs instances Hermes isolées

Les profiles vous permettent de disposer de plusieurs instances Hermes isolées, chacune avec sa propre configuration, ses propres sessions, skills, sa propre mémoire et son propre PID gateway. Vous pouvez ainsi exécuter côte à côte un « Hermes professionnel » et un « Hermes personnel » sans que l’un accède à l’état de l’autre.6

hermes profile list
hermes profile create work --clone                  # Clone from current profile
hermes profile use work                             # Set sticky default
hermes profile alias work --name h-work             # Create wrapper script
hermes profile export work -o work-backup.tar.gz
hermes profile import work-backup.tar.gz --name restored
hermes -p work chat -q "Hello from work profile"    # One-off without switching

Chaque profile dispose de son propre HERMES_HOME (~/.hermes-<name>/ par défaut), ce qui permet à plusieurs profiles d’exécuter simultanément le gateway sans interférer les uns avec les autres.63


Commandes CLI

Cette section constitue la référence pratique des commandes CLI de premier niveau. Pour consulter la référence officielle dérivée du code, reportez-vous à la référence des commandes CLI.6

Options globales

hermes [global-options] <command> [subcommand/options]
Option Description
--version, -V Afficher la version et quitter
--profile <name>, -p <name> Sélectionner le profile Hermes à utiliser
--resume <session>, -r <session> Reprendre une session à partir de son ID ou de son titre
--continue [name], -c [name] Reprendre la session la plus récente (ou rechercher un titre correspondant)
--worktree, -w Démarrer dans un worktree git isolé
--in <dir> Accéder à DIR avant de démarrer ou de reprendre une session. Associée à --resume latest ou -c, cette option sélectionne la session la plus récente pour l’espace de travail de DIR, et la session reste dans DIR (sans restaurer le répertoire de travail enregistré)27
--ignore-user-config Ignorer ~/.hermes/config.yaml et utiliser les valeurs intégrées par défaut (les identifiants présents dans .env restent chargés)27
--ignore-rules Désactiver l’injection automatique de AGENTS.md, SOUL.md, .cursorrules, de la mémoire et des skills préchargés27
--tui Lancer la TUI moderne à la place du REPL classique27
--cli Forcer le REPL prompt_toolkit classique (remplace display.interface=tui)27
--dev Avec --tui : exécuter les sources TypeScript via tsx (sans générer le build de distribution)27
--yolo Contourner les demandes d’approbation pour les commandes dangereuses
--safe-mode Option de dépannage — démarrer Hermes dans un mode sécurisé minimal afin d’isoler les problèmes de démarrage (v0.19.0+)50
--pass-session-id Inclure l’ID de session dans le prompt système de l’agent

Commandes de premier niveau

Commande Fonction
hermes chat Conversation interactive ou ponctuelle
hermes model Choisir interactivement le fournisseur et le modèle par défaut
hermes gateway Exécuter ou gérer le gateway de messagerie
hermes setup Assistant de configuration interactif
hermes auth Gérer les identifiants — ajouter, répertorier, supprimer, réinitialiser ou définir la stratégie
hermes status Afficher l’état de l’agent, de l’authentification et des plateformes
hermes cron Examiner et déclencher le planificateur cron
hermes webhook Gérer les abonnements dynamiques aux webhooks
hermes doctor Diagnostiquer les problèmes de configuration et de dépendances
hermes dump Générer un récapitulatif de la configuration, prêt à copier-coller pour l’assistance ou le débogage
hermes logs Consulter, suivre et filtrer les journaux de l’agent, du gateway et des erreurs
hermes config Afficher, modifier, migrer et interroger la configuration
hermes pairing Approuver ou révoquer les codes d’association de messagerie
hermes skills Parcourir, installer, publier et auditer les skills
hermes honcho Gérer la mémoire intersession Honcho. Commande conditionnelle au plugin : la documentation précise que « les sous-commandes propres aux plugins (par exemple hermes honcho) s’enregistrent automatiquement lorsque leur fournisseur est actif ». Elle n’apparaît donc pas dans hermes --help, sauf si Honcho est le fournisseur de mémoire actif6
hermes memory Configurer le fournisseur de mémoire externe
hermes acp Exécuter Hermes en tant que serveur ACP (intégration à un éditeur)
hermes mcp Gérer la configuration du serveur MCP ; exécuter Hermes en tant que serveur MCP
hermes plugins Gérer les plugins
hermes tools Configurer les outils activés pour chaque plateforme
hermes sessions Parcourir, exporter, élaguer et supprimer les sessions. La v0.19.0 étend hermes sessions export aux formats Markdown, Quarto, HTML, prompt seul et traces Hugging Face, avec une passe facultative --redact pour supprimer les secrets, ainsi que des filtres par ancienneté, espace de travail et plateforme50
hermes insights Afficher les analyses relatives aux tokens, aux coûts et à l’activité
hermes claw Utilitaires de migration OpenClaw
hermes profile Gérer les profiles (plusieurs instances isolées)
hermes completion Afficher les scripts d’autocomplétion du shell (bash/zsh)
hermes whatsapp Configurer et associer le pont WhatsApp
hermes --version (-V) Afficher les informations de version. Il s’agit d’une option globale, et non d’une sous-commande : dans le tag v2026.8.31, l’ensemble _BUILTIN_SUBCOMMANDS ne contient aucune entrée version, et le chemin rapide de démarrage ne reconnaît que --version / -V27
hermes update Récupérer le code le plus récent et réinstaller les dépendances
hermes uninstall Supprimer Hermes du système (--full supprime également la configuration et les données)
hermes backup Sauvegarde complète de la configuration, des sessions, des skills et de la mémoire (v0.9.0+)16
hermes import Restaurer une archive de sauvegarde — pour migrer entre des machines ou revenir à un état antérieur (v0.9.0+)16
hermes dashboard Lancer le tableau de bord web local pour gérer l’agent depuis un navigateur (v0.9.0+)16
hermes serve Exécuter le serveur API backend sans interface — depuis la v0.19.0, il ne compile ni ne monte plus l’interface web50
hermes debug share Téléverser un rapport de débogage complet sur un pastebin afin de le partager lors d’un dépannage (v0.9.0+)16
hermes approvals Outils relatifs aux demandes d’approbation : suggest analyse l’historique des approbations pour générer des propositions command_allowlist ; test simule la décision d’approbation d’une commande sans l’exécuter (« ne l’exécute jamais », avec --backend et --json). Les notes de version de la v0.21.0 présentent cette simulation sous le nom hermes approval-check, mais aucune sous-commande approval-check n’existe dans le tag v2026.8.31 : l’interface disponible est hermes approvals test2740
hermes bundles Créer, répertorier et gérer des ensembles de skills (alias regroupant plusieurs skills sous une même commande slash /<name>)27
hermes checkpoints Examiner, élaguer ou effacer ~/.hermes/checkpoints/, le stockage fantôme utilisé par /rollback ; exécutez la commande sans argument pour obtenir une vue d’ensemble de l’état27
hermes computer-use Gérer le backend Computer Use (cua-driver) (macOS/Windows/Linux)27
hermes console Ouvrir la console de commandes sécurisée de Hermes27
hermes curator Maintenance des skills en arrière-plan (curator) : état, exécution, pause et épinglage27
hermes egress Gérer le pare-feu iron-proxy d’injection des identifiants de sortie pour les environnements terminal distants (désactivé par défaut)27
hermes fallback Gérer les fournisseurs de secours, essayés en cas d’échec du modèle principal27
hermes hooks Examiner et gérer les hooks de scripts shell : list, test <event>, revoke et doctor (bit d’exécution, liste d’autorisation, dérive de mtime, validité de JSON, durée d’une exécution synthétique)27
hermes import-agent Importer une configuration Claude Code (~/.claude) ou Codex CLI (~/.codex) dans Hermes27
hermes desktop (alias gui) Compiler et lancer l’application de bureau Electron native27
hermes kanban Tableau de collaboration multiprofile (tâches, liens, commentaires) comprenant des tableaux, un graphe d’essaim (swarm : workers parallèles → vérificateur → synthétiseur) et un répartiteur27
hermes login / hermes logout Obsolètes. Utilisez hermes auth pour gérer les identifiants, hermes model pour sélectionner un fournisseur ou hermes setup pour effectuer la configuration complète27
hermes lsp Gestion du Language Server Protocol : status, list, install <server>, install-all et restart (arrête les clients LSP en cours d’exécution ; la prochaine modification les relance)27
hermes migrate Migrer la configuration des modèles retirés ou des paramètres obsolètes27
hermes moa Configurer les emplacements de fournisseurs et de modèles Mixture of Agents (préréglages nommés sélectionnables depuis le sélecteur de modèle)27
hermes journey (alias learning, memory-graph) Chronologie des skills et des souvenirs acquis au fil du temps27
hermes monitoring Examiner la surveillance du gateway (export de l’état de santé et des diagnostics) ; status affiche les paramètres, l’état de l’export et la posture de masquage des données27
hermes pause / hermes resume Arrêt d’urgence : pause suspend la répartition cron/kanban et les nouveaux tours du gateway ; resume lève cette suspension27
hermes peer Messages privés de bot à bot entre différentes machines : add, list et remove permettent de gérer les gateways Hermes pairs, tandis que dm envoie un message à un agent sur l’un d’eux et affiche sa réponse27
hermes pets Parcourir, installer et sélectionner des animaux animés petdex27
hermes portal Configurer Nous Portal (connexion, sélection du modèle, Tool Gateway) : login (par défaut), info, open, tools ; consultez Nous Tool Gateway2728
hermes project Gérer les projets (espaces de travail nommés comportant plusieurs dossiers) : créer, répertorier, afficher, ajouter ou supprimer des dossiers, renommer, définir comme principal, utiliser, archiver, restaurer et associer un tableau kanban27
hermes proxy Proxy local compatible avec OpenAI vers les fournisseurs OAuth : start, status, providers27
hermes prompt-size Afficher la répartition en octets du prompt système et des schémas d’outils ; fonctionne hors ligne27
hermes send Envoyer un message à une plateforme configurée sans boucle d’agent ni LLM (scripts, tâches cron, CI)27
hermes skin Répertorier, changer et ajuster les thèmes (list, use, set)27
hermes slack Utilitaires d’intégration Slack : manifest affiche ou écrit un manifeste d’application Slack dans lequel chaque commande du gateway est enregistrée comme commande slash native27
hermes sync Synchronisation des skills entre vos appareils et avec votre équipe : status, pull, push, now, enable, disable, device, propose27
hermes whatsapp-cloud Configurer l’intégration API WhatsApp Business Cloud (distincte du pont Baileys pour compte personnel hermes whatsapp)27
hermes worktree Auditer et récupérer les worktrees git et les branches fusionnées accumulés. list (alias ls, audit ; commande par défaut) classe chaque arborescence selon son ancienneté, sa taille, sa décision et sa justification ; prune supprime les arborescences sans risque ainsi que les branches locales entièrement fusionnées. Les deux acceptent --repo <root> ; prune ajoute --dry-run (affiche le plan sans rien modifier), --trees-only et --branches-only. La commande ne supprime jamais les modifications suivies non validées, les commits uniques non poussés ni les arborescences en cours d’utilisation ; les fichiers de travail uniquement non suivis sont archivés dans ~/.hermes/archive/worktree-prune/ avant leur suppression27
hermes secrets Gérer les sources externes de secrets (Bitwarden, 1Password) afin de récupérer les clés API au démarrage du processus27
hermes security Audit de la chaîne d’approvisionnement (OSV.dev) pour le venv, les plugins et les serveurs MCP (audit)27
hermes verify Détecter la procédure d’exécution d’un projet et effectuer un test de fonctionnement élémentaire27

hermes chat — Point d’entrée principal

Exécuté sans argument, hermes ouvre une conversation interactive. hermes chat est la forme explicite, avec les options suivantes :6

hermes chat -q "Summarize the latest PRs" --oneshot # Answer and exit (without --oneshot, a TTY seeds an interactive session)
hermes chat --provider openrouter --model anthropic/claude-sonnet-4.6
hermes chat --toolsets web,terminal,skills          # Enable specific toolsets
hermes chat --quiet -q "Return only JSON"           # Programmatic mode
hermes chat --worktree -q "Review repo and open a PR"

Options principales :

Option Description
-q, --query "..." Requête à exécuter. Modification apportée dans la v0.21.0 : sur un véritable TTY, elle initialise désormais une session interactive (soumise littéralement comme premier tour) ; associée à --oneshot ou -Q, ou sur un environnement non-TTY, elle fournit la réponse puis quitte — comme dans l’ancien comportement ponctuel40
--oneshot Avec -q/--query-file : répondre à la requête puis quitter (ancien comportement à requête unique). Implicite lorsque l’entrée/sortie standard n’est pas un TTY, ainsi qu’avec -Q/--quiet40
-m, --model <model> Remplacer le modèle pour cette exécution
-t, --toolsets <csv> Activer un ensemble de toolsets séparés par des virgules
--provider <provider> Forcer l’utilisation d’un fournisseur (consultez la liste complète)
-s, --skills <name> Précharger un ou plusieurs skills pour cette session
-v, --verbose Affichage détaillé
-Q, --quiet Mode programmatique (sans bannière, indicateur de chargement ni aperçu)
--resume <session> Reprendre une session directement depuis chat
--worktree Créer un worktree git isolé
--checkpoints Activer les checkpoints du système de fichiers avant les modifications destructrices
--yolo Ignorer les demandes d’approbation
--source <tag> Étiquette de source de la session (par défaut : cli ; utilisez tool pour les intégrations)
--max-turns <N> Nombre maximal d’itérations d’appel d’outils par tour de conversation (par défaut : 500 depuis la v0.20.0, ou la valeur agent.max_turns de la configuration)40

hermes setup — Assistant complet

Exécute l’assistant de configuration complet ou ouvre directement l’une de ses sections :6

hermes setup                 # Full wizard
hermes setup model           # Provider and model only
hermes setup terminal        # Terminal backend only
hermes setup gateway         # Messaging platforms only
hermes setup tools           # Tool enable/disable per platform
hermes setup agent           # Agent behavior only
hermes setup --non-interactive
hermes setup --reset         # Reset config to defaults before setup

hermes logs — Interrogation structurée des journaux

hermes logs offre davantage de possibilités que tail -f sur les fichiers journaux, car la commande permet de filtrer simultanément par niveau, ID de session et plage temporelle.6

hermes logs                          # Last 50 lines of agent.log
hermes logs -f                       # Follow in real time
hermes logs gateway -n 100           # Last 100 lines of gateway.log
hermes logs --level WARNING --since 1h   # Warnings from the last hour
hermes logs --session abc123         # Filter by session ID substring
hermes logs errors --since 30m -f    # Follow errors.log from 30m ago
hermes logs list                     # List all log files with sizes

Les fichiers journaux se trouvent dans ~/.hermes/logs/ :6 - agent.log — toute l’activité de l’agent (appels API, répartition des outils, cycle de vie des sessions, niveau INFO et supérieur) - errors.log — avertissements et erreurs uniquement (sous-ensemble filtré de agent.log) - gateway.log — activité du gateway de messagerie (connexions aux plateformes, répartition, webhooks)

La rotation est automatique grâce au RotatingFileHandler de Python — recherchez agent.log.1, agent.log.2, etc.6

hermes doctor — Diagnostic

hermes doctor [--fix] est la première commande à exécuter lorsqu’un problème survient. Elle vérifie la validité de la configuration, la présence des dépendances, la disponibilité de la clé API et l’état du service, et peut tenter des réparations automatiques avec --fix.6

Pour partager les informations de diagnostic, utilisez hermes dump — cette commande produit un récapitulatif compact en texte brut, avec les clés API masquées, prêt à être collé dans un ticket GitHub ou une discussion Discord.6


Commandes slash

Les commandes slash s’exécutent au sein d’une session de chat active (CLI ou plateforme de messagerie). Elles sont distribuées depuis un registre COMMAND_REGISTRY partagé dans hermes_cli/commands.py, ce qui explique pourquoi la plupart fonctionnent de manière identique sur toutes les interfaces.9

Contrôle de la session

Commande Description
/new (alias /reset) Démarrer une nouvelle session
/clear Effacer l’écran et démarrer une nouvelle session
/history Afficher l’historique de la conversation
/save Enregistrer la conversation actuelle
/retry Réessayer le dernier message
/undo Supprimer le dernier échange utilisateur/assistant
/title <name> Définir un titre pour la session actuelle
/compress Compresser manuellement le contexte de la conversation
/rollback [number] Répertorier ou restaurer les checkpoints du système de fichiers
/stop Arrêter tous les processus en arrière-plan en cours d’exécution
/status Afficher les informations sur la session, le modèle, les tokens et le contexte — depuis la période de v0.20.5, cette commande indique également le mode de raisonnement, les approbations en attente et l’utilisation du contexte4035
/queue <prompt> Mettre un prompt en attente pour le tour suivant. Attention : /q est revendiqué à la fois par /queue et /quit ; le dernier enregistrement l’emporte et, en pratique, /q correspond à /quit — saisissez toujours /queue explicitement.9
/resume [name] Reprendre une session précédemment nommée
/statusbar (alias /sb) Afficher ou masquer la barre d’état du contexte et du modèle
/background <prompt> (alias /bg) Exécuter un prompt dans une session distincte en arrière-plan
/btw <question> Poser une question secondaire éphémère (sans outils et sans persistance)
/plan [request] Charger le skill plan fourni afin de rédiger un plan au lieu de l’exécuter
/branch [name] (alias /fork) Créer une branche à partir de la session actuelle
/goal <target> Verrouiller l’agent sur un objectif afin qu’il reste concentré au fil des tours. Le modèle de boucle Ralph devient une primitive de premier ordre. Budget de tours configurable. Nouveauté de la v0.13.0.18
/subgoal <criterion> Ajouter des critères de réussite à un /goal actif sans redémarrer la boucle. Nouveauté de la v0.14.0.19
/handoff <target> Transférer la session en cours — messages, appels d’outils et contexte — vers un autre modèle, une autre persona ou un autre profile. Nouveauté de la v0.14.0.19
/worktree [new [name]\|list\|prune [--dry-run]] Examiner, créer ou récupérer des worktrees git isolés sans quitter la session. new crée un worktree sous .worktrees/ dans le dépôt et y déplace la session ; list les répertorie ; prune effectue la même récupération supervisée que hermes worktree prune et, selon la documentation, « ne touche jamais au worktree dans lequel la session s’exécute »27

Configuration et modèle

Commande Description
/config Afficher la configuration actuelle
/model [model-name] Afficher ou modifier le modèle actuel
/provider Afficher les fournisseurs disponibles et le fournisseur actuel
/personality [name] Définir une couche de personnalité
/verbose Parcourir les modes d’affichage de la progression des outils
/reasoning Gérer l’effort de raisonnement et son affichage. La v0.19.0 ajoute les niveaux d’effort max et ultra et limite /reasoning à la session, tout en permettant de remplacer l’effort pour chaque modèle et chaque emplacement MoA dans la configuration50
/skin Afficher ou modifier l’apparence ou le thème
/voice [on\|off\|tts\|status] Activer ou désactiver le mode vocal de CLI
/yolo Activer ou désactiver le mode YOLO (ignorer les demandes d’approbation). Depuis la v0.19.0, les règles de refus définies par l’utilisateur continuent de bloquer les commandes correspondantes, même en mode YOLO50
/fast Activer ou désactiver Fast Mode — traitement prioritaire pour les modèles OpenAI et Anthropic (v0.9.0+)16
/debug Effectuer un diagnostic rapide sur toutes les plateformes (v0.9.0+)16
/subscription Gérer votre offre Nous Portal depuis le terminal — offre et quota restant, aperçu du coût d’un passage à une offre supérieure ou inférieure, application avec possibilité d’annulation (v0.19.0+)50
/topup Ajouter du crédit à votre solde Nous Portal sans quitter le terminal (v0.19.0+)50

La commande /model est l’outil principal pour changer de fournisseur en cours de session :9

/model                              # Show current model and options
/model claude-sonnet-4              # Switch model (auto-detect provider)
/model zai:glm-5                    # Switch provider:model
/model custom:qwen-2.5              # Use model on custom endpoint
/model custom                       # Auto-detect model from custom endpoint
/model custom:local:qwen-2.5        # Named custom provider
/model openrouter:anthropic/claude-sonnet-4   # Back to cloud

La v0.19.0 ajoute /model --once — un remplacement du modèle pour un seul tour, avec retour automatique au modèle précédent après la réponse.50 Depuis la période de v0.20.5, le sélecteur /model propose également une recherche approximative : les résultats sont filtrés à mesure que vous saisissez du texte.2335

Outils, skills et informations

Commande Description
/tools [list\|disable\|enable] [name...] Gérer les outils de la session actuelle
/toolsets Répertorier les toolsets disponibles
/browser [connect\|disconnect\|status] Gérer la connexion CDP locale à Chrome
/skills Rechercher, installer, examiner ou gérer des skills
/cron Gérer les tâches planifiées
/reload-mcp Recharger les serveurs MCP depuis config.yaml
/plugins Répertorier les plugins installés
/help Afficher toutes les commandes
/usage Afficher l’utilisation des tokens, le coût et la durée
/insights Afficher les statistiques d’utilisation des 30 derniers jours
/platforms Afficher l’état des plateformes de messagerie
/profile Afficher le nom et le répertoire personnel du profile actif
/palette Ouvrir la palette de commandes avec recherche approximative (également avec Ctrl+P) — recherchez ainsi chaque commande et chaque skill. Ajouté pendant la période de v0.20.54035

Commandes slash dynamiques des skills

Chaque skill installé est automatiquement exposé sous forme de commande slash :9

/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor
/excalidraw       # Just the skill name loads it and lets the agent ask what you need

Depuis la v0.19.0, les appels de skills par commande slash peuvent s’empiler : /skill-a /skill-b do XYZ charge les deux skills dans l’ordre au cours d’un même tour, avec autocomplétion et texte fantôme pour les noms enchaînés.50

Vous pouvez également définir dans config.yaml des commandes rapides qui associent un nom court à un prompt plus long :9

quick_commands:
  review: "Review my latest git diff and suggest improvements"
  deploy: "Run the deployment script at scripts/deploy.sh and verify the output"
  morning: "Check my calendar, unread emails, and summarize today's priorities"

Saisissez ensuite /review, /deploy ou /morning dans CLI.

Correspondance par préfixe

Les commandes prennent en charge la correspondance par préfixe : /h correspond à /help, tandis que /mod correspond à /model. Lorsqu’un préfixe est ambigu, le premier enregistrement dans l’ordre du registre l’emporte. Les noms complets des commandes et les alias enregistrés ont toujours priorité sur les correspondances par préfixe.9

Commandes propres aux plateformes de messagerie

Certaines commandes ne fonctionnent que sur les plateformes de messagerie (Telegram, Discord, Slack, WhatsApp, Signal, e-mail, Home Assistant) :9

  • /status — afficher les informations sur la session (cette commande n’est plus réservée aux plateformes de messagerie ; consultez Contrôle de la session)
  • /sethome (alias /set-home) — désigner le chat actuel comme accueil de la plateforme
  • /approve [session|always] — approuver une commande dangereuse en attente
  • /deny [reason] — refuser une commande dangereuse en attente. Depuis la v0.19.0, /deny <reason> transmet le motif de votre refus à l’agent afin qu’il rectifie son approche au lieu de réessayer à l’aveugle50
  • /update — mettre Hermes Agent à jour vers la dernière version
  • /commands [page] — parcourir toutes les commandes et tous les skills (avec pagination)

Certaines sont par ailleurs réservées à CLI : /skin, /tools, /toolsets, /browser, /config, /cron, /skills, /platforms, /paste, /statusbar, /plugins.9


Outils et toolsets

Hermes est livré avec un vaste registre d’outils intégrés couvrant la recherche sur le Web, l’automatisation du navigateur, l’exécution dans le terminal, la modification de fichiers, la mémoire, la délégation, l’entraînement par RL, l’envoi de messages, l’intégration à Home Assistant et bien plus encore.10 Les outils sont organisés en toolsets logiques qui peuvent être activés ou désactivés pour chaque plateforme.

Catégories principales

Catégorie Exemples Description
Web web_search, web_extract Rechercher sur le Web et extraire le contenu des pages
Terminal et fichiers terminal, process, read_file, patch Exécuter des commandes et manipuler des fichiers
Navigateur browser_navigate, browser_snapshot, browser_vision Automatisation interactive du navigateur avec texte et vision
Médias vision_analyze, video_analyze, video_generate, image_generate, text_to_speech Analyse et génération multimodales. video_analyze privilégie Gemini et offre une prise en charge extensible des fournisseurs multimodaux compatibles (v0.13.0+). La v0.14.0 ajoute une commande video_generate unifiée avec des backends de fournisseurs interchangeables et transmet les pixels bruts à vision_analyze lorsque le modèle actif prend en charge la vision.1819
Orchestration d’agents todo, clarify, execute_code, delegate_task Planification, clarification, exécution de code et délégation à des sous-agents
Utilisation de l’ordinateur computer_use Contrôle du bureau via le backend cua-driver ; la v0.14.0 rend cette fonctionnalité compatible avec les fournisseurs prenant en charge la vision autres que Anthropic.19
Mémoire et rappel memory, session_search Mémoire persistante et recherche dans les sessions
Automatisation et envoi cronjob, send_message Tâches planifiées et envoi de messages
Intégrations ha_*, outils MCP, rl_* Home Assistant, MCP, entraînement par RL

Les noms de toolsets courants incluent web, terminal, file, browser, vision, image_gen, moa, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant et rl.10

Gestion des outils

hermes chat --toolsets "web,terminal"       # Use specific toolsets
hermes tools                                # Interactive per-platform tool config
hermes tools --summary                      # Print enabled-tools summary

Vous pouvez également activer ou désactiver des outils en cours de session avec /tools disable <name> et /tools enable <name>, ce qui réinitialise la session afin que le nouvel ensemble d’outils prenne effet.9

Backends de terminal

L’outil de terminal est livré avec 7 backends d’exécution intégrés — et, depuis la v0.20.6, cet ensemble peut être étendu par des plugins, comme le sélecteur de fournisseurs (voir ci-dessous) :1024

Backend Cas d’utilisation
local Exécution sur votre machine (par défaut) — développement, tâches de confiance
docker Conteneurs isolés — sécurité, reproductibilité
ssh Serveur distant — sandbox, maintien de l’agent à l’écart de son propre code
singularity Conteneurs HPC — calcul en grappe, sans privilèges root
modal Exécution cloud serverless
daytona Espace de travail cloud en sandbox — environnement de développement distant persistant
vercel_sandbox MicroVM cloud Vercel Sandbox — exécution cloud avec persistance du système de fichiers reposant sur des snapshots. Installez hermes-agent[vercel], définissez terminal.vercel_runtime (node24, node22 ou python3.13) et authentifiez-vous avec VERCEL_TOKEN, VERCEL_PROJECT_ID et VERCEL_TEAM_ID ; par défaut, la racine de l’espace de travail distant est /vercel/sandbox24

Changez de backend avec hermes config set terminal.backend <name> ou dans config.yaml :

terminal:
  backend: docker      # or: local, ssh, singularity, modal, daytona, vercel_sandbox
  cwd: "."             # Working directory
  timeout: 180         # Command timeout in seconds

Backends de plugins (v0.20.6+). Les fournisseurs tiers de sandbox n’ont plus besoin d’être intégrés au dépôt principal : un plugin enregistre un TerminalEnvironmentProvider au chargement via PluginContext.register_terminal_environment_provider, puis le nom enregistré peut être sélectionné par l’intermédiaire de terminal.backend, exactement comme celui d’un backend intégré. Les noms intégrés sont réservés — le registre rejette tout fournisseur dont le nom entre en conflit avec un backend du dépôt principal — et un backend enregistré est automatiquement pris en charge sur toutes les interfaces principales (sélecteur de backend de hermes setup, état des vérifications du dashboard, contrôles de hermes doctor, gestion des chemins et du répertoire de travail dans les conteneurs, suppression des secrets), car le cœur consulte le registre à chaque point de classification au lieu d’utiliser une liste de noms codée en dur.32

Backend SSH (recommandé pour la sécurité — l’agent ne peut pas modifier son propre code) :10

terminal:
  backend: ssh
# In ~/.hermes/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa

Backend Docker :

terminal:
  backend: docker
  docker_image: python:3.11-slim

Ressources des conteneurs (s’applique à docker, singularity, modal et daytona) :10

terminal:
  container_cpu: 1
  container_memory: 5120          # MB (default 5GB)
  container_disk: 51200           # MB (default 50GB)
  container_persistent: true      # Persist filesystem across sessions

Avec container_persistent: true, les paquets installés, les fichiers et la configuration sont conservés d’une session à l’autre.10

Tous les backends de conteneurs bénéficient d’un renforcement de la sécurité : système de fichiers racine en lecture seule (Docker), suppression de toutes les capacités Linux à l’exception de DAC_OVERRIDE, CHOWN et FOWNER, aucune élévation de privilèges, limites de PID (256 processus), isolation complète des espaces de noms et espace de travail persistant grâce à des volumes.10

Processus en arrière-plan

L’outil de terminal prend en charge l’exécution en arrière-plan avec une gestion explicite des processus :10

terminal(command="pytest -v tests/", background=true)
# Returns: {"session_id": "proc_abc123", "pid": 12345}

process(action="list")                            # Show all running processes
process(action="poll", session_id="proc_abc123")  # Check status
process(action="wait", session_id="proc_abc123")  # Block until done
process(action="log", session_id="proc_abc123")   # Full output
process(action="kill", session_id="proc_abc123")  # Terminate
process(action="write", session_id="proc_abc123", data="y")  # Send input

Le mode PTY (pty=true) permet d’utiliser des outils CLI interactifs tels que Codex et Claude Code.10

Sudo

Si une commande nécessite sudo, Hermes vous demande votre mot de passe, qui est mis en cache pendant la session. Vous pouvez également définir SUDO_PASSWORD dans ~/.hermes/.env.10


Kanban multi-agent (v0.13.0+)

La v0.13.0 fait de la collaboration multi-agent une primitive de premier ordre : un tableau Kanban persistant qui suit les tâches, leur état et l’identité des workers entre les agents et après les redémarrages.18 C’est ce tableau qui permet à un essaim de workers Hermes d’achever réellement le travail au lieu de rester bloqué à cause de transmissions interrompues.

Mécanisme Fonctionnement
Signaux d’activité Chaque worker émet régulièrement un signal tant qu’il possède une tâche. L’absence d’un signal marque le worker comme suspect et libère la tâche afin qu’elle puisse être récupérée.
Récupération Un autre worker peut reprendre une tâche abandonnée avec son état complet et les résultats partiels antérieurs.
Détection des zombies Les workers qui se terminent sans marquer une tâche comme achevée sont automatiquement empêchés de réclamer de nouvelles tâches, ce qui évite à l’essaim d’accumuler des identités inactives.
Filtre anti-hallucination Si un résultat ne passe pas le filtre, la tâche est renvoyée au tableau avec le motif indiqué au lieu d’être marquée comme terminée.
max_retries par tâche Remplacez le nombre maximal de nouvelles tentatives par défaut pour une tâche que vous savez fragile.
Tableaux multiprojets Un même dossier d’accueil Hermes peut héberger plusieurs tableaux indépendants.

Le tableau Kanban s’associe naturellement à /goal (boucle Ralph à objectif verrouillé) pour définir la cible, ainsi qu’à l’outil delegate_task existant pour la logique de création des agents. Il en résulte un modèle d’essaim dans lequel chaque agent partage une source unique de vérité sur la prochaine tâche à accomplir, la personne qui s’en charge et ce qui est bloqué.

Qu’est-ce qu’un essaim Hermes ?

Un essaim se compose de plusieurs workers Hermes qui travaillent en parallèle à partir d’un même tableau Kanban. Il ne s’agit pas d’un sous-système distinct à activer — c’est une possibilité offerte par le tableau. Celui-ci fournit l’élément que des agents parallèles ne peuvent pas produire eux-mêmes : une réponse unique faisant autorité à la question quelle tâche dois-je prendre ensuite, et quelqu’un s’en occupe-t-il déjà ?

La v0.15.0 a fait de ce modèle une topologie officiellement prise en charge, avec une topologie d’essaim pour la coordination de workers parallèles, la décomposition automatique d’un objectif général en sous-tâches, le remplacement du modèle par tâche, les tâches planifiées et la gestion des worktrees, afin que les workers parallèles ne se gênent pas dans le même checkout.53

Problème dans une configuration multi-agent naïve Ce que fait le tableau à la place
Deux workers prennent la même tâche La propriété de la tâche est revendiquée et l’identité du worker est enregistrée
Un worker s’arrête en cours de tâche et le travail disparaît Le signal d’activité expire et la tâche est récupérée avec les résultats partiels antérieurs
Un worker défaillant continue à « détenir » des tâches indéfiniment La détection des zombies l’empêche de réclamer de nouvelles tâches
Un modèle coûteux est utilisé pour chaque sous-tâche Le remplacement du modèle par tâche permet d’utiliser des modèles économiques pour les sous-tâches mécaniques
Des workers parallèles modifient les mêmes fichiers La gestion des worktrees isole le checkout de chaque worker

En pratique : donnez un objectif à l’essaim, laissez la décomposition automatique le répartir en tâches sur le tableau, puis laissez les workers réclamer ces tâches, les exécuter et renvoyer leurs résultats. Le nombre maximal de nouvelles tentatives est propre à chaque tâche (max_retries) ; ainsi, une sous-tâche fragile n’épuise pas la tolérance de l’ensemble de l’exécution. Comme le tableau est persistant, un essaim survit aux redémarrages — les workers se reconnectent et reprennent leur travail à partir du même état.

La qualité d’un essaim dépend de celle de sa décomposition. Le tableau coordonne les workers ; il ne transforme pas un objectif mal découpé en un bon objectif. Les tâches qui partagent un état caché continueront à entrer en conflit, avec ou sans worktrees.


Système de skills

Les skills sont des documents de connaissances à la demande que l’agent peut charger lorsqu’il en a besoin. Ils suivent un modèle de divulgation progressive afin de réduire l’utilisation des tokens et sont compatibles avec le standard ouvert agentskills.io.11

Tous les skills se trouvent dans ~/.hermes/skills/ — le dossier principal et la source de référence. Lors d’une nouvelle installation, les skills inclus sont copiés depuis le dépôt. Les skills installés depuis le hub et ceux créés par l’agent y sont également enregistrés.11

Divulgation progressive

Level 0: skills_list()            [{name, description, category}, ...]   (~3k tokens)
Level 1: skill_view(name)         Full content + metadata                 (varies)
Level 2: skill_view(name, path)   Specific reference file                 (varies)

L’agent ne charge le contenu complet du skill que lorsqu’il en a réellement besoin.11

Format SKILL.md

---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
platforms: [macos, linux]      # Optional — restrict to OS platforms
metadata:
  hermes:
    tags: [python, automation]
    category: devops
    fallback_for_toolsets: [web]     # Conditional activation
    requires_toolsets: [terminal]    # Conditional activation
    config:                          # Config.yaml settings
      - key: my.setting
        description: "What this controls"
        default: "value"
        prompt: "Prompt for setup"
---

# Skill Title

## When to Use
Trigger conditions for this skill.

## Procedure
1. Step one
2. Step two

## Pitfalls
- Known failure modes and fixes

## Verification
How to confirm it worked.

Activation conditionnelle

Les skills peuvent s’afficher ou se masquer selon les outils disponibles. Cette fonctionnalité est particulièrement utile pour les skills de secours — des solutions gratuites ou locales qui ne doivent apparaître que lorsqu’un outil premium est indisponible :11

Champ Comportement
fallback_for_toolsets Skill masqué lorsque les toolsets indiqués sont disponibles
fallback_for_tools Même comportement, mais vérifie les outils individuellement
requires_toolsets Skill masqué lorsque les toolsets indiqués sont indisponibles
requires_tools Même comportement, mais vérifie les outils individuellement

Exemple : le skill intégré duckduckgo-search utilise fallback_for_toolsets: [web]. Lorsque FIRECRAWL_API_KEY est défini, le toolset web est disponible et l’agent utilise web_search — le skill DuckDuckGo reste masqué. Sans la clé API, le skill DuckDuckGo apparaît automatiquement comme solution de secours.11

Skills gérés par l’agent

L’agent peut créer, mettre à jour et supprimer ses propres skills grâce à l’outil skill_manage. Il s’agit de la mémoire procédurale de l’agent : lorsqu’il met au point un workflow complexe, il enregistre la méthode sous forme de skill afin de pouvoir la réutiliser ultérieurement.11

Quand l’agent crée des skills :11 - Après avoir mené à bien une tâche complexe (au moins 5 appels d’outils) - Lorsqu’il a rencontré des erreurs ou des impasses avant de trouver la bonne méthode - Lorsque l’utilisateur a corrigé sa méthode - Lorsqu’il a découvert un workflow complexe

Actions :11

Action Utilisation
create Créer un nouveau skill de toutes pièces
patch Apporter des corrections ciblées (méthode privilégiée — la plus économe en tokens)
edit Effectuer des restructurations majeures
delete Supprimer entièrement un skill
write_file Ajouter ou mettre à jour des fichiers complémentaires
remove_file Supprimer un fichier complémentaire

Hub de skills

Parcourez, recherchez, installez et gérez des skills provenant de registres en ligne :611

hermes skills browse                          # Browse all hub skills
hermes skills browse --source official        # Browse official optional skills
hermes skills search kubernetes               # Search all sources
hermes skills search react --source skills-sh # Search skills.sh directory
hermes skills inspect openai/skills/k8s       # Preview before installing
hermes skills install openai/skills/k8s       # Install with security scan
hermes skills install skills-sh/anthropics/skills/pdf --force
hermes skills check                           # Check for upstream updates
hermes skills update                          # Reinstall changed hub skills
hermes skills audit                           # Re-scan installed hub skills
hermes skills uninstall k8s
hermes skills publish skills/my-skill --to github --repo owner/repo
hermes skills tap add myorg/skills-repo       # Add custom GitHub source

Sources intégrées au hub :11

Source Exemple Remarques
official official/security/1password Skills facultatifs fournis avec Hermes (confiance intégrée)
skills-sh skills-sh/vercel-labs/agent-skills/vercel-react-best-practices Répertoire public de skills de Vercel
well-known well-known:https://mintlify.com/docs/.well-known/skills/mintlify Découverte par URL depuis les sites publiant /.well-known/skills/index.json
github openai/skills/k8s Installations directes depuis un dépôt ou chemin GitHub
clawhub Place de marché tierce de skills
lobehub Conversion du catalogue d’agents LobeHub
browse-sh Source de skills Browserbase

Taps GitHub par défaut (consultables sans configuration) : openai/skills, anthropics/skills, huggingface/skills, NVIDIA/skills, garrytan/gstack. La source claude-marketplace a été supprimée dans la version 0.20.0 ; browse-sh l’a remplacée dans la liste des sources.1149

Analyse de sécurité

Tous les skills installés depuis le hub sont soumis à une analyse de sécurité qui recherche les tentatives d’exfiltration de données, les injections de prompt, les commandes destructrices, les signaux de compromission de la chaîne d’approvisionnement et d’autres menaces.11

Niveaux de confiance :11

Niveau Source Politique
builtin Fourni avec Hermes Toujours approuvé
official optional-skills/ dans le dépôt Confiance intégrée, sans avertissement relatif aux tiers
trusted Registres de confiance (openai/skills, anthropics/skills) Politique plus permissive
community Toutes les autres sources Les détections non dangereuses peuvent être ignorées avec --force ; les verdicts dangerous restent bloqués

--force permet de contourner les blocages de politique non dangereux pour les skills de la communauté. Cette option ne permet pas de contourner un verdict d’analyse dangerous.11

Dossiers de skills externes

Vous pouvez indiquer à Hermes des dossiers de skills supplémentaires à analyser en parallèle du dossier local :11

skills:
  external_dirs:
    - ~/.agents/skills
    - /home/shared/team-skills
    - ${SKILLS_REPO}/skills

Les chemins prennent en charge le développement de ~ et la substitution des variables d’environnement ${VAR}. Les dossiers externes sont en lecture seule — lorsque l’agent crée ou modifie un skill, il l’enregistre toujours dans ~/.hermes/skills/. Si un skill porte le même nom à plusieurs emplacements, la version locale est prioritaire.11


Mémoire persistante

Hermes dispose d’une mémoire limitée et organisée qui persiste d’une session à l’autre. Deux fichiers constituent la mémoire de l’agent, tous deux stockés dans ~/.hermes/memories/ :12

Fichier Fonction Limite de caractères
MEMORY.md Notes personnelles de l’agent — informations sur l’environnement, conventions, éléments appris 2 200 caractères (environ 800 tokens)
USER.md Profil utilisateur — préférences, style de communication, attentes 1 375 caractères (environ 500 tokens)

Tous deux sont injectés dans le prompt système sous forme d’instantané figé au début de la session. L’agent gère sa propre mémoire grâce au toolset memoryadd, replace ou remove.12

Principe de l’instantané figé : l’injection dans le prompt système est capturée une seule fois au début de la session et ne change jamais en cours de session. Ce choix est intentionnel : il préserve le cache de préfixes de LLM afin d’améliorer les performances. Les modifications apportées pendant une session sont immédiatement enregistrées sur le disque, mais n’apparaissent dans le prompt système qu’à la session suivante.12

Éléments à enregistrer

À enregistrer (l’agent le fait de manière proactive) :12 - Préférences de l’utilisateur : « Je préfère TypeScript à JavaScript » → user - Informations sur l’environnement : « Ce serveur exécute Debian 12 avec PostgreSQL 16 » → memory - Corrections : « N’utilisez pas sudo pour les commandes Docker, l’utilisateur appartient au groupe docker » → memory - Conventions : « Le projet utilise des tabulations, des lignes de 120 caractères et des docstrings de style Google » → memory - Travaux terminés : « Migration de la base de données de MySQL vers PostgreSQL le 15 janvier 2026 » → memory

À ignorer :12 - Informations triviales ou évidentes - Faits faciles à retrouver - Vidages de données brutes (trop volumineux pour la mémoire) - Informations éphémères propres à une session - Informations déjà présentes dans les fichiers de contexte

Recherche dans les sessions

Au-delà de MEMORY.md et USER.md, l’agent peut rechercher dans ses conversations passées à l’aide du toolset session_search. Toutes les sessions CLI et de messagerie sont stockées dans SQLite (~/.hermes/state.db) avec une recherche en texte intégral FTS5. Les requêtes renvoient les conversations passées pertinentes, résumées par Gemini Flash.12

Fonctionnalité Mémoire persistante Recherche dans les sessions
Capacité Environ 1 300 tokens au total Illimitée (toutes les sessions)
Vitesse Instantanée (dans le prompt système) Nécessite une recherche et une synthèse par LLM
Cas d’usage Informations essentielles toujours disponibles Retrouver des conversations passées précises
Gestion Organisée manuellement par l’agent Automatique — toutes les sessions sont stockées
Coût en tokens Fixe par session (environ 1 300 tokens) À la demande

Fournisseurs de mémoire externes

Pour disposer d’une mémoire persistante plus approfondie que MEMORY.md et USER.md, Hermes est fourni avec huit plugins de fournisseurs de mémoire externes : Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover et Supermemory.12

Les fournisseurs externes fonctionnent en parallèle de la mémoire intégrée (sans jamais la remplacer) et ajoutent des fonctionnalités telles que les graphes de connaissances, la recherche sémantique, l’extraction automatique de faits et la modélisation de l’utilisateur entre les sessions :612

hermes memory setup         # Pick a provider and configure it
hermes memory status        # Check what's active
hermes memory off           # Disable external provider (built-in only)

Un seul fournisseur externe peut être actif à la fois. La mémoire intégrée reste toujours active.6

Reprise automatique des sessions (v0.13.0+)

La version v0.13.0 permet de reprendre un agent interrompu en cours d’exécution. Le gateway reprend automatiquement les sessions interrompues après un redémarrage ; les redémarrages déclenchés par /update préservent l’état de la session pendant la mise à niveau ; en développement, le rechargement des fichiers sources maintient la session active au lieu d’en imposer une nouvelle.18 Conséquence pratique : les tâches de longue durée exécutées par le gateway et les tâches pilotées par cron ne réinitialisent plus leur fenêtre de contexte lors du redémarrage du processus.

Checkpoints v2 (v0.13.0+)

Dans la version v0.13.0, la persistance de l’état a été réécrite selon une architecture à stockage unique, avec un véritable élagage, des garde-fous pour l’espace disque et aucun dépôt fantôme orphelin.18 L’ancien système de checkpoint accumulait l’état sur le disque pour les profiles de longue durée ; le stockage v2 impose une limite stricte à l’espace local consacré aux checkpoints et supprime la gestion comptable dupliquée à l’origine de cette croissance. Aucune modification de config destinée à l’utilisateur n’est nécessaire ; la prochaine écriture d’un checkpoint utilisera le chemin v2.


Personnalité et SOUL.md

SOUL.md est l’identité principale d’une instance Hermes. Il occupe l’emplacement n° 1 du prompt système et remplace l’identité par défaut codée en dur.13

Hermes crée automatiquement un fichier SOUL.md par défaut dans ~/.hermes/SOUL.md (ou $HERMES_HOME/SOUL.md pour les profiles personnalisés). Les fichiers existants de l’utilisateur ne sont jamais écrasés. Hermes charge uniquement SOUL.md depuis HERMES_HOME — il ne le recherche pas dans le répertoire de travail actuel. La personnalité reste ainsi prévisible d’un projet à l’autre.13

Contenu adapté à SOUL.md

Utilisez-le pour définir durablement la voix et la personnalité :13 - ton - style de communication - degré de franchise - style d’interaction par défaut - éléments stylistiques à éviter - manière dont Hermes doit gérer l’incertitude, le désaccord et l’ambiguïté

Utilisez-le moins pour :13 - les instructions propres à un projet ponctuel - les chemins de fichiers - les conventions du dépôt - les détails temporaires du workflow

Ces éléments doivent figurer dans AGENTS.md, et non dans SOUL.md.

SOUL.md ou AGENTS.md

Voici la distinction la plus importante dans la gestion de l’identité de Hermes :13

SOUL.md — identité, ton, style, paramètres de communication par défaut et comportement lié à la personnalité.

AGENTS.md — architecture du projet, conventions de code, préférences de toolsets, workflows propres au dépôt, commandes, ports, chemins et notes de déploiement.

Règle pratique : si un élément doit vous suivre partout, il appartient à SOUL.md. S’il est propre à un projet, il appartient à AGENTS.md.13

Personnalités intégrées

Hermes est fourni avec des personnalités intégrées que vous pouvez activer avec /personality :1333

Nom Description
helpful Assistant convivial et polyvalent
concise Réponses brèves et directes
technical Expert technique précis et détaillé
creative Réflexion innovante et originale
teacher Pédagogue patient fournissant des exemples clairs
kawaii Expressions adorables, étincelles et enthousiasme
catgirl Neko-chan aux expressions félines
pirate Capitaine Hermes, flibustier féru de technologie
shakespeare Prose de barde au style théâtral
surfer Ambiance détendue de surfeur
noir Narration de détective dur à cuire
uwu Un maximum de mignonnerie en langage uwu
philosopher Réflexion profonde pour chaque requête
hype ÉNERGIE MAXIMALE

Personnalités personnalisées dans config.yaml :13

agent:
  personalities:
    codereviewer: >
      You are a meticulous code reviewer. Identify bugs, security issues,
      performance concerns, and unclear design choices. Be precise and constructive.

Activez-les ensuite avec /personality codereviewer.

SOUL.md ou /personality

SOUL.md définit la voix de référence. /personality est une couche supplémentaire appliquée à l’échelle de la session.13 Conservez un fichier SOUL.md pragmatique par défaut, puis utilisez /personality teacher pour une conversation pédagogique ou /personality creative pour une séance de brainstorming.


Nous Tool Gateway (v0.10.0+)

Depuis Hermes Agent v0.10.0 (16 avril 2026), les abonnés payants à Nous Portal bénéficient d’un accès géré à une sélection d’outils grâce à leurs identifiants Portal existants, sans clés API supplémentaires à gérer.55 Le CLI Hermes reste sous licence MIT et entièrement open source. Désormais, votre authentification Portal donne accès à bien plus que l’inférence de modèles.

Le moyen le plus rapide de commencer est hermes setup --portal, que le README présente comme « une seule commande à partir d’une nouvelle installation » : cette commande vous connecte via OAuth, définit Nous comme fournisseur et active le Tool Gateway. Ensuite, hermes portal permet de gérer cette relation. hermes portal login (la commande par défaut lorsqu’aucune sous-commande n’est fournie) exécute le même processus d’intégration en une seule étape ; hermes portal info affiche le « récapitulatif du routage de l’authentification Portal et du Tool Gateway » ; hermes portal open ouvre la page d’abonnement dans votre navigateur par défaut ; hermes portal tools répertorie les outils du gateway et indique lesquels sont acheminés via Nous. hermes portal status subsiste comme alias masqué à des fins de rétrocompatibilité avec info. La référence au CLI dans la documentation de cette version utilise encore la sous-commande status : les deux fonctionnent donc.28

Contenu du gateway

Outil Fournisseur Cas d’usage
Recherche sur le Web Firecrawl Recherche d’informations récentes pour les agents
Génération d’images FAL / FLUX 2 Pro Génération d’images directement dans la conversation sans configurer de clé FAL
Synthèse vocale OpenAI TTS Sortie vocale sur les messaging gateways
Automatisation du navigateur Browser Use Navigation et extraction de données sans interface graphique

Fonctionnement

Le gateway s’active outil par outil grâce au nouveau champ de configuration use_gateway. Si vous disposez d’identifiants Portal dans hermes auth et activez le gateway pour un outil, les appels de cet outil sont acheminés par Portal. Dans le cas contraire, votre clé API directe est utilisée, si elle est disponible.

# config.yaml — per-tool gateway opt-in
tools:
  web_search:
    provider: firecrawl
    use_gateway: true          # route via Nous Portal subscription
  image_generation:
    provider: fal
    use_gateway: true

Ordre de priorité à l’exécution : lorsque le gateway est disponible et que l’option use_gateway: true est définie pour un outil, Hermes privilégie le gateway, même si vous avez également configuré une clé API directe. Cette priorité a une incidence sur la facturation : les appels au gateway sont déduits de votre abonnement Portal, et non du solde associé à votre clé API directe.

Activation du gateway

hermes model                      # select Nous Portal (OAuth flow)
hermes tools                      # per-platform tool picker integrates gateway tools
hermes status                     # confirms gateway/subscription detection

L’abonnement est détecté automatiquement à partir des identifiants OAuth Portal déjà enregistrés dans hermes auth : aucune connexion distincte n’est nécessaire. Depuis la v0.19.0, vous pouvez également gérer l’abonnement directement depuis une session : /subscription affiche votre forfait et votre quota restant, indique précisément le coût d’un passage à l’offre supérieure ou la date d’entrée en vigueur d’un passage à l’offre inférieure, puis applique la modification avec des bandeaux signalant le changement planifié et une option d’annulation ; /topup permet d’ajouter du crédit. L’application de bureau propose un onglet équivalent dans les paramètres de facturation.50

Tarifs et accès

Les tarifs et les noms des offres sont publiés sur la page de tarification de Nous Portal (https://portal.nousresearch.com/pricing). Ce guide ne les répertorie pas, car ils relèvent du produit Portal, et non du CLI Hermes, et peuvent évoluer indépendamment des versions de Hermes. Inscrivez-vous sur https://portal.nousresearch.com/ et consultez la page de tarification pour connaître les offres actuelles.

Avis de dépréciation

  • La variable d’environnement HERMES_ENABLE_NOUS_MANAGED_TOOLS a été supprimée dans la v0.10.0. Les outils gérés s’activent désormais au moyen du champ de configuration use_gateway propre à chaque outil, sous réserve que votre abonnement Portal soit actif.55

Mise au point : ce que cette version n’est pas

Le CLI Hermes Agent n’est pas réservé aux abonnés. Le projet reste sous licence MIT, et toutes ses fonctionnalités principales (CLI, skills, mémoire, messaging gateway, cron, MCP, tableau de bord local et BYOK pour chaque fournisseur) fonctionnent de bout en bout sans aucun paiement. La v0.10.0 ajoute une option pratique pour les utilisateurs qui paient déjà un abonnement à Nous Portal ; elle ne retire rien à l’offre gratuite.


Messaging Gateway

Hermes peut s’exécuter comme un processus gateway persistant reliant 28 plateformes de messagerie depuis un même processus gateway : Telegram, Discord, Slack, WhatsApp, Signal, SMS, e-mail, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, Weixin (WeChat), BlueBubbles (iMessage), QQBot, Microsoft Teams, Tencent Yuanbao, Google Chat, LINE, SimpleX Chat, Photon (iMessage), WhatsApp Cloud API, WeCom Callback, Raft, IRC, ntfy, Buzz et un adaptateur Webhook générique.354171819 Ce total de 28 provient du tableau comparatif des plateformes de la documentation à la version v2026.8.31. En dessous, gateway/config.py définit 24 membres intégrés de l’énumération Platform (y compris des entrées qui ne correspondent pas à des services de chat, comme local, api_server, webhook, msgraph_webhook et relay) et associe à la demande tout autre nom à l’un des 22 dossiers d’adaptateurs fournis sous plugins/platforms/ ; un simple décompte des valeurs de l’énumération ou des dossiers ne correspondra donc pas au nombre indiqué dans la documentation.25 La v0.9.0 a ajouté la prise en charge d’iMessage via BlueBubbles (enregistrement automatique du webhook, assistant de configuration et résilience aux plantages), ainsi que la prise en charge native de WeChat via l’API iLink Bot, avec un mode de rappel WeCom pour les applications d’entreprise.16 La v0.11.0 a ajouté QQBot.54 La v0.12.0 a ajouté Microsoft Teams et Tencent Yuanbao.17 La v0.13.0 a ajouté Google Chat comme 20e plateforme, en s’appuyant sur la même architecture d’adaptateurs modulaires ; IRC et Microsoft Teams ont également migré vers ce nouveau modèle d’adaptateurs, avec les hooks de plugin génériques env_enablement_fn / cron_deliver_env_var.18 La v0.14.0 ajoute LINE et SimpleX Chat et finalise la pile Microsoft Teams de bout en bout, avec l’authentification Graph, l’écouteur de webhooks, le pipeline d’exécution et l’envoi sortant.19 La v0.17.0 (19 juin 2026) ajoute iMessage sans relais via Photon Spectrum (OAuth par code d’appareil avec hermes photon login, sans relais Mac/BlueBubbles), l’adaptateur officiel WhatsApp Business Cloud API (qui remplace le recours obligatoire à un processus passerelle), les groupes SimpleX et les pièces jointes natives, ainsi que Raft comme plugin de plateforme fourni avec Hermes.21 Deux autres figurent dans le tableau de la documentation sans avoir été mis en avant dans les notes de version : ntfy est un canal push HTTP léger fonctionnant par publication-abonnement (abonnez-vous à un sujet depuis l’application mobile ntfy, envoyez un message à ce sujet pour parler à l’agent, puis recevez la réponse sur votre téléphone ; il fonctionne avec le serveur public ntfy.sh ou une instance auto-hébergée, sans SDK ni daemon), tandis que Buzz relie Hermes à une communauté Buzz, la plateforme open source de Block qui associe humains et agents sur le protocole Nostr, en exécutant le CLI buzz pour les messages sortants et en utilisant un abonnement WebSocket Nostr natif pour les messages entrants. Tous deux se configurent via hermes gateway setup.25

Configuration

hermes gateway setup                # Interactive platform configuration
hermes gateway install              # Install as user service (systemd/launchd)
hermes gateway start                # Start the installed service
hermes gateway stop
hermes gateway restart
hermes gateway status
hermes gateway run                  # Run in foreground (debugging)

La configuration interactive vous guide dans la connexion de chaque plateforme : jetons API, identifiants des bots, associations de canaux et listes d’autorisation.6

Acheminement des messages

D’après la documentation d’architecture en amont :3

Platform event → Adapter.on_message() → MessageEvent
  → GatewayRunner._handle_message()
    → authorize user
    → resolve session key
    → create AIAgent with session history
    → AIAgent.run_conversation()
    → deliver response back through adapter

Toutes les plateformes de messagerie passent par la même boucle de conversation AIAgent que le CLI. C’est pourquoi les commandes slash fonctionnent de la même manière aux deux endroits et qu’une tâche cron planifiée dans Telegram peut transmettre son résultat à Discord : la différence entre les plateformes se situe uniquement en périphérie.3

La v0.19.0 ajoute le routage des messages par profile et la livraison durable. Un gateway multiplexé unique partageant le même jeton de bot peut acheminer des serveurs, canaux ou fils de discussion précis vers différents profiles, chacun disposant de sa propre configuration, de ses skills, de sa mémoire et de ses secrets entièrement isolés, avec la possibilité de remplacer ce comportement au moyen de GATEWAY_MULTIPLEX_PROFILES. Grâce à une série de mesures de durcissement, un profile mal configuré ne peut plus faire tomber l’ensemble du gateway. En interne, l’index de routage a été déplacé vers state.db (sessions.json n’est désormais qu’un miroir facultatif hérité), et les réponses finales sont consignées dans un registre durable des obligations de livraison qui encadre l’envoi par la plateforme : si une réponse terminée coïncide avec un plantage du gateway, elle est renvoyée au prochain démarrage au lieu d’être silencieusement perdue.50

La v0.21.1 rend les limites des conversations exclusivement explicites. La documentation sur le cycle de vie des sessions à la version v2026.9.7 définit le contrat en quatre phrases : « L’inactivité et le temps écoulé ne provoquent jamais le renouvellement d’une conversation. /new et /reset créent une limite explicite ; la compression du contexte continue de gérer les historiques longs. L’ancienne configuration des délais est ignorée. Le type de données SessionResetPolicy existant constitue une donnée de compatibilité inerte, et non une politique d’exécution. » Une suspension explicite crée toujours une limite lors du prochain message entrant, la récupération respecte les limites finalisées au lieu de les rouvrir et l’éviction limitée aux ressources permet de reprendre les conversations. Si une session de votre gateway semble « ne jamais expirer », c’est désormais le comportement prévu ; renouvelez-la vous-même avec /new.43

Autorisation et appairage des utilisateurs

hermes pairing list                    # Show pending and approved users
hermes pairing approve <platform> <code>
hermes pairing revoke <platform> <user-id>
hermes pairing clear-pending

Les codes d’appairage empêchent des inconnus d’interagir avec votre gateway. Un utilisateur envoie un code d’appairage depuis sa plateforme de messagerie ; vous l’approuvez avec hermes pairing approve ; il est alors autorisé.6


Tâches planifiées (Cron)

Hermes dispose d’un système cron de premier ordre dans lequel les jobs sont des tâches d’agent, et non des commandes shell. Chaque job planifié s’exécute dans un nouvel AIAgent avec le prompt configuré et, le cas échéant, les skills associés, puis transmet les résultats à n’importe quelle plateforme :36

hermes cron list
hermes cron create --prompt "Check HN for AI news and summarize" --schedule "0 9 * * *" --deliver telegram
hermes cron edit <id>
hermes cron pause <id>
hermes cron resume <id>
hermes cron run <id>         # Trigger now on the next tick
hermes cron remove <id>
hermes cron status           # Check if scheduler is running
hermes cron tick             # Run due jobs once and exit

Vous pouvez également en créer un de manière conversationnelle dans une messagerie :

Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.

L’agent configurera le job cron au moyen de ses outils. Les jobs sont conservés dans JSON et persistent après les redémarrages.3

La version 0.21.0 a doté les jobs planifiés de mémoire et de discernement. Quatre mécanismes, tous vérifiés avec le tag v2026.8.31 :3537

  • Continuité. continuity=true injecte dans chaque exécution le résultat le plus récent produit par le job lui-même. Ainsi, un agent de veille ou de surveillance « se réveille en voyant ce qu’il a signalé la fois précédente et peut éviter les doublons tout en reprenant là où il s’était arrêté » ; le cadrage injecté lui demande d’« éviter de répéter ce qui a déjà été signalé », la première exécution reste inchangée et, en interne, l’option est stockée sous l’entrée réservée self dans context_from. Activez ou désactivez cette option avec hermes cron create ... --continuity et hermes cron edit <job_id> --continuity / --no-continuity.37
  • Blocs-notes persistants. Chaque job dispose d’un petit espace de travail KV pour les curseurs, les repères de progression et les listes de surveillance (16 Ko par valeur et 64 Ko par job ; son contenu étant injecté dans le prompt à chaque exécution, ces limites sont intentionnelles), alimenté avec hermes cron notepad <job_id> set <key> <value>, que l’agent en cours d’exécution appelle depuis son outil de terminal.37
  • Mode de surveillance. Un job peut associer une source peu coûteuse monitor_script/monitor_url, exécutée en premier à chaque cycle : si la sortie n’a pas changé (comparaison exacte des octets), l’exécution de l’agent est entièrement supprimée ; aucun appel LLM, aucune transmission, seulement une exécution silencieuse no_change. En cas de changement, un bloc de différences est injecté et l’agent s’exécute normalement. Veillez à ce que les scripts de surveillance produisent une sortie stable, sans quoi chaque cycle semblera comporter un changement.37
  • Effort de raisonnement par job et transmission dans Bot Chat. --reasoning-effort fixe le niveau de réflexion d’un job (none à ultra) et remplace les paramètres globaux et propres au modèle pour les exécutions de ce job ; deliver=bot-chat dépose quant à lui le résultat dans la session Bot Chat canonique d’un profile sous forme de véritable message entrant, où le bot « agit sur tout ce qui nécessite une intervention et répond dans sa conversation », au lieu qu’une personne se contente de lire un canal.37

Intégration de MCP

Hermes prend en charge le Model Context Protocol à la fois comme client et comme serveur :6

Comme client — connectez Hermes à des serveurs MCP externes pour étendre son éventail d’outils :

hermes mcp add <name> --url https://example.com/mcp
hermes mcp add <name> --command npx --args "-y,@modelcontextprotocol/server-github"
hermes mcp list
hermes mcp test <name>
hermes mcp remove <name>
hermes mcp configure <name>   # Toggle individual tool selection
hermes mcp login <name>       # Force re-auth for an OAuth server (--flow browser|device)
hermes mcp reauth [--all]     # Re-authenticate one OAuth server, or every one

Ou procédez manuellement dans config.yaml :14

mcp_servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"

Depuis la version 0.19.0, les outils MCP sont présentés au modèle selon la convention de nommage mcp__server__tool : chaque nom d’outil inclut celui de son serveur, ce qui évite désormais les conflits lorsque deux serveurs proposent le même outil. Les notifications de journal des serveurs MCP apparaissent également dans agent.log.50

La version 0.21.1 ajoute à OAuth de MCP un parcours par code d’appareil : hermes mcp login <name> accepte --flow {browser,device} ; browser correspond au parcours PKCE existant, tandis que device lance une connexion par code d’appareil conforme à la RFC 8628 pour les machines sans interface graphique ou distantes. Cette option remplace la configuration oauth.flow du serveur. Cette même version impose la propriété du profile pendant toute la durée des sessions OAuth, ignore les caches de métadonnées OAuth mal formés plutôt que de bloquer un serveur et relaie OAuth de MCP sur ordinateur via des callbacks locaux au client ; -t/--toolsets filtre désormais également les serveurs MCP configurés qui sont lancés, afin qu’une invocation ciblée évite le démarrage à froid des serveurs dont elle n’a pas besoin.44

La version 0.21.0 transforme l’interface MCP de l’application de bureau en centre de commande : les serveurs et le catalogue sont réunis sur une même page, avec import par glisser-déposer de type « collez n’importe quel contenu », contrôles d’intégrité en arrière-plan signalant une authentification proche de l’expiration avant l’échec d’un appel d’outil, vue globale des coûts et de l’utilisation présentant des estimations du nombre de tokens du schéma et l’utilisation sur 30 jours pour chaque serveur, ainsi que des liens profonds hermes:// permettant d’installer un serveur MCP après confirmation explicite.35

Comme serveur — exposez les conversations Hermes à d’autres agents :

hermes mcp serve
hermes mcp serve -v    # Verbose

Compression du contexte

Hermes compresse automatiquement les longues conversations afin de respecter la fenêtre de contexte de votre modèle. Le modèle de synthèse utilisé pour la compression effectue un appel LLM distinct ; vous pouvez l’orienter vers n’importe quel fournisseur ou endpoint.4 Depuis la version 0.20.6, la stratégie de conservation de la fin de conversation utilise par défaut le mode lean (compression.tail_mode: lean). Dans le tag correspondant, les paramètres de modèle, de fournisseur et d’endpoint du modèle de synthèse se trouvent sous auxiliary.compression.*, et non plus sous les anciennes clés compression.summary_* ; les anciennes clés sont automatiquement migrées au premier chargement (version 17 de la configuration).3031

compression:
  enabled: true
  threshold: 0.50          # Compress at this % of context limit
  threshold_tokens: null   # Optional absolute token cap -- trigger fires at the lower of ratio vs cap
  target_ratio: 0.20       # Fraction of threshold to preserve as recent tail (legacy tail mode)
  tail_mode: lean          # Tail retention: "lean" (default) or "legacy"
  protect_last_n: 20       # Min recent messages to keep uncompressed
  protect_first_n: 3       # Non-system head messages pinned across compactions

auxiliary:
  compression:
    model: ""              # Empty = main chat model; e.g. "google/gemini-3-flash-preview"
    provider: "auto"       # "auto", "openrouter", "nous", "codex", "main", etc.
    base_url: null         # Custom OpenAI-compatible endpoint (overrides provider)

Ce que détermine tail_mode. legacy conserve textuellement une fin de conversation dimensionnée selon target_ratio ; avec de grandes fenêtres ou des seuils relevés, cette approche accapare 100 000 à 240 000 tokens par compression. lean conserve textuellement une fin de conversation limitée à 2,5 % de la fenêtre de contexte, avec un minimum de 10 000 et un maximum de 25 000 tokens, puis assure plutôt la continuité dans le résumé : journal détaillé de la partie compressée de la session préservant les identifiants (un appel auxiliaire au modèle de synthèse par tentative), index des éléments de référence extrait mécaniquement (numéros de PR, SHA, chemins, chaînes d’erreur ; par expression régulière, sans aucune reformulation), citation textuelle de chaque véritable message de l’utilisateur et pointeur de récupération session_search permettant à l’agent de retrouver tout contenu écarté par la synthèse. Résultat mesuré dans la documentation sur de véritables sessions de 500 000 tokens : environ 49 000 tokens conservés au lieu d’environ 162 000. Dans la fin de conversation lean, les anciens résultats d’outils sont réduits à des entrées d’une ligne accompagnées d’un pointeur de récupération, et les valeurs tail_mode inconnues reviennent par défaut à lean.31

Options du fournisseur :431

auxiliary.compression.provider auxiliary.compression.base_url Résultat
auto (par défaut) non défini Détection automatique du meilleur fournisseur disponible
nous / openrouter / etc. non défini Imposer ce fournisseur et utiliser son authentification
n’importe quelle valeur défini Utiliser directement l’endpoint personnalisé (le fournisseur est ignoré)

Le modèle de synthèse doit prendre en charge une fenêtre de contexte au moins aussi grande que celle de votre modèle principal, puisqu’il reçoit toute la partie centrale de la conversation en un seul appel ; si sa fenêtre est plus petite, l’appel échoue et les échanges intermédiaires sont supprimés sans résumé.431

Alertes de pression sur le budget

Lorsque l’agent travaille sur une tâche complexe nécessitant de nombreux appels d’outils, il peut épuiser son budget d’itérations (500 tours par défaut depuis la version 0.20.0, contre 90 auparavant) sans s’en rendre compte. La surveillance de la pression sur le budget avertit automatiquement le modèle :4

Seuil Niveau Ce que voit le modèle
70 % Prudence [BUDGET: 350/500. 150 iterations left. Start consolidating.]
90 % Avertissement [BUDGET WARNING: 450/500. Only 50 left. Respond NOW.]

Délais d’expiration du flux

La connexion de streaming LLM comporte deux niveaux de délai d’expiration qui s’ajustent automatiquement pour les fournisseurs locaux (localhost, adresses IP du réseau local) :4

Délai d’expiration Valeur par défaut Fournisseurs locaux Variable d’environnement
Délai de lecture du socket 120 s Augmenté automatiquement à 1 800 s HERMES_STREAM_READ_TIMEOUT
Détection d’un flux inactif 180 s Désactivée automatiquement HERMES_STREAM_STALE_TIMEOUT
Appel API (sans streaming) 1 800 s Inchangé HERMES_API_TIMEOUT

Le délai de lecture du socket est porté à 30 minutes pour les endpoints locaux, car les LLM locaux peuvent prendre plusieurs minutes pour préremplir de grands contextes avant de produire le premier token.4


Tableau de bord Web local (v0.9.0+)

Un tableau de bord accessible dans le navigateur permet de gérer localement votre Hermes Agent. Configurez les paramètres, surveillez les sessions, parcourez les skills et gérez votre gateway sans toucher aux fichiers de configuration ni au terminal.16 Lancez-le avec hermes dashboard. Il s’agit du parcours d’intégration le plus simple pour les nouveaux utilisateurs qui préfèrent une interface graphique.

Surveillance des processus en arrière-plan (v0.9.0+)

watch_patterns vous permet de définir des motifs à surveiller dans la sortie des processus en arrière-plan et d’être averti en temps réel lorsqu’ils correspondent.16 Surveillez les erreurs, attendez des événements précis (« écoute sur le port ») ou suivez les journaux de compilation, le tout sans interrogation périodique. Associé à notify_on_complete, introduit dans la version 0.8.0 et chargé de signaler la fin des tâches en arrière-plan, Hermes dispose désormais d’une couche complète d’observabilité des processus en arrière-plan.15

Context Engine enfichable (v0.9.0+)

La gestion du contexte est désormais un emplacement enfichable via hermes plugins. Vous pouvez y substituer des context engines personnalisés qui contrôlent ce que l’agent voit à chaque tour — filtrage, synthèse ou injection de contexte propre à un domaine.16 Cette architecture dissocie la stratégie de contexte de la boucle principale de l’agent et permet de personnaliser le contexte pour chaque projet ou domaine.

Sauvegarde et restauration (v0.9.0+)

hermes backup crée une archive complète de votre configuration, de vos sessions, de vos skills et de votre mémoire. hermes import effectue une restauration à partir d’une archive de sauvegarde.16 Utilisez ces commandes pour migrer d’une machine à une autre, créer des instantanés avant des modifications importantes ou partager une configuration fiable avec vos coéquipiers.

Prise en charge de Termux / Android (v0.9.0+)

Hermes s’exécute nativement sur Android via Termux. Les chemins d’installation adaptés, les optimisations de la TUI pour les écrans mobiles, la prise en charge du moteur vocal et la commande /image fonctionnent directement sur l’appareil.16

Renforcement de la sécurité (v0.13.0+)

La v0.13.0 a corrigé 8 problèmes de sécurité P0 et modifié un réglage par défaut en faveur de l’utilisateur.18 La v0.14.0 poursuit sur cette lancée avec la correction de 12 autres problèmes P0 et de 50 problèmes P1, notamment le renforcement contre les attaques par force brute sur sudo et via sudo-stdin, la correction de contournements des protections contre les commandes dangereuses, l’assainissement des erreurs des outils avant leur réinjection dans le modèle, l’authentification API des plugins du dashboard, la couverture SSRF du skills-hub et l’analyse des avis de sécurité relatifs à la chaîne d’approvisionnement lors de l’installation.19

Correctif Modifications apportées
Caviardage des secrets activé par défaut Auparavant, il fallait l’activer explicitement. Les logs et les téléversements effectués avec hermes debug share caviardent les secrets, sauf désactivation explicite. La v0.12.0 avait désactivé le caviardage par défaut à la suite de signalements de corruption des payloads ; la v0.13.0 le réactive afin d’établir une base de sécurité plus solide.
Contournement des DM inter-serveurs Discord (CVSS 8.1) Les listes d’autorisation des rôles Discord sont désormais limitées à chaque serveur, ce qui ferme une voie par laquelle le rôle d’un utilisateur sur un serveur autorisait les DM sur tous les autres.
Restrictions par défaut de WhatsApp L’adaptateur WhatsApp rejette les inconnus par défaut et ne répond jamais dans les conversations avec soi-même.
Fenêtre TOCTOU de MCP OAuth Correction d’une condition de concurrence lors de l’enregistrement des identifiants dans les flux MCP OAuth.
TOCTOU de auth.json pour CLI Correction d’une fenêtre TOCTOU analogue dans le composant d’écriture des identifiants du magasin d’authentification CLI.
Protection SSRF minimale du navigateur Le routage hybride impose une protection SSRF minimale contre les requêtes qui tentent d’atteindre les services de métadonnées cloud à l’adresse 169.254.169.254 ou à des adresses équivalentes.
Détection des injections de prompt dans les tâches cron Les prompts assemblés, y compris le contenu chargé des skills, sont analysés pour détecter les injections de prompt avant l’exécution de la tâche cron.
Caviardage avec hermes debug share Le contenu des logs téléversés lors d’un partage de débogage est caviardé au moment du téléversement, et pas uniquement lors de son écriture.

Si vous gérez un déploiement Hermes, considérez les v0.13.0 et v0.14.0 comme des mises à niveau de sécurité, et non comme de simples ajouts de fonctionnalités. La v0.13.0 corrige le contournement inter-serveurs de Discord et deux fenêtres TOCTOU ; la v0.14.0 ajoute une nouvelle série de renforcements portant sur la gestion de sudo, la réinjection des erreurs des outils, les APIs des plugins, les SSRF du skills-hub et les avis de sécurité relatifs aux dépendances.

La v0.21.0 apporte une quatrième vague. Les écritures dans les fichiers protégés contenant les instructions de l’agent – AGENTS.md, CLAUDE.md, SOUL.md, .cursorrules, les skills et les magasins de mémoire – nécessitent désormais toujours une approbation. Ainsi, un agent victime d’une injection de prompt ne peut plus réécrire discrètement ses propres consignes permanentes. Ce contrôle est activé par défaut (security.protected_instruction_files: true, avec une liste de motifs d’extension fnmatch portant sur les noms de base dans protected_instruction_extra_patterns). La source précise le vecteur ainsi neutralisé : « une instruction injectée qui modifie AGENTS.md / CLAUDE.md / SOUL.md », et souligne que les fichiers d’instructions sont chargés depuis les arborescences du cwd, si bien que « tout fichier AGENTS.md situé à un emplacement depuis lequel l’agent pourrait ultérieurement s’exécuter constitue une cible active ».3539 La même version comble les failles permettant la divulgation de secrets dans les erreurs du terminal, la lecture des fichiers .env, les checkpoints et les logs ACP ; apprend au système d’approbation à reconnaître les commandes destructrices et les chemins Windows ; permet aux autorisations macOS de persister après les mises à jour grâce à une identité de signature TCC stable (configuration unique : hermes desktop --setup-tcc-identity, uniquement sous macOS, nécessite openssl/security/codesign) ; supprime l’entrée Blender MCP du catalogue ainsi que le skill correspondant après la compromission d’un composant en amont ; et ajoute une analyse de sécurité Tier-1 à l’installation des plugins.3539


Architecture pour les praticiens

Cette section s’adresse aux personnes qui souhaitent comprendre ce qui se passe sous le capot afin de pouvoir déboguer Hermes, l’étendre ou analyser ses performances. Elle propose une synthèse de la documentation d’architecture du projet en amont.3

Points d’entrée → AIAgent

Chaque point d’entrée de Hermes appelle finalement AIAgent.run_conversation() :

┌──────────────────────────────────────────────────────────────────┐
                        Entry Points                              
                                                                  
  CLI (cli.py)    Gateway (gateway/run.py)    ACP (acp_adapter/)  
  Batch Runner    API Server                  Python Library     
└──────────┬──────────────┬───────────────────────┬────────────────┘
                                                
                                                
┌──────────────────────────────────────────────────────────────────┐
                     AIAgent (run_agent.py)                       
                                                                  
  ┌─────────────┐  ┌──────────────┐  ┌──────────────┐             
   Prompt         Provider        Tool                      
   Builder        Resolution      Dispatch                  
  └──────┬──────┘  └──────┬───────┘  └──────┬───────┘             
                                                              
  ┌──────┴───────┐ ┌──────┴───────┐  ┌──────┴───────┐             
   Compression    3 API Modes     Tool Registry             
   & Caching      chat_compl      47 tools                  
                  codex_resp      20 toolsets               
                  anthropic                                 
  └──────────────┘ └──────────────┘  └──────────────┘             
└──────────────────────────────────────────────────────────────────┘

Schéma adapté de la documentation d’architecture du projet en amont.3

« 47 tools / 20 toolsets » contre « 28 tools » dans votre bannière. Le nombre « 47 tools » correspond au registre total des outils du dépôt en amont : tous les outils dont le code source est fourni avec Hermes, tous toolsets confondus. Votre CLI en cours d’exécution affichera un nombre inférieur dans sa bannière de démarrage (l’installation sur laquelle j’ai vérifié ce guide indique 28 tools / 89 skills). Ce n’est pas un bug. De nombreux toolsets sont facultatifs et doivent être explicitement activés dans config.yaml, sous toolsets: : adaptateurs de plateformes de messagerie, automatisation du navigateur, outils d’extraction plus lourds, etc. Le total du registre représente « ce qui est disponible » ; le nombre de la bannière, « ce qui est activé dans votre profile actuel ». Vérifiez les toolsets actifs avec hermes tools --list, puis activez ou désactivez-en individuellement à l’aide du bloc toolsets: dans ~/.hermes/config.yaml (ou avec /tools list / /tools enable <name> / /tools disable <name> au sein d’une session en cours ; la suppression d’un outil réinitialise la session afin que l’agent reconstruise son manifeste d’outils).

Les trois modes API

Hermes abstrait les différences entre fournisseurs dans trois modes API, sélectionnés automatiquement lors de l’exécution :3

Mode API Utilisé par
chat_completions OpenRouter, z.ai, Kimi, MiniMax, DeepSeek, Alibaba, la plupart des endpoints personnalisés, tout serveur compatible avec OpenAI
codex_responses OpenAI Codex (via ChatGPT OAuth)
anthropic_messages Anthropic API (natif), Anthropic OAuth, proxies compatibles avec Anthropic

Le résolveur runtime_provider.py associe les tuples (provider, model) à (api_mode, api_key, base_url) pour plus de 18 fournisseurs, tout en gérant les flux OAuth, les pools d’identifiants et la résolution des alias.3

Flux de données dans une session CLI

User input  HermesCLI.process_input()
   AIAgent.run_conversation()
     agent.prompt_builder.build_system_prompt()
     runtime_provider.resolve_runtime_provider()
     API call (chat_completions / codex_responses / anthropic_messages)
     tool_calls?  model_tools.handle_function_call()  loop
     final response  display  save to SessionDB

Extrait de la page d’architecture du projet en amont.3

Ordre d’assemblage du prompt

La pile du prompt comprend :13

  1. SOUL.md (identité de l’agent — ou solution de secours intégrée si le fichier est indisponible)
  2. Directives comportementales tenant compte des outils
  3. Mémoire et contexte utilisateur (MEMORY.md, USER.md)
  4. Directives relatives aux skills
  5. Fichiers de contexte (AGENTS.md, .cursorrules)
  6. Horodatage
  7. Indications de mise en forme propres à la plateforme
  8. Superpositions facultatives du prompt système, telles que /personality

SOUL.md constitue la base : tout le reste vient s’y superposer.13

Stockage des sessions

Stockage des sessions fondé sur SQLite, avec recherche plein texte FTS5. Les sessions bénéficient d’un suivi de filiation (parent/enfant au fil des compressions), d’une isolation par plateforme et d’écritures atomiques avec gestion des accès concurrents.3

Système de plugins

Trois sources de découverte : ~/.hermes/plugins/ (utilisateur), .hermes/plugins/ (projet) et les points d’entrée pip. Les plugins enregistrent des outils, des hooks et des commandes CLI par l’intermédiaire d’un API de contexte. Les fournisseurs de mémoire constituent un type de plugin spécialisé sous plugins/memory/.3

hermes plugins                       # Interactive enable/disable UI
hermes plugins install <repo>        # Install from Git URL or owner/repo
hermes plugins enable <name>
hermes plugins disable <name>
hermes plugins list

Fenêtre de compatibilité (v0.21.1) : les plugins externes doivent abandonner les chemins d’importation antérieurs à la décomposition avant le 14 septembre 2026. La décomposition de septembre 2026 (PR #102117) a déplacé les composants internes couramment importés par les plugins. Une couche temporaire COMPAT_MANIFEST.md réexporte depuis leurs anciens modules 1 148 noms publics déplacés, avec un avertissement émis une fois par nom et par processus (HermesPluginCompatWarning). Cette couche sera supprimée le 14 septembre 2026 ; à compter de cette date, tout plugin concerné sera désactivé – il ne sera pas chargé, et un avis rouge apparaîtra dans la bannière CLI, hermes doctor et hermes update, ainsi que dans une fenêtre modale unique sur le bureau ; le motif sera également affiché dans hermes plugins list. Pour les auteurs : exécutez hermes plugins compat <path> (ajoutez --json pour obtenir une sortie lisible par une machine) ; la commande affiche chaque file:line accompagné de l’ancien chemin -> nouveau chemin et renvoie le code de sortie 1 tant qu’il reste des éléments à corriger. Les utilisateurs contraints de conserver un plugin qui n’est plus maintenu peuvent définir plugins.allow_deprecated_imports: true dans config.yaml afin qu’il continue à se charger après cette date, jusqu’à ce que la suppression de la couche de compatibilité fasse disparaître définitivement les anciens chemins. Seuls les noms publics de premier niveau sont couverts ; les noms privés et les points de raccordement utilisés pour les monkeypatchs dans les tests n’ont jamais fait partie de l’interface publique et ne sont pas restaurés.42

Principes de conception

Extraits de la page d’architecture du projet en amont :3

Principe Signification concrète
Stabilité du prompt Le prompt système ne change pas au cours d’une conversation. Aucune mutation invalidant le cache, sauf en cas d’action explicite de l’utilisateur (/model)
Exécution observable Chaque appel d’outil est visible par l’utilisateur par l’intermédiaire de callbacks. Mises à jour de progression dans CLI (indicateur animé) et le gateway (messages de chat)
Interruptible Les appels API et l’exécution des outils peuvent être annulés en cours de traitement par une entrée utilisateur ou des signaux
Cœur indépendant de la plateforme Une seule classe AIAgent dessert CLI, le gateway, ACP, le traitement par lots et le serveur API. Les différences propres aux plateformes résident dans le point d’entrée
Couplage faible Les sous-systèmes facultatifs (MCP, plugins, fournisseurs de mémoire, environnements RL) emploient des modèles de registre et un filtrage par check_fn, et non des dépendances fortes
Isolation des profiles Chaque profile dispose de ses propres HERMES_HOME, configuration, mémoire, sessions et PID de gateway. Plusieurs profiles s’exécutent simultanément

Migration depuis OpenClaw

Hermes Agent succède à OpenClaw. Si vous effectuez une migration depuis une installation OpenClaw existante :65

hermes claw migrate --dry-run                    # Preview what would be migrated
hermes claw migrate --preset full                # Full migration including API keys
hermes claw migrate --preset user-data --overwrite   # User data only, no secrets
hermes claw migrate --source /custom/path        # Non-default OpenClaw location

hermes claw migrate lit par défaut les données depuis ~/.openclaw (et détecte aussi automatiquement les anciens dossiers ~/.clawdbot et ~/.moldbot), puis les écrit dans ~/.hermes.6

Importés directement (plus de 30 catégories) : SOUL.md, MEMORY.md, USER.md, AGENTS.md, les skills issus de 4 dossiers sources, le modèle par défaut, les fournisseurs personnalisés, les serveurs MCP, les tokens et listes d’autorisation des plateformes de messagerie (Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost), les paramètres par défaut de l’agent (effort de raisonnement, compression, délai humain, fuseau horaire, sandbox), les politiques de réinitialisation des sessions (désormais inactives : depuis la v0.21.1, les minuteurs ne font jamais basculer une conversation43), les règles d’approbation, la configuration TTS, les paramètres du navigateur, les paramètres des outils, le délai d’expiration des exécutions, la liste d’autorisation des commandes, la configuration du gateway et les clés API provenant de 3 sources.6

Archivés pour examen manuel : tâches cron, plugins, hooks/webhooks, backend de mémoire (QMD), configuration du registre des skills, interface utilisateur/identité, journalisation, configuration multi-agent, associations de canaux, IDENTITY.md, TOOLS.md, HEARTBEAT.md, BOOTSTRAP.md.6

La résolution des clés API examine trois sources selon l’ordre de priorité suivant : valeurs de configuration → ~/.openclaw/.envauth-profiles.json.6


Dépannage

« Aucun fournisseur d’inférence n’est configuré. Exécutez ‘hermes model’ pour choisir un fournisseur et un modèle »

C’est la première erreur rencontrée après toute nouvelle installation : Hermes n’a encore trouvé aucun fournisseur. Le message signifie exactement ce qu’il indique — aucune des trois méthodes d’authentification n’a fourni de fournisseur utilisable. Exécutez :

hermes model

Le sélecteur interactif vous guide parmi tous les fournisseurs pris en charge, notamment les flux par code d’appareil OAuth (Nous Portal, GitHub Copilot, Anthropic, OpenAI Codex) et les endpoints personnalisés pour les serveurs auto-hébergés. Si vous pensiez qu’un fournisseur était déjà configuré, hermes doctor indique les identifiants auxquels Hermes a réellement accès ; les causes habituelles sont une clé API définie au mauvais endroit (elle doit se trouver dans .env ou être configurée avec hermes config set, et non dans votre profil shell), un identifiant OAuth expiré dans ~/.hermes/auth.json ou un endpoint personnalisé de config.yaml qui a perdu son base_url. Les méthodes d’authentification sont détaillées dans Authentification et fournisseurs.27

« Clé API non définie »

Exécutez hermes model pour configurer votre fournisseur de manière interactive, ou hermes config set OPENROUTER_API_KEY your_key. La commande hermes doctor vous indiquera précisément quelles clés sont manquantes.7

« Limite de contexte : 2048 tokens » au démarrage (modèles locaux)

Hermes détecte automatiquement la longueur du contexte à partir de l’endpoint /v1/models de votre serveur, mais de nombreux serveurs locaux indiquent des valeurs par défaut faibles. Définissez-la explicitement dans config.yaml :2

model:
  default: your-model
  provider: custom
  base_url: http://localhost:11434/v1
  context_length: 32768

Les appels d’outils s’affichent sous forme de texte au lieu d’être exécutés

Les appels d’outils ne sont pas activés sur votre serveur, ou le modèle ne les prend pas en charge dans l’implémentation du serveur.2

Serveur Correctif
llama.cpp Ajoutez --jinja à la commande de démarrage
vLLM Ajoutez --enable-auto-tool-choice --tool-call-parser hermes
SGLang Ajoutez --tool-call-parser qwen (ou le parseur approprié)
Ollama Les appels d’outils sont activés par défaut — vérifiez que votre modèle les prend en charge avec ollama show <model>
LM Studio Installez la version 0.3.6 ou ultérieure et utilisez un modèle prenant nativement en charge les outils

Les réponses sont interrompues en pleine phrase

Deux causes sont possibles :2

  1. Plafond de sortie faible (max_tokens) sur le serveur — SGLang est limité par défaut à 128 tokens par réponse. Définissez --default-max-tokens sur le serveur ou configurez model.max_tokens dans config.yaml.
  2. Épuisement du contexte — Le modèle a rempli sa fenêtre de contexte. Augmentez model.context_length ou activez la compression du contexte dans Hermes.

« Connection refused » depuis WSL2 vers un serveur de modèles hébergé sous Windows

WSL2 utilise une carte réseau virtuelle avec son propre sous-réseau — dans WSL2, localhost désigne la machine virtuelle Linux, et non l’hôte Windows. Deux solutions s’offrent à vous :2

Réseau en miroir (Windows 11 22H2 ou version ultérieure) : modifiez %USERPROFILE%\.wslconfig :

[wsl2]
networkingMode=mirrored

Exécutez ensuite wsl --shutdown, puis redémarrez. localhost fonctionne désormais dans les deux sens.

Adresse IP de l’hôte comme solution de repli (anciennes versions de Windows) : récupérez l’adresse IP de l’hôte Windows depuis WSL2 et utilisez-la à la place de localhost :

ip route show | grep -i default | awk '{ print $3 }'
# Use that IP as the base_url host

Le serveur de modèles doit également écouter sur 0.0.0.0, et non sur 127.0.0.1 — définissez OLLAMA_HOST=0.0.0.0 pour Ollama, ajoutez --host 0.0.0.0 pour llama-server/SGLang ou activez « Serve on Network » dans LM Studio.2

Le budget d’itérations ignore agent.max_turns

Si la ligne d’activité affiche N/90 (ou une autre limite obsolète) alors que config.yaml indique agent.max_turns: 500, la cause probable est une ligne HERMES_MAX_ITERATIONS obsolète dans ~/.hermes/.env : auparavant, l’assistant de configuration enregistrait le budget dans les deux emplacements et, si le pont de démarrage s’interrompt en raison d’une erreur antérieure d’analyse de la configuration, cette valeur fantôme de .env l’emporte silencieusement. Depuis la version v0.21.1, hermes doctor détecte cette paire conflictuelle et hermes doctor --fix supprime la ligne de .env, laissant config.yaml faire autorité.41

Où se trouve chaque élément ?

hermes status et hermes dump sont ici vos meilleurs alliés. hermes logs list affiche tous les fichiers journaux avec leur taille. hermes config path affiche l’emplacement du fichier de configuration. hermes config env-path affiche l’emplacement de .env.6


FAQ

Quelle est la différence entre Hermes Agent et Claude Code ?

Claude Code est le CLI officiel de Anthropic, limité aux modèles Anthropic. Hermes Agent est un framework d’agent open source de Nous Research qui fonctionne avec tout fournisseur compatible avec OpenAI — Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Hugging Face, Google ou votre propre endpoint auto-hébergé.12 Hermes fournit également un gateway de messagerie pour Telegram/Discord/Slack/WhatsApp/Signal, dont Claude Code ne dispose pas.

Puis-je utiliser Hermes avec une clé API de Anthropic ?

Oui. Trois méthodes sont possibles :2

  1. Définissez ANTHROPIC_API_KEY dans ~/.hermes/.env, puis exécutez hermes chat --provider anthropic --model claude-sonnet-4-6
  2. Exécutez hermes model et sélectionnez Anthropic — Hermes utilisera le magasin d’identifiants de Claude Code lorsqu’il est disponible
  3. Définissez manuellement un ANTHROPIC_TOKEN (setup-token ou token OAuth) comme solution de repli

Privilégiez l’option 2 si vous utilisez déjà Claude Code sur la même machine — elle permet de continuer à actualiser les identifiants Claude renouvelables.

Comment changer de fournisseur sans perdre ma conversation ?

Utilisez /model provider:model au cours d’une session. L’historique de la conversation, la mémoire et les skills sont tous conservés :9

/model zai:glm-5
/model openrouter:anthropic/claude-sonnet-4
/model custom:local:qwen-2.5

J’ai configuré Anthropic, mais la vision, le Web et la compression ne fonctionnent pas

Avec les versions actuelles, l’ancien problème ne peut pratiquement plus se produire. Par défaut (auxiliary.*.provider: "auto"), chaque tâche auxiliaire — vision, classification des approbations, compression, titres des sessions — s’exécute sur votre modèle de chat principal ; une configuration limitée à Anthropic les prend donc en charge avec le OAuth dont elle dispose déjà. L’ancien comportement par défaut (Gemini Flash via OpenRouter → Nous → détection automatique de Codex, avec une dégradation silencieuse lorsqu’aucun n’était configuré) a disparu : « auto utilise désormais le modèle principal pour tout le monde, tandis que les remplacements propres à chaque tâche dans config.yaml restent prioritaires. »34

Si une tâche auxiliaire échoue encore, recherchez un remplacement explicite propre à cette tâche qui pointe vers un fournisseur que vous n’avez jamais configuré (auxiliary.<task>.provider / .model dans config.yaml), ou d’anciennes clés obsolètes : depuis le tag v2026.8.31, le récapitulateur de compression se configure comme n’importe quel autre emplacement auxiliaire — auxiliary.compression.provider — et les anciennes clés compression.summary_* y sont automatiquement migrées (version 17 de la configuration).31 L’extraction Web n’est désormais plus du tout une tâche LLM (« aucun LLM n’intervient ») ; dans les versions actuelles, un échec de synthèse Web n’est donc pas un problème de modèle auxiliaire.34 Pour rattacher explicitement une tâche à votre fournisseur principal :

auxiliary:
  vision:      { provider: "main" }
  compression: { provider: "main" }

Quelle est la différence entre SOUL.md et AGENTS.md ?

SOUL.md définit l’identité de votre agent — ton, style et préférences de communication par défaut. Il se trouve dans ~/.hermes/SOUL.md et vous accompagne partout. AGENTS.md est propre à un projet — architecture, conventions, commandes et chemins — et se trouve dans le dossier de votre projet.13 Si un élément doit vous accompagner partout, placez-le dans SOUL.md. S’il appartient à un projet, placez-le dans AGENTS.md.

Comment exécuter plusieurs instances de Hermes côte à côte ?

Utilisez des profiles. Chaque profile dispose de son propre HERMES_HOME, de sa propre configuration, de sa mémoire, de ses sessions et du PID de son gateway :6

hermes profile create work --clone
hermes profile use work                 # Sticky default
hermes -p work chat -q "..."            # One-off without switching
hermes profile alias work --name h-work # Wrapper script

Hermes prend-il en charge les LLMs locaux ?

Oui, grâce au mécanisme d’endpoint personnalisé. Hermes fonctionne avec tout serveur compatible avec OpenAI : Ollama, vLLM, SGLang, llama.cpp/llama-server, LM Studio, LocalAI, Jan ou le vôtre.2 Consultez Endpoints personnalisés et auto-hébergés pour connaître la configuration propre à chaque serveur.

Pourquoi la bannière de démarrage affiche-t-elle moins d’outils que ne l’indique le guide ?

Le guide mentionne 47 outils / 20 toolsets provenant du registre d’architecture en amont — il s’agit du nombre total d’outils dont Hermes fournit le code source, tous toolsets confondus. Votre installation en cours d’exécution affiche un nombre inférieur dans la bannière (l’installation de référence utilisée pour ce guide indique 28 outils), car Hermes active uniquement l’ensemble de toolsets par défaut au démarrage. De nombreux toolsets doivent être activés explicitement : les adaptateurs du gateway de messagerie, l’automatisation du navigateur, les piles d’extraction plus lourdes et plusieurs intégrations spécialisées doivent être expressément répertoriés sous toolsets: dans ~/.hermes/config.yaml avant d’être chargés. Total du registre = « ce qui est disponible si vous l’activez ». Total de la bannière = « ce que votre profile actuel a réellement chargé ». Utilisez hermes tools --list pour voir quels toolsets sont actifs et lesquels sont disponibles, mais désactivés. Activez ou désactivez chaque toolset pendant l’exécution avec /tools enable <name> et /tools disable <name> (la désactivation réinitialise la session afin que l’agent reconstruise son manifeste d’outils selon la nouvelle configuration).

Comment Hermes gère-t-il le modèle de repli lorsque mon fournisseur principal échoue ?

Configurez un bloc fallback_model dans config.yaml :2

fallback_model:
  provider: openrouter
  model: anthropic/claude-sonnet-4

Lorsque le fournisseur principal échoue (limitation du débit, erreur du serveur, échec d’authentification), Hermes bascule en cours de session vers le modèle de repli sans perdre l’historique de la conversation. Cette bascule ne se produit qu’une seule fois au maximum par session.

L’agent peut-il améliorer ses propres skills au fil du temps ?

Oui — c’est précisément l’aspect « auto-améliorant » de Hermes Agent. L’agent peut créer, mettre à jour et supprimer des skills à l’aide de l’outil skill_manage. Lorsqu’il met au point un workflow non trivial, il enregistre la méthode sous forme de skill afin de la réutiliser ultérieurement.11 L’agent crée des skills après des tâches complexes (plus de 5 appels d’outils), lorsqu’il rencontre des erreurs puis trouve la bonne méthode, lorsque vous corrigez son approche ou lorsqu’il découvre un workflow non trivial.

Existe-t-il une intégration aux IDE ?

Oui — Hermes peut fonctionner comme serveur ACP (Agent Client Protocol) pour VS Code, Zed et JetBrains :6

pip install -e '.[acp]'
hermes acp

Journal des modifications

Date Modification Source
2026-09-08 Guide v1.18 : Hermes v0.21.1 (tag v2026.9.7, 7 septembre) — le correctif cumulatif : la plus grande fenêtre entre deux tags à ce jour (« 5 139 commits hors fusion », « 632 PR fusionnées »), sous la forme de notes de correctif volontairement succinctes qui reportent les notes éditorialisées à la v0.22.0. Nouvelle section Nouveautés au-dessus de la section Pantheon, avec six ensembles vérifiés à partir des sources : la décomposition de septembre et la date limite de compatibilité des plugins fixée au 2026-09-14 (COMPAT_MANIFEST.md : 1 148 noms déplacés vers le chargement différé, un avertissement HermesPluginCompatWarning par nom, le vérificateur hermes plugins compat, la porte de sortie plugins.allow_deprecated_imports ; un encadré sur la fenêtre de compatibilité a été ajouté à la section Système de plugins), des limites de conversation du gateway uniquement explicites (SessionResetPolicy est désormais inerte — mise à jour de la section Gateway de messagerie, liste de migration depuis claw annotée), OAuth par code d’appareil MCP (hermes mcp login --flow device, RFC 8628 ; login et reauth --all ajoutés au bloc de commandes MCP ; propriété des profiles via les sessions OAuth, caches de métadonnées mal formés ignorés, rappels locaux au client de bureau, filtres -t lors du lancement des serveurs MCP), fiabilité de la délégation (unités d’achèvement via delegation.independent_completions avec un group par tâche, un achèvement par appel par défaut ; transfert des processus en arrière-plan avec orphaned_processes et unread_completions nommés dans les résultats ; delegation.fallback_providers ; chaînes d’agents enfants validées par le normaliseur ; résultats partiels conservés malgré les plantages ; les agents enfants n’héritent jamais du niveau de cache de 1 h — tous ces éléments ont été relevés dans le code source de l’outil de délégation au niveau du tag), fournisseurs/modèles (GPT-6 Astra + Astra Pro avec les niveaux fast/flex, réservés à certains comptes sur Codex OAuth avec une variante -900k optionnelle ; claude-fable-5.1 ; gemini-3.7/3.8-flash ; qwen3.8-max-0902 ; Muse Spark 1.3 + le plugin image_gen muse-image ; recherche/extraction Tavily ; environnement d’exécution llama.cpp géré ; fournisseurs sous forme de processus externes ; actualisation du catalogue toutes les 20 minutes via model_catalog.ttl_minutes) et la vague d’évolutions de l’application de bureau (mode commentaire du navigateur intégré transmettant le sélecteur, le balisage et les styles de chaque annotation, avec des lots regroupés par région ; commandes structurées pour les sessions et les automatisations ; création de sessions par glisser-déposer ; importation de sessions à partir de transcriptions externes ; display.resume_last_session ; consentement relatif au profile réel lors de la première ouverture ; catalogue intégré de skills facultatifs ; interface de bureau en russe). Uniquement dans le journal des modifications, vérifié par les commits ou les sources : fiabilité de cron (transfert au redémarrage renforcé par trois commits de correction vérifiés, déduplication des livraisons sérialisée avec conservation terminale, condition de concurrence lors de la création de tâches suspendues éliminée, médias cron de Discord acheminés vers leur destination avec signalement des échecs de téléversement, continuité préservée lors des cycles d’audit silencieux), analyse des commandes shell pour les approbations (échappements scindés de GNU env et opérandes argv0, limites des arguments env et des commentaires shell, les corps de substitution de commande entre guillemets conservent leurs limites de commande, approvals.deny dans les conteneurs isolés), mécanisme de surveillance de la disponibilité au démarrage du gateway (hermes_startup_watchdog.py ; gateway.startup_watchdog avec un délai de 300 s et une sortie forcée 75), résilience de state.db (récupération des éléments perdus et retrouvés avec .recover de sqlite3, routage FTS like_scan, nouveau fichier docs/state-db-recovery.md), performances (search_files exécute ripgrep nativement sur les hôtes POSIX locaux, transcriptions des agents enfants délégués exclues de l’index FTS à trigrammes dans le schéma v30, client httpx OpenAI partagé entre les chemins principaux et auxiliaires), gateway.trust_env, sélecteur /model de Slack Block Kit et livraison des médias depuis une sandbox distante (les identifiants et les liens symboliques qui y mènent ne quittent jamais la sandbox) ; la section Dépannage accueille le contrôle médical du spectre d’une ancienne valeur HERMES_MAX_ITERATIONS. Nouvelle vérification au niveau du tag, de v2026.8.31 à v2026.9.7 : 39 fournisseurs statiques et 39 dossiers de plugins de fournisseurs, avec des entrées identiques à celles de la v0.21.0 — l’affirmation préalable à l’analyse selon laquelle il y aurait « 38 fournisseurs statiques, xai ayant été intégré au plugin » a été réfutée à la source (le tuple xai figure toujours dans la liste statique ; seul le fichier a été déplacé, de hermes_cli/models.py vers hermes_cli/models_catalog_static.py:311) ; chemin de prompt_builder.py remplacé par agent/prompt_builder.py dans le modèle mental et le flux de données CLI ; l’affirmation de la v0.16 concernant l’actualisation horaire du catalogue reste limitée à cette version, la cadence de 20 minutes étant ajoutée à ses côtés. Affirmations permanentes revérifiées et inchangées : remarque sur le nom hermes approvals test, valeur par défaut de --max-turns fixée à 500 (cli.py:400 au niveau du tag ; l’ancienne docstring indiquant 60 n’a pas été reprise), 2 000 lignes pour read_file, limites de délégation de 250/10, compression.tail_mode: lean, Node 26, 17 langues pour CLI. 41424344454647
2026-07-28 Guide v1.12 : Extension de la couverture guidée par la demande de recherche — deux sujets à fort taux de conversion ne disposaient d’aucun titre vers lequel renvoyer. Aucune nouvelle version. GSC indique que hermes swarm et hermes agent swarm affichent un taux de conversion de 4,4 à 6,3 % depuis une position d’environ 8, et hermes smart model routing un taux de 4,9 % depuis la position 6,7, alors qu’aucun de ces termes ne disposait d’une section : swarm n’apparaissait que dans le texte de Kanban multi-agent et dans les lignes du journal des modifications, tandis que « smart model routing » n’apparaissait que dans une note de bas de page. Ajout de Qu’est-ce qu’un swarm Hermes ? sous Kanban multi-agent — cette section définit un swarm comme un ensemble de workers parallèles travaillant sur un même tableau persistant, documente la topologie swarm de la v0.15.0, la décomposition automatique, les modèles configurables par tâche, les tâches planifiées et la gestion des worktrees, puis présente sous forme de tableau la défaillance évitée par chaque mécanisme. Rotation et repli des fournisseurs devient Routage intelligent des modèles : rotation et repli des fournisseurs, avec une introduction qui réunit les groupes d’identifiants, le modèle de repli et le routage auxiliaire au sein d’un même système. Aucun lien interne ne ciblait cette ancre ; ce changement de titre ne rompt donc rien. 53 2 6
2026-08-31 Guide v1.17 : Hermes v0.21.0 « The Pantheon Release » (tag v2026.8.31, 31 août) — la version cumulative éditorialisée est publiée. Nouvelle section Nouveautés au-dessus de la section Herald, organisée selon les domaines fonctionnels propres à la version : Bot Mode inclus et activé par défaut dans l’application de bureau (profiles nommés, avatars déterministes, discussions de groupe avec mentions @), messages privés de bot à bot avec hermes peer (les réponses arrivent dans le Bot Chat canonique de chaque agent), continuité de cron (continuity=true, blocs-notes persistants, saut de LLM en mode surveillance, niveau d’effort fixé par tâche — la section Tâches planifiées accueille les mécanismes des quatre fonctionnalités au niveau du tag), orchestration en direct des sous-agents (delegate_task pour répertorier, guider et arrêter, sorties des agents enfants conformes au schéma JSON, valeurs par défaut portées à 250 itérations et 10 agents enfants simultanés — vérification effectuée dans config_defaults.py, alors que les valeurs 3/50 de la page de documentation sur la délégation sont obsolètes), centre de commande MCP (+ liens d’installation hermes:// — section MCP mise à jour), vague d’améliorations de CLI (/palette + Ctrl+P et /status reposant sur un registre partagé ajoutés aux tableaux des commandes slash, filtrage de /model au fil de la saisie signalé ; le nom hermes approval-check des notes de version s’avère être hermes approvals test au niveau du tag — une telle sous-commande n’existe pas), navigateur intégré piloté par l’agent, vague de fournisseurs/modèles (six nouveaux fournisseurs ; la matrice accueille des lignes Tencent TokenPlan, Nebius Token Factory, Ramp Router et Alibaba Token Plan avec les variables d’environnement citées dans la documentation ; model_overrides ; avertissements sur les niveaux d’utilisation des données pour l’entraînement ; plugins de fournisseurs pip), vague de sécurité (les écritures dans AGENTS.md, les skills et la mémoire exigent toujours une approbation — security.protected_instruction_files: true et le contrôle de tools/file_tools.py ont été vérifiés au niveau du tag ; campagne d’occultation ; prise en charge des approbations sous Windows ; hermes desktop --setup-tcc-identity ; suppression de Blender MCP — la section Renforcement de la sécurité accueille une quatrième vague), maturation du gateway, vague de 8 skills et liste des éléments ANNULÉS (Model Council /council, context engine DCP, serveur gateway exclusivement WS — la répétition estampillée par séquence nº 94219 a bien été livrée ; retour d’Electron à la version 40.10.2 ; grep confirme que le guide n’a jamais documenté les fonctionnalités annulées). Le report des notes dans la sous-section de la version cumulative est RÉSOLU et renvoie désormais vers la section éditorialisée ; les blocs de fenêtre sont conservés comme relevé propre à chaque tag. Nouvelle vérification au niveau du tag, de v2026.8.27 à v2026.8.31 : fournisseurs statiques, de 38 à 39 (+tencent-tokenplan), dossiers de plugins de fournisseurs, de 37 à 39 (+nebius-token-factory, +router, tous deux avec auth_type="api_key"), lignes de fournisseurs dans la documentation, de 41 à 45 ; éléments inchangés et revérifiés : 28 lignes de plateformes dans la documentation / 24 membres de l’énumération Platform (liste identique) / 22 dossiers d’adaptateurs, _BUILTIN_SUBCOMMANDS identique (73, peer présent depuis les fenêtres de la version cumulative, aucune commande version), 7 backends de terminal + registre de plugins (registre identique octet par octet), 14 personnalités et 17 langues (fichiers identiques octet par octet/listes identiques), valeur lean par défaut pour la compression et liste des emplacements auxiliaires, _startup_fast.py/portal_cli.py identiques octet par octet. Dérive corrigée lors de la vérification : sur un TTY, hermes chat -q initialise désormais une session interactive (la nouvelle option --oneshot rétablit le comportement réponse puis sortie) et la valeur par défaut de --max-turns dans le tableau du chat a été corrigée de 90 à 500, conformément à l’aide de l’analyseur au niveau du tag. 35363738394033
2026-08-27 Guide v1.16 : Hermes v0.20.6 (tag v2026.8.27, 27 août) — quatrième récapitulatif. La sous-section récapitulative accueille sa quatrième période, conformément à la description de la version elle-même (environ 1 313 commits dans environ 1 557 fichiers, +177 113 / −21 682 — environ 525 PR fusionnées depuis la v0.20.5) : navigation avec le véritable profile soumise au consentement (profile Chromium par défaut, procédure de fermeture avec approbation sous Windows), Browser de l’application de bureau dans sa propre fenêtre du système d’exploitation, moteur géré de mise à jour à distance SSH et volet de profiles pour parc, extension du catalogue MCP distant (plus de 50 serveurs hébergés par des fournisseurs et vérifiés en production, dont Cloudflare, Grafana Cloud, Better Stack et Railway), chiffrement facultatif des secrets stockés dans le trousseau du système d’exploitation, nouveaux modèles dans le sélecteur (GLM-5.3-Flash, MiniMax M3 gratuit, MiniMax H3 Max pour la vidéo), mise en cache des résultats avec TTL pour web_search/web_extract, tool_search à requêtes multiples avec racinisation, programmes de mise à jour mettant les gateways en pause via le socket de contrôle, installations gérées par image/package refusant les mises à jour sur place non sécurisées, accusés de réception durables des incidents cron, contrôles du déploiement des aperçus de liens Slack et identités de conteneur Docker partagées. Deux affirmations de la version contredisaient des sections existantes ; toutes deux ont été confirmées au niveau du tag et corrigées : la compression lean-tail est activée par défaut (réécriture de la section sur la compression du contexte avec les clés présentes au niveau du tag — tail_mode: lean, threshold_tokens, protect_first_n, paramètres du synthétiseur sous auxiliary.compression.* avec migration automatique vers la version 17 de la configuration ; correction de la note de dépannage qui indiquait l’inverse) et les backends de terminal sont extensibles par plugin (présentation remaniée autour de sept backends intégrés et d’un registre de plugins, à la manière du sélecteur de fournisseurs ; noms intégrés réservés). Les relevés au niveau du tag ont été revérifiés et déplacés de v2026.8.19 vers v2026.8.27 : 38 fournisseurs statiques + 37 dossiers de plugins de fournisseurs, 24 membres de l’énumération Platform / 22 dossiers d’adaptateurs / 28 lignes dans le tableau de la documentation, aucune sous-commande version (73 entrées dans _BUILTIN_SUBCOMMANDS, dont worktree), options de l’analyseur et chaînes d’aide entre guillemets inchangées, toujours 14 entrées dans BUILTIN_PERSONALITIES (de helpful à hype) ; locales/ compte désormais 17 catalogues (en + 16 traductions ; nombre au niveau du tag ajouté). main se trouve AU niveau du tag (ahead_by: 0, état identique). Autre correction liée à une dérive découverte pendant la vérification : l’ancien comportement par défaut du système auxiliaire — auto achemine désormais chaque tâche auxiliaire vers le modèle principal de chat, au lieu de passer par la détection Gemini Flash via OpenRouter → Nous → Codex ; réécriture de la section sur les modèles auxiliaires avec la liste des emplacements au niveau du tag (title_generation, tts_audio_tags, triage_specifier, kanban_decomposer, profile_describer ajoutés avec des descriptions d’une ligne sourcées ; emplacements web_extract et session_search supprimés en amont — aucun des deux n’utilise plus d’LLM — et flush_memories retiré des valeurs par défaut), et réancrage de l’entrée de dépannage propre à Anthropic. La ligne de la version relative aux nouvelles installations utilise l’URL brute du script GitHub ; le guide conserve l’adresse canonique hermes-agent.nousresearch.com/install.sh. Des notes éditorialisées restent promises pour la v0.21.0. 293031323334
2026-08-26 Guide v1.15 : CORRECTION — aucune nouvelle version (tag le plus récent v2026.8.19 / v0.20.5, 21 août) ; les affirmations existantes ont été revérifiées au niveau du tag. Backends de terminal : six → sept, avec l’ajout de vercel_sandbox au tableau et au commentaire de configuration. Plateformes de messagerie : les mentions isolées de « 22 » ont été alignées sur les 28 entrées du tableau comparatif de la documentation au niveau du tag, en précisant la méthode de comptage (24 membres de l’énumération Platform intégrée, 22 dossiers d’adaptateurs fournis) et en ajoutant ntfy et Buzz à la liste des gateways. Fournisseurs : « environ 20 / environ 22 de premier ordre » a été remplacé par le décompte sourcé (38 entrées statiques dans CANONICAL_PROVIDERS, auxquelles s’ajoute l’extension automatique issue de 37 plugins de fournisseurs fournis ; 41 lignes consacrées aux services cloud/abonnements sur la page de documentation), la mention « liste complète » a été supprimée, la ligne Qwen OAuth corrigée et 17 lignes ajoutées à la matrice (OpenCode Free, accès direct à OpenAI API, Vertex AI, Azure Foundry, Bedrock, NVIDIA NIM, Ollama Cloud, StepFun, MiniMax OAuth, Meta AI, NovitaAI, Arcee AI, GMI Cloud, Actual Computer, Tencent TokenHub, CommandCode, Alibaba Coding Plan). hermes versionhermes --version (ce n’est pas une sous-commande au niveau du tag). hermes honcho est désormais signalé comme dépendant d’un plugin. « --plan pour le parc » → hermes update --plan. La section des options globales accueille --in, --tui, --cli, --dev, --ignore-rules, --ignore-user-config ; celle des commandes de premier niveau gagne 34 lignes issues de _BUILTIN_SUBCOMMANDS, dont hermes worktree list\|prune avec ses flags ; ajout de la commande slash /worktree ; documentation de hermes setup --portal et de hermes portal login\|info\|open\|tools. Au moment de la vérification, main comptait 1 104 commits de plus que le tag (tous intégrés depuis à v2026.8.27) ; des notes éditorialisées sont promises pour la v0.21.0. 23242526272829
2026-08-24 Guide v1.14 : v0.20.5 (tag v2026.8.19, publiée le 21 août). La sous-section récapitulative accueille sa troisième période (environ 746 commits / environ 323 PR depuis la v0.20.4) : le niveau web sans clé (rotation gratuite entre 5 fournisseurs avec basculement en anneau — recherche web disponible sur les nouvelles installations sans aucune clé), améliorations de CLI (sélecteur /model avec recherche approximative, palette de commandes Ctrl+P, /status enrichi), fils de discussion dans les salons de groupe du Bot Mode + résumés repliables + glisser-déposer de PDF/fichiers, hermes worktree list/prune, reçus de hermes update et vérification de --plan pour les parcs, mémoire persistante de cron avec niveau d’effort de raisonnement propre à chaque tâche, protections contre les blocages liées à la discipline d’exécution issues des conclusions de l’évaluation Composio, fournisseur opencode-free sans authentification et performances de l’application de bureau (hydratation privilégiant le premier rendu, React Compiler dans les deux moteurs de rendu). La v0.21.0 accompagnée de notes éditorialisées complètes est toujours attendue — résumés tirés de la description de la période fournie avec la version. L’historique de l’en-tête a été actualisé. 23
2026-08-20 Guide v1.13 : v0.20.3 (tag v2026.8.16.2, publiée le 17 août) et v0.20.4 (tag v2026.8.18, 18 août). Nouvelle sous-section sous la Herald Release : la série de récapitulatifs apporte désormais des fonctionnalités et ne se limite plus à la stabilisation. v0.20.3 (environ 250 commits / environ 125 PR) : migration SDK vers MCP 2.x avec prise en charge du protocole sans état du 28 juillet 2026, plugin Bot Mode fourni (hermes-bots) avec le protocole central de coéquipiers, plugin de fournisseur CommandCode, contrats d’exécution pour l’utilisation de l’ordinateur de Cua Driver 0.20, renforcement de la gestion du runtime Python, autoréparation du planificateur cron, corrections des pertes de données lors du transfert de sessions, portages depuis l’écosystème (/worktree, préservation des modifications manuelles avec /rollback, analyse de sécurité lors de l’installation des plugins). v0.20.4 (environ 146 commits / environ 74 PR) : surface en verre/translucide de l’application de bureau avec sélecteur de givre, barre latérale à onglets SESSIONS|BOTS permettant de masquer ou réafficher chaque bot, analyse consultative de niveau 1 par NVIDIA SkillEvaluator lors de l’installation de skills (licence + sécurité), renforcement de l’envoi de médias par cron, transparence de hermes update concernant les branches mises en attente. Les deux versions annoncent des notes éditorialisées complètes avec la v0.21.0 — résumés tirés des descriptions de leurs périodes respectives. La phrase d’en-tête et l’historique des tags ont été actualisés. 48
2026-08-16 Guide v1.12 : v0.20.0 « The Herald Release » (3 août, tag v2026.8.3), ainsi que les tags de stabilisation v0.20.1 (13 août) et v0.20.2 (16 août). Trois corrections réparent des instructions qui ne fonctionnent plus : Node 26 est requis (le programme d’installation impose NODE_VERSION="26" et refuse les runtimes antérieurs — la mention de Node v22 sur le site de documentation est obsolète, le programme d’installation et les notes de version font donc foi), pip et Homebrew ont été abandonnés, et non rendus obsolètes (« le programme d’installation shell / Docker / Nix sont les canaux pris en charge »), et la limite d’itérations par défaut est passée de 90 à 500, ce qui invalidait tous les chiffres du tableau sur la pression exercée par le budget. La commande d’installation a été corrigée pour utiliser l’adresse canonique https://hermes-agent.nousresearch.com/install.sh. Fonctionnalité supprimée : la source de skills claude-marketplace a disparu, remplacée dans la liste des sources par browse-sh ; les taps GitHub par défaut sont désormais openai, anthropics, huggingface, NVIDIA et gstack. Le nombre de plateformes de la gateway de messagerie a été corrigé de 22 à 28 en recensant directement les entrées du tableau comparatif de la documentation (celle-ci ne publie aucun total officiel). Windows (natif) est de niveau 1, et non en bêta précoce ; macOS est réservé à Apple Silicon. Une nouvelle section présente la version elle-même : conversation vocale avec interruption, A2A v1.0, webhooks signés pour le cycle de vie sortant, skill grounded-citations, vague CLI comprenant !//init//diff//context//focus et hermes import-agent, source de secrets command-helper, démarrage à froid de hermes -w ramené d’environ 14 s à environ 1,8 s, ainsi que les artefacts de l’application de bureau et un SDK de plugins. Éléments vérifiés comme inchangés : les trois méthodes d’authentification, l’organisation de ~/.hermes/, hermes update et la liste documentée des tools. 49
2026-07-21 Guide v1.11 : v0.19.0 « The Quicksilver Release » (20 juillet 2026, tag v2026.7.20). Ajout de la section « Nouveautés de la v0.19.0 » : réduction d’environ 80 % du TTFT au premier tour (soumission à froid→répartition d’environ 4,3 s → environ 0,9 s dans CLI/gateway/TUI/desktop/cron), raisonnement diffusé en direct par défaut (display.show_reasoning activé), vague d’accélération d’environ 20 PR pour desktop (rendu Markdown en streaming 14× plus rapide) + Markdown incrémentiel dans la TUI ; installations via pip/Homebrew obsolètes (simple avertissement « ancien mode non pris en charge », suppression prévue de la publication sur PyPI/Homebrew) — correction de la section Installation et du TL;DR pour adopter l’installateur en une ligne ; SecretSource enfichable avec les fournisseurs Bitwarden + 1Password (références op://, coffres multiples, priorité déterministe, provenance par variable) ; approbations intelligentes par défaut (examinateur LLM indépendant pour chaque commande signalée) + règles de refus définies par l’utilisateur qui restent applicables en mode YOLO + /deny <reason> + réintégration de l’élévation d’approbation pre_tool_call des plugins ; facturation dans le terminal avec /subscription + /topup + onglet de facturation sur desktop (retrait de l’affirmation « aucune commande d’abonnement distincte ») ; transcriptions en direct des subagents + délégation durable en arrière-plan + registre des obligations de livraison dans state.db ; max_async_children obsolète au profit de limites de concurrence unifiées pour la délégation ; routage des messages du gateway selon les profiles (un seul jeton de bot multiplexé → profiles isolés, GATEWAY_MULTIPLEX_PROFILES, index de routage dans state.db, miroir hérité facultatif sessions.json) ; fournisseurs/modèles : Fireworks AI (2e position du sélecteur), DeepInfra, Upstage Solar, GPT-5.6 (Sol/Terra/Luna + Pro) de bout en bout, grok-4.5 en disponibilité générale, kimi-k3 (retrait de kimi-k2.x), Claude Sonnet 5 entièrement intégré, enabled: false par fournisseur + excluded_providers, niveaux d’effort de raisonnement max/ultra avec substitutions par modèle/emplacement MoA et /reasoning limité à la session ; CLI/MCP : hermes sessions export (Markdown/Quarto/HTML/invite uniquement/trace HF, --redact), /model --once, appels de slash-skills empilés, --safe-mode, hermes config get/unset, hermes serve réellement sans interface, nommage MCP mcp__server__tool. Consigne également les tags de correctifs omis v0.18.1 (tag v2026.7.7) et v0.18.2 (tag v2026.7.7.2), 7–8 juillet 2026 — regroupements de correctifs d’infrastructure ; le correctif substantiel de la v0.18.2 déverrouille WhatsApp Baileys de la version 7.0.0-rc13 pour fiabiliser les builds Docker. 50 51
2026-07-16 Ajout d’une première entrée de dépannage pour l’erreur exacte affichée au démarrage « No inference provider configured. Run ‘hermes model’ to choose a provider and model » — ajout guidé par la demande de recherche ; renvoie vers le sélecteur interactif, hermes doctor et les trois méthodes d’authentification. Aucun changement apporté au produit. 2 7
2026-07-01 Guide v1.10 : v0.18.0 « The Judgment Release » (1er juillet 2026, tag v2026.7.1). Ajout de la section « Nouveautés de la v0.18.0 » : résolution de l’ensemble des éléments P0/P1 en attente (environ 692 éléments) ; Mixture-of-Agents pris en charge nativement avec sortie d’ensemble libellée par modèle et diffusion en direct ; contrats d’achèvement/goal vérifie son propre travail en exécutant les contrôles du projet ; /learn (décrivez un workflow → obtenez un skill réutilisable, conforme à CONTRIBUTING.md) ; chronologie de la mémoire et des skills avec /journey + graphe de mémoire sur desktop ; déploiement en éventail de subagents en arrière-plan (tâches déléguées simultanées) ; Desktop Projects (projet/dépôt/couloir) ; gateway à mise à l’échelle jusqu’à zéro avec coordination du drainage ; Google Vertex AI (Gemini via des comptes de service GCP, actualisation automatique de OAuth2) ; éditeur /prompt via \$EDITOR. Source : versions de hermes-agent. 22
2026-06-21 Guide v1.9 : v0.17.0 « The Reach Release » (19 juin 2026, tag v2026.6.19). Ajout de la section « Nouveautés de la v0.17.0 ». Messagerie : iMessage sans relais via Photon Spectrum (hermes photon login, OAuth par code d’appareil), adaptateur officiel API WhatsApp Business Cloud (sans passerelle), groupes + pièces jointes SimpleX, plugin de plateforme Raft. Modèles : z-ai/glm-5.2 (1M), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra, grok-composer-2.5-fast (OAuth xAI, 200k) ; modèle xAI par défaut → grok-build-0.1 ; les modèles adaptatifs Anthropic abandonnent le champ reasoning. Desktop/tableau de bord : subagents en arrière-plan avec fenêtres de suivi en direct (delegate_task(background=true)), créateur de profile complet, Skills Hub remanié, Automation Blueprints, connexion sécurisée avec erreur 401, thèmes du VS Code Marketplace, interface en japonais + chinois traditionnel. Skills/outils : modification d’image à image avec image_generate, traitement atomique par lots operations de memory, skill simplify-code, booléen write_approval (remplace write_mode). Architecture : gestionnaire de sollicitation MCP, CronScheduler enfichable + Chronos, périmètre Managed (/etc/hermes), relais Gateway-Gateway. Commandes : /version, /billing, hermes curator run --consolidate (sur inscription). Sécurité : contournement de la liste de refus des échappements shell corrigé, adaptateurs d’approbation/gateway à fermeture sécurisée, environnement cron assaini, secrets masqués dans les vidages de débogage, filtrage des exfiltrations via stdio MCP, mises à niveau d’urllib3 + PyJWT pour corriger des CVE. 21
2026-06-08 Guide v1.8 : v0.16.0 « The Surface Release » (5 juin 2026, tag v2026.6.5). Le guide a été renommé pour la v0.16 et la section « Nouveautés de la v0.16.0 » a été ajoutée. À retenir : Hermes ne se limite plus au terminal. Application native Hermes Desktop (Electron, macOS/Linux/Windows) avec installation en un clic, mise à jour automatique intégrée, chat en streaming, glisser-déposer + collage d’images depuis le presse-papiers, palette Cmd+K, archivage/recherche des sessions, sélecteur de modèle dans la barre d’état, connexion à un gateway distant via WebSocket sécurisé (OAuth ou identifiant/mot de passe, hôtes par profile, liens @session entre profiles) et traduction complète en chinois simplifié via une i18n typée. Panneau d’administration dans le navigateur (tableau de bord web → administration complète) : activation/désactivation du catalogue MCP, gestion des identifiants, création de webhooks/hooks, configuration de la mémoire, commandes du gateway, page Système avec vérification avant mise à jour + Debug Share, nouvelle page Canaux et authentification enfichable (identifiant/mot de passe, OIDC auto-hébergé, hermes dashboard register). Nouvelles commandes : /undo [N] (CLI/TUI/messagerie), interface par défaut configurable (cli/tui, --cli), /model unifié dans la TUI + superposition Sessions, hermes portal, hermes prompt-size, hermes sessions optimize. Nouveaux modèles : deepseek-v4-flash, MiniMax-M3 (contexte de 1M), qwen3.7-plus, gemini-3.5-flash ; OAuth xAI Grok pris en charge nativement dans le lanceur desktop ; sélecteur de modèle avec recherche approximative ; actualisation horaire du catalogue. Skills : ensemble par défaut allégé (Spotify → plugin natif, Linear → hermes mcp install linear, suppression des skills obsolètes), filtre de pertinence environments: (kanban/docker/s6), tap approuvé NVIDIA/skills par défaut, divulgation progressive (ciblée) des outils MCP/plugins. Sécurité : CVE-2026-48710 (Starlette BadHost) verrouillée sur une version ≥1.0.1 ; contrôles SSRF sortis de la boucle d’événements ; jeton porteur Bedrock retiré de l’environnement des sous-processus ; lecture de bws_cache.json protégée ; docker restart/stop/kill ajoutés aux motifs dangereux ; assainissement des caractères Unicode invisibles. Résolution de 2 P0 + 62 P1 (dont 16 liés à la sécurité). 20
2026-05-31 Guide v1.7.1 : v0.15.1 (29 mai 2026, 01:12 UTC) — correctif Velocity. Correctif publié le jour même après Velocity ; ligne de tag verrouillée sur v2026.5.29. Corrige la boucle de rechargement avec erreur 401 du tableau de bord qui touchait les déploiements en mode loopback. Docker ne traite plus --insecure comme implicite — définissez explicitement HERMES_DASHBOARD_INSECURE=1 pour réactiver ce comportement. Les commandes MCP brutes (npx, npm, node) sont de nouveau résolues correctement dans les conteneurs Docker. Les pastilles de source et la barre latérale des catégories de la page Skills s’affichent correctement. Les workers Kanban répondent proprement à SIGTERM sans laisser de processus orphelins. Le catalogue Skills.sh passe de 858 à 19 932 entrées grâce à la découverte par sitemap. 28 commits, 21 PR fusionnées, 9 contributeurs. v0.15.2 (29 mai 2026, 13:37 UTC) — correctif de packaging Velocity. Corrige les distributions wheel et sdist afin d’y inclure les manifestes plugin.yaml, ce qui permet aux installations depuis PyPI de fonctionner sans chargement latéral de l’arborescence source. Correctif limité au packaging, 4 contributeurs. 52
2026-05-28 Guide v1.7 : ajout de v0.15.0 (28 mai 2026) — La version Velocity (tag v2026.5.28). À la une : une refactorisation massive et de nouvelles primitives d’orchestration. Refactorisation du code : réduction de 76 % de run_agent.py (16 083 → 3 821 lignes), réparti entre 14 modules cohérents. Kanban multi-agent v2 : décomposition automatique des objectifs de haut niveau en sous-tâches, topologie en essaim pour coordonner des workers en parallèle, remplacement du modèle par tâche, tâches planifiées et gestion des worktrees. Performances : une seconde supplémentaire gagnée au démarrage à froid ; réduction de 47 % des appels de fonction par conversation ; refonte de session_search, désormais 4 500× plus rapide, avec suppression de la dépendance LLM (et du coût API associé). Sécurité : la défense contre les Promptwares protège de l’injection de prompt de classe Brainworm à trois points de contrôle de sécurité ; l’intégration de Bitwarden Secrets Manager remplace plusieurs clés API propres à chaque fournisseur par un seul jeton d’amorçage. Lots de skills : chargement simultané de plusieurs skills avec une seule commande slash. Orchestrateur de sessions TUI : gestion de plusieurs sessions dans une seule fenêtre de terminal. Nouveaux fournisseurs : prise en charge de Krea 2 (Medium/Large) et du plugin FAL pour la génération d’images ; l’intégration de xAI s’enrichit d’un plugin de recherche web, de OAuth en amont, de la détection des modèles retirés et de pauses TTS naturelles. Statistiques : 1 302 commits, 747 PR fusionnées et 321 contributeurs de la communauté. D’après les notes de version GitHub, un correctif publié le jour même ou le lendemain résout la boucle de rechargement 401 du dashboard, la variable d’environnement explicite --insecure de Docker, la résolution des commandes seules de MCP dans Docker (npx, npm, node), la restauration de la page Skills, la gestion de SIGTERM par les workers Kanban et l’intégralité du catalogue Skills de 19 932 entrées via le sitemap. 53
2026-05-21 Guide v1.6 : ajout de v0.14.0 (16 mai 2026) — La version Foundation. À la une : une base d’installation et d’exécution plus légère, ainsi qu’un éventail élargi de fournisseurs, de gateway, de médias et de mécanismes de vérification. Ajout de SuperGrok OAuth avec un contexte de 1 M pour grok-4.3, de hermes proxy, compatible avec OpenAI, pour les fournisseurs OAuth, de x_search en tant que fonctionnalité de premier ordre, de pip install hermes-agent, de l’installation différée des dépendances, d’un lancement accéléré d’environ 19 s, d’appels CDP du navigateur 180× plus rapides, de LINE et SimpleX Chat pour un total de 22 plateformes de messagerie, de la prise en charge de bout en bout de Microsoft Teams, de /handoff, de /subgoal, de boutons de clarification natifs sur Telegram/Discord, du remplissage rétroactif de l’historique Discord, de vision_analyze sur les pixels bruts, d’un pied de page de vérification des modifications de fichiers à chaque tour, de diagnostics sémantiques LSP à chaque écriture, de video_generate unifié, de computer_use via cua-driver pour les fournisseurs autres que Anthropic, d’URL OSC8 cliquables, de la prise en charge de Zed ACP Registry, du routeur OpenRouter Pareto Code, de NovitaAI, de l’environnement d’exécution Codex app-server, de la source de confiance huggingface/skills, de 9 skills facultatifs, de ctx.llm / tool_override pour les plugins, de la recherche web Brave/DDGS, du renommage de Qwen Cloud, d’une version bêta native pour Windows et de la résolution de 12 problèmes P0 et 50 problèmes P1. 19
2026-05-07 Guide v1.5 : ajout de v0.13.0 (7 mai 2026) — La version Tenacity. À la une : un tableau Kanban multi-agent robuste (signal périodique, récupération, détection des processus zombies, garde-fou contre les hallucinations, max_retries par tâche, tableaux multiprojets) qui fait des essaims une primitive de premier ordre plutôt qu’un modèle de délégation. La commande /goal fixe l’agent sur un objectif d’un tour à l’autre (modèle de boucle Ralph sous forme de commande slash). Nouvel outil video_analyze, conçu d’abord pour Gemini avec une prise en charge extensible des modèles compatibles. Fournisseur TTS xAI Custom Voices avec clonage vocal. i18n en 7 langues (zh-Hans, ja, de, es, fr, uk, tr) pour CLI et les messages du gateway ; documentation uniquement en zh-Hans. Google Chat comme 20e plateforme de messagerie via le modèle d’adaptateur enfichable ; IRC et Microsoft Teams ont migré vers le même modèle. ProviderProfile ABC + plugins/model-providers/ pour ajouter des fournisseurs tiers enfichables sans modifier le cœur. Reprise automatique des sessions après le redémarrage du gateway, /update et le rechargement des fichiers sources. Réécriture de checkpoints v2 avec un magasin unique, un véritable élagage et des garde-fous pour le disque. Résolution de huit problèmes de sécurité P0 : masquage des secrets activé par défaut, contournement des DM Discord entre guildes (CVSS 8.1), refus des inconnus et mise en sourdine des conversations avec soi-même sur WhatsApp, TOCTOU de MCP OAuth, TOCTOU du fichier auth.json de CLI, protection SSRF minimale du navigateur, analyse des injections de prompt dans cron, masquage dans hermes debug share. Linting après écriture pour Python/JSON/YAML/TOML, mode no_agent de cron réservé aux scripts, listes d’autorisation par plateforme sur Slack/Telegram/Mattermost/Matrix/DingTalk, améliorations de MCP (transport SSE, transfert de OAuth, balises MEDIA pour les images). Statistiques depuis v0.12.0 : 864 commits, 588 PR fusionnées, 829 fichiers modifiés, 295 contributeurs de la communauté et 282 problèmes résolus (13 P0, 36 P1). 18
2026-05-06 Guide v1.4 : ajout de v0.12.0 (30 avril 2026) — La version Curator. À la une : un Curator autonome en arrière-plan, exécuté par le minuteur cron du gateway (cycle de 7 jours par défaut), qui évalue la bibliothèque de skills selon une grille, élague les skills obsolètes, regroupe les skills associés et rédige un rapport à chaque exécution — Hermes assure sa propre maintenance entre les sessions actives. La boucle d’auto-amélioration bénéficie désormais d’une évaluation fondée sur une grille, d’un biais en faveur des mises à jour actives, d’un héritage correct de l’environnement d’exécution et de toolsets ciblés, limités à la mémoire et aux skills. Quatre nouveaux fournisseurs d’inférence : GMI Cloud, Azure AI Foundry, MiniMax OAuth et Tencent Tokenhub. LM Studio devient un fournisseur de premier ordre. Les manifestes distants des catalogues de modèles se mettent désormais à jour automatiquement, sans nouvelle version. Deux nouvelles plateformes de messagerie : Microsoft Teams (19e, via une architecture de gateway enfichable) et Tencent Yuanbao (18e, avec prise en charge native du texte et des médias). Spotify natif via PKCE OAuth avec un skill inclus ; plugin Google Meet pour les appels et la transcription ; fournisseur Piper local TTS. ComfyUI v5 + TouchDesigner-MCP ne sont plus facultatifs et sont désormais inclus par défaut. Nouveaux skills : Humanizer, claude-design, design-md, airtable. Ajouts à CLI : mode ponctuel hermes -z, vérification préalable hermes update --check, commande slash /reload-skills, styles d’indicateur d’activité enfichables. Réduction d’environ 57 % du démarrage à froid visible de la TUI grâce à l’initialisation différée de l’agent et aux imports différés. Sécurité : masquage des secrets désactivé par défaut afin d’éviter la corruption des charges utiles ; liste de blocage stricte pour les commandes irrécupérables. Statistiques : 1 096 commits, 550 PR fusionnées et 213 contributeurs de la communauté. 17
2026-04-25 Guide v1.3 : ajout de v0.11.0 (23 avril 2026) — La version Interface. Réécriture complète de la TUI interactive avec React/Ink, dotée d’un backend RPC Python JSON (tui_gateway) ; zone de saisie fixe, streaming en direct avec prise en charge du presse-papiers OSC-52, touches stables dans les sélecteurs, barre d’état indiquant un chronomètre par tour et la branche git, confirmation pour /clear, préréglage de thème clair, superposition affichant la création des sous-agents. Architecture de transport enfichable — conversion de format et transport HTTP extraits dans agent/transports/ pour simplifier l’intégration des fournisseurs. AWS Bedrock natif via Converse API. Cinq nouvelles voies d’inférence : NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth et Vercel ai-gateway. GPT-5.5 via Codex OAuth — le nouveau modèle phare d’OpenAI est désormais accessible via ChatGPT Codex OAuth sans clé API distincte. QQBot (17e plateforme de messagerie) avec configuration par scan de QR code et streaming. Extension de la surface des plugins : commandes slash, répartition des outils, blocage de l’exécution, transformation des résultats. /steer <prompt> — réorientation de l’agent en cours d’exécution par l’injection d’une note qu’il voit après son prochain appel d’outil, sans interrompre le tour ni invalider le cache du prompt. Les hooks shell relient des scripts aux hooks du cycle de vie sans plugins Python. Le mode de livraison directe par webhook transmet les charges utiles directement à une conversation de la plateforme, en contournant l’agent pour la diffusion. Délégation plus intelligente avec des rôles d’orchestrateur, une profondeur de création configurable et la coordination des fichiers. Le dashboard gagne un système de plugins, le changement de thème en direct, l’i18n et une interface adaptée aux appareils mobiles. Statistiques depuis v0.9.0 : 1 556 commits, 761 PR fusionnées, 1 314 fichiers modifiés, 224 174 insertions et 29 contributeurs de la communauté. 54
2026-04-16 Guide v1.2 : ajout de v0.10.0 — Nous Tool Gateway. Les abonnés payants à Nous Portal accèdent désormais à des outils gérés (recherche web Firecrawl, génération d’images FAL / FLUX 2 Pro, OpenAI TTS, automatisation du navigateur avec Browser Use) sans clés API supplémentaires. Activation séparée pour chaque outil grâce au nouveau champ de configuration use_gateway. Lors de l’exécution, le gateway est privilégié par rapport aux clés API directes lorsque les deux sont configurés. Suppression de la variable d’environnement HERMES_ENABLE_NOUS_MANAGED_TOOLS. Hermes Agent CLI reste sous licence MIT et entièrement gratuit. 55
2026-04-13 Guide v1.1 : ajout des fonctionnalités de v0.8.0 et v0.9.0. Dashboard web local, mode /fast, plateformes iMessage et WeChat (16 au total), surveillance des processus en arrière-plan (watch_patterns), context engine enfichable, hermes backup/hermes import, Termux/Android, fournisseurs xAI, MiMo, Google AI Studio et Qwen, commande /debug, renforcement complet de la sécurité. 15 16
2026-04-10 Guide v1.0 : version initiale consacrée à Hermes Agent v0.7.0. Authentification des fournisseurs, configuration, CLI, commandes slash, outils, skills, mémoire, gateway, cron, MCP, compression, architecture, migration depuis OpenClaw, dépannage, FAQ.

Références


  1. Nous Research, README du projet « Hermes Agent » sur GitHub. Source principale pour la description du produit (agent auto-améliorant, prise en charge de plusieurs fournisseurs, gateway de messagerie, backends de terminal, évolution des skills, planificateur cron, délégation) et la commande en une ligne « Installation rapide »

  2. Nous Research, « Fournisseurs d’IA » dans la documentation de Hermes Agent. Source principale pour la liste complète des fournisseurs, les méthodes d’authentification propres à chacun (Nous Portal OAuth, code d’appareil Codex, types de jetons Copilot GitHub, trois méthodes d’authentification Anthropic, fournisseurs d’IA chinois, routage Hugging Face, endpoints personnalisés), les trois méthodes d’authentification (clé API dans .env, OAuth via hermes model, endpoint personnalisé dans config.yaml), la syntaxe de la commande slash /model (notamment custom:name:model), les modèles de configuration Ollama/vLLM/SGLang/llama.cpp/LM Studio, les instructions réseau pour WSL2, la chaîne de détection de la longueur du contexte, la configuration du modèle de secours, le routage intelligent des modèles et les fournisseurs personnalisés nommés. Tous les noms de variables d’environnement, types de jetons, remplacements d’URL de base et identifiants de modèles propres aux fournisseurs mentionnés dans cet article proviennent de cette page. 

  3. Nous Research, « Architecture » dans le guide de développement de Hermes Agent. Source principale pour le schéma d’ensemble du système, la structure des dossiers, le flux de données dans les parcours de session CLI et de messages du gateway, les trois modes API (chat_completions, codex_responses, anthropic_messages), la résolution des fournisseurs via runtime_provider.py, la persistance des sessions via SQLite + FTS5, la liste des plateformes du gateway de messagerie, les sources de découverte du système de plugins, l’isolation des profiles et les six principes de conception. 

  4. Nous Research, « Configuration » dans le guide utilisateur de Hermes Agent. Source principale pour la structure du dossier de configuration, la règle entre config.yaml et .envconfig.yaml prévaut pour les paramètres non secrets »), l’ordre de priorité de la configuration (arguments CLI → env → config.yaml → .env → valeurs par défaut), les paramètres de compression du contexte (bloc compression.* avec threshold, threshold_tokens, target_ratio, tail_mode, protect_last_n, protect_first_n ; depuis la migration vers la version 17 de la configuration, le modèle, le fournisseur et l’endpoint du module de synthèse se trouvent sous auxiliary.compression.*), les seuils de pression budgétaire (prudence à 70 %, avertissement à 90 %), les délais d’expiration du streaming avec ajustement automatique pour les fournisseurs locaux, ainsi que le bloc complet de configuration des modèles auxiliaires (auxiliary: avec les emplacements vision, web_extract, approval, compression, session_search, skills_hub, mcp, flush_memories). La restriction du fournisseur "main" aux emplacements auxiliaires, de compression et de secours provient également de cette page. 

  5. Nous Research, « Migrer depuis OpenClaw » dans les guides de Hermes Agent. Source du processus de migration d’OpenClaw vers Hermes. 

  6. Nous Research, « Référence des commandes CLI » dans la documentation de référence de Hermes Agent. Source principale pour toutes les commandes CLI de premier niveau documentées dans cet article, notamment hermes chat, hermes model, hermes gateway, hermes setup, hermes auth, hermes status, hermes cron, hermes webhook, hermes doctor, hermes dump, hermes logs, hermes config, hermes pairing, hermes skills, hermes honcho, hermes memory, hermes acp, hermes mcp, hermes plugins, hermes tools, hermes sessions, hermes insights, hermes claw, hermes profile, hermes completion, hermes update et hermes uninstall. Tous les flags de sous-commandes, descriptions d’options, comportements des pools d’identifiants, syntaxes de filtrage des journaux, flags de migration depuis OpenClaw, commandes de gestion des profiles et commandes d’installation des services mentionnés dans cet article proviennent de cette page. 

  7. Nous Research, « Installation » dans le guide de prise en main de Hermes Agent. Source principale pour la commande d’installation en une ligne, le fonctionnement du programme d’installation (prérequis, plateformes prises en charge, détection automatique de Termux, exigences Windows/WSL2), le tableau des composants facultatifs, les étapes d’installation manuelle et les commandes de vérification. 

  8. Nous Research, « Référence des commandes CLI » — consultez plus précisément la section hermes dump, qui décrit le format de sortie de la commande (en-tête, environnement, identité, modèle, terminal, clés API, fonctionnalités, services, charge de travail, remplacements de configuration) et son utilisation prévue pour partager des diagnostics. 

  9. Nous Research, « Référence des commandes slash » dans la documentation de référence de Hermes Agent. Source principale pour toutes les commandes slash répertoriées dans cet article, l’architecture COMMAND_REGISTRY, la séparation entre CLI et la messagerie, les commandes slash dynamiques des skills, les commandes rapides dans config.yaml, le comportement de correspondance des préfixes et les commandes réservées à la messagerie (/status, /sethome, /approve, /deny, /update, /commands). 

  10. Nous Research, « Outils et toolsets » dans le guide utilisateur de Hermes Agent. Source principale pour la présentation des catégories d’outils, les commandes d’utilisation des toolsets, les sept backends de terminal (local, docker, ssh, singularity, modal, daytona, vercel_sandbox), la configuration des conteneurs (cpu, mémoire, disque, persistance), le renforcement de la sécurité des conteneurs, la gestion API des processus en arrière-plan et la prise en charge de sudo. 

  11. Nous Research, « Système de skills » dans le guide utilisateur de Hermes Agent. Source principale pour la divulgation progressive, le format SKILL.md, les skills propres aux plateformes, l’activation conditionnelle (fallback_for_toolsets, requires_toolsets, fallback_for_tools, requires_tools), les skills gérés par l’agent via skill_manage, les commandes du hub de skills et la liste des sources (official, skills-sh, well-known, github, clawhub, claude-marketplace, lobehub), l’analyse de sécurité, les niveaux de confiance et les dossiers externes de skills. 

  12. Nous Research, « Mémoire persistante » dans le guide utilisateur de Hermes Agent. Source principale pour les limites de caractères de MEMORY.md / USER.md, le modèle d’instantané figé, les actions de l’outil de mémoire (add, replace, remove), les éléments à enregistrer ou à ignorer, la comparaison entre la mémoire et la recherche dans les sessions, ainsi que la liste des huit fournisseurs de mémoire externes (Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover, Supermemory). 

  13. Nous Research, « Personnalité et SOUL.md » dans le guide utilisateur de Hermes Agent. Source principale pour le comportement de SOUL.md (stocké dans HERMES_HOME, jamais écrasé, emplacement no 1 dans le prompt système, analysé pour détecter les risques de sécurité avant son inclusion), la distinction entre SOUL.md et AGENTS.md, la liste des personnalités intégrées (14 personnalités, de helpful à hype), les personnalités personnalisées dans config.yaml, le modèle de superposition /personality et l’ordre complet d’assemblage du prompt. 

  14. Nous Research, « Utiliser MCP avec Hermes » et Référence de configuration MCP dans les guides et la documentation de référence de Hermes Agent. Source pour le format de configuration mcp_servers: dans config.yaml, avec les champs command, args et env

  15. Notes de version de Hermes Agent v0.8.0. 8 avril 2026. Notifications automatiques des processus en arrière-plan, MiMo v2 Pro gratuit sur Nous Portal, changement de modèle en direct avec /model sur toutes les plateformes, fournisseur natif Google AI Studio, Qwen OAuth, délais d’expiration fondés sur l’inactivité, boutons d’approbation sur Slack/Telegram, MCP OAuth 2.1 PKCE, journalisation centralisée, extension du système de plugins. 

  16. Notes de version de Hermes Agent v0.9.0. 13 avril 2026. Tableau de bord web local, mode rapide (/fast), iMessage via BlueBubbles, WeChat + WeCom, Termux/Android, surveillance des processus en arrière-plan (watch_patterns), fournisseurs natifs xAI + Xiaomi MiMo, context engine modulaire, prise en charge unifiée des proxys, renforcement de la sécurité (correctifs contre la traversée de chemins, l’injection de commandes shell, les failles SSRF et RCE), hermes backup/hermes import, /debug + hermes debug share, 16 plateformes prises en charge. 487 commits, 269 PR fusionnées, 24 contributeurs. 

  17. Notes de version de Hermes Agent v0.12.0. 30 avril 2026. « La version Curator ». Curator autonome en arrière-plan, chargé d’évaluer, d’élaguer et de consolider la bibliothèque de skills selon un cycle de 7 jours par défaut, exécuté par le ticker cron du gateway. Boucle d’auto-amélioration mise à niveau : évaluation fondée sur une grille de critères, priorité aux mises à jour actives, héritage correct de l’environnement d’exécution et toolsets restreints à la mémoire et aux skills. Quatre nouveaux fournisseurs d’inférence : GMI Cloud, Azure AI Foundry, MiniMax OAuth, Tencent Tokenhub. LM Studio devient une intégration de premier plan. Les manifestes distants des catalogues de modèles se mettent automatiquement à jour sans nouvelle version. Deux nouvelles plateformes de messagerie : Microsoft Teams (19e, via l’architecture de gateway extensible) et Tencent Yuanbao (18e, texte et médias natifs). Spotify natif via PKCE OAuth avec skill intégré ; plugin Google Meet pour les appels et la transcription ; fournisseur TTS local Piper. ComfyUI v5 + TouchDesigner-MCP inclus par défaut. Nouveaux skills : Humanizer, claude-design, design-md, airtable. CLI : mode ponctuel hermes -z, vérification préalable hermes update --check, commande slash /reload-skills, styles extensibles d’indicateur d’activité. Démarrage à froid de la TUI accéléré d’environ 57 % grâce à l’initialisation différée. Sécurité : masquage des secrets désactivé par défaut ; liste de blocage stricte pour les commandes irréversibles. Statistiques depuis la v0.11.0 : 1 096 commits, 550 PR fusionnées et 213 contributeurs de la communauté. Voir aussi : tag de la version v2026.4.30

  18. Notes de version de Hermes Agent v0.13.0. 7 mai 2026. « La version Tenacity ». Tableau Kanban multi-agent avec signal périodique, récupération, détection des agents zombies, garde-fou contre les hallucinations, max_retries par tâche et tableaux multiprojets. Commande slash /goal pour verrouiller un objectif entre plusieurs tours (primitive de boucle Ralph), avec un budget de tours configurable. Outil video_analyze, reposant en priorité sur Gemini et extensible à d’autres systèmes multimodaux compatibles. Fournisseur TTS xAI Custom Voices avec clonage vocal. Internationalisation en 7 langues : zh-Hans, ja, de, es, fr, uk, tr (CLI + messages du gateway ; documentation uniquement en zh-Hans). Google Chat devient la 20e plateforme de messagerie grâce à un modèle d’adaptateur extensible doté de hooks de plugin génériques env_enablement_fn / cron_deliver_env_var ; IRC et Microsoft Teams ont migré vers ce même modèle. Classe de base abstraite ProviderProfile + plugins/model-providers/ pour les fournisseurs tiers extensibles. Reprise automatique des sessions après le redémarrage du gateway, /update et le rechargement des fichiers sources. Réécriture de Checkpoints v2 autour d’un stockage unique, avec véritable élagage, garde-fous liés à l’espace disque et sans dépôts fantômes orphelins. Huit correctifs de sécurité P0 : masquage des secrets activé par défaut, contournement des restrictions de messages privés inter-serveurs sur Discord (CVSS 8.1, listes de rôles autorisés limitées au serveur), rejet par défaut des inconnus sur WhatsApp + aucune réponse dans les conversations avec soi-même, condition de concurrence TOCTOU lors de l’enregistrement des identifiants MCP OAuth, condition de concurrence TOCTOU sur auth.json dans les composants d’écriture des identifiants CLI, protection minimale contre les SSRF visant les métadonnées cloud du navigateur dans le routage hybride, analyse des prompts assemblés par cron — y compris le contenu des skills — pour détecter les injections de prompt, masquage du contenu des journaux lors de leur téléversement par hermes debug share. Autres éléments notables : lint après écriture pour Python/JSON/YAML/TOML, mode de surveillance cron no_agent reposant uniquement sur des scripts, listes d’autorisation par plateforme pour Slack/Telegram/Mattermost/Matrix/DingTalk, améliorations de MCP (transport SSE, transfert de OAuth, résultats d’images sous forme de balises MEDIA). Statistiques depuis la v0.12.0 : 864 commits, 588 PR fusionnées, 829 fichiers modifiés, 295 contributeurs de la communauté et 282 tickets clôturés (13 P0, 36 P1). 

  19. Notes de version de Hermes Agent v0.14.0. 16 mai 2026. « La version Foundation ». Depuis la v0.13.0 : 808 commits, 633 PR fusionnées, 1 393 fichiers modifiés, 165 061 insertions, 545 tickets clôturés (12 P0, 50 P1) et 215 contributeurs de la communauté. Ajout de SuperGrok OAuth avec grok-4.3 et un contexte de 1 million, hermes proxy, x_search, publication sur PyPI, dépendances chargées à la demande, cache de prompts Claude d’une heure entre les sessions, lancement accéléré d’environ 19 s, appels CDP du navigateur 180 fois plus rapides, LINE et SimpleX Chat portant le total à 22 plateformes de messagerie, /handoff, boutons de clarification natifs, récupération de l’historique Discord, vision_analyze sur les pixels bruts, pied de page de vérification des modifications de fichiers à chaque tour, diagnostics sémantiques LSP, video_generate unifié, computer_use via cua-driver, liens OSC8, prise en charge du registre ACP de Zed, routeur OpenRouter Pareto Code, NovitaAI, environnement d’exécution du serveur d’application Codex, huggingface/skills, ctx.llm pour les plugins, tool_override, recherche Brave/DDGS, durcissement des commandes dangereuses, /subgoal, renommage de Qwen Cloud, version bêta native pour Windows, 16 langues au total, ainsi que de vastes mises à jour de la documentation et des tests. 

  20. Notes de version de Hermes Agent v0.16.0, « The Surface Release », tag v2026.6.5, publié le 6 juin 2026 à 00:55:58 UTC (date du tag de version : 5 juin 2026) ; dernière version au 8 juin 2026. Nouveau Hermes Desktop natif (Electron, macOS/Linux/Windows ; connexion au gateway distant via un WebSocket sécurisé avec OAuth ou identifiant/mot de passe ; hôtes distants propres à chaque profile ; liens @session entre profiles ; interface en chinois simplifié grâce à un système d’i18n typé, display.language). Le tableau de bord web devient un panneau d’administration complet (activation et désactivation des catalogues MCP, gestion des identifiants, création de webhooks/hooks, configuration de la mémoire, commandes du gateway, page System avec vérification avant mise à jour et Debug Share, page Channels ; authentification modulaire comprenant OIDC auto-hébergé et hermes dashboard register). Nouvelles commandes : /undo [N], interface par défaut configurable (cli/tui, --cli), /model dans la TUI avec fenêtre superposée Sessions, hermes portal, hermes prompt-size, hermes sessions optimize. Nouveaux modèles : deepseek-v4-flash, MiniMax-M3 (contexte de 1 million), qwen3.7-plus, gemini-3.5-flash ; xAI Grok OAuth ; sélecteur approximatif ; actualisation horaire du catalogue. Skills : ensemble par défaut allégé, filtre de pertinence environments:, source fiable NVIDIA/skills par défaut, divulgation progressive des outils, correction des faux succès OAuth de MCP. Sécurité : CVE-2026-48710 (Starlette BadHost) corrigée par l’imposition de la version ≥1.0.1, contrôles SSRF sortis de la boucle d’événements, bearer token Bedrock retiré de l’environnement des sous-processus, lecture de bws_cache.json protégée, ajout de docker restart/stop/kill aux motifs dangereux, nettoyage des caractères Unicode invisibles ; 2 P0 et 62 P1 clôturés (dont 16 liés à la sécurité). La présentation marketing des notes de version (nombre de PR/commits, « rien de tout cela n’existait il y a une semaine ») est exclue ; seuls les faits concrets relatifs aux fonctionnalités et aux versions associés au tag sont consignés. Vérification effectuée dans la session en cours le 8 juin 2026. 

  21. Notes de version de Hermes Agent v0.17.0, « The Reach Release », tag v2026.6.19, 19 juin 2026 ; dernière version au 21 juin 2026. Messagerie : iMessage via Photon Spectrum (OAuth par code d’appareil, hermes photon login, sans relais Mac) ; adaptateur officiel WhatsApp Business Cloud API (remplace le processus de pont) ; groupes SimpleX, pièces jointes natives, regroupement des messages texte, acceptation automatique ; plugin de plateforme Raft intégré. Modèles/fournisseurs : z-ai/glm-5.2 (contexte de 1 million), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra, grok-composer-2.5-fast (xAI OAuth, contexte de 200 000) ; modèle xAI par défaut → grok-build-0.1 ; les modèles adaptatifs Anthropic utilisent le contrat de réflexion moderne (sans champ reasoning). CLI/commandes slash : /version, /billing, hermes photon login, hermes curator run --consolidate (facultatif), interface graphique de hermes model, clonage de profiles. Desktop : fenêtres de suivi des subagents en arrière-plan (delegate_task(background=true)), sélecteur de modèle Composer, raccourcis réassignables, notifications natives du système d’exploitation, brouillons propres à chaque fil, thèmes du VS Code Marketplace, interface en japonais et en chinois traditionnel. Tableau de bord : outil complet de création de profiles, sélecteur global de profile, refonte du Skills Hub avec analyse de sécurité, Automation Blueprints, connexion sécurisée (401 derrière OAuth). Skills/outils : édition d’image à image avec image_generate chez différents fournisseurs, opérations groupées atomiques operations de memory, skill simplify-code de révision parallèle, write_approval booléen à la place de write_mode. Architecture : subagents en arrière-plan (retour immédiat du handle, puis réintégration du résultat sous forme de tour), gestionnaire de sollicitation MCP pour les confirmations au cours d’un appel d’outil, outils MCP se connectant tardivement et exposés entre les tours, CronScheduler modulaire avec cron géré par Chronos, périmètre Managed (épinglé par l’administrateur dans /etc/hermes), relais Gateway-Gateway. Sécurité : contournement de la liste de refus des échappements shell corrigé, fermeture sécurisée en cas d’absence du module d’approbation et pour les adaptateurs gateway appliquant leur propre politique, environnement des scripts de tâches cron nettoyé, secrets masqués dans les dumps de débogage, métadonnées de l’hôte retirées du statut public, détection des motifs d’exfiltration via stdio pour MCP, mises à jour d’urllib3 et PyJWT pour corriger des CVE. La présentation marketing de la version (nombre de commits/PR) est exclue. Vérification effectuée dans la session en cours le 21 juin 2026. 

  22. Notes de version de Hermes Agent v0.18.0 (tag v2026.7.1), 1er juillet 2026 — « The Judgment Release ». Traitement prioritaire du backlog (tous les P0/P1 clôturés, environ 692 éléments en douze jours) ; Mixture-of-Agents sélectionnable comme modèle de premier ordre dans toutes les interfaces, avec le résultat complet de chaque modèle de référence affiché dans son propre bloc libellé et la réponse finale diffusée en direct ; contrats d’achèvement pour /goal (l’agent vérifie son propre travail en exécutant les contrôles du projet) ; commande /learn (transforme n’importe quel élément en skill réutilisable à partir d’une description, tout en assurant automatiquement la conformité avec CONTRIBUTING.md) ; chronologie visuelle de la mémoire et des skills avec /journey, fonctions d’édition et graphe de mémoire dans Desktop ; déploiement en éventail des subagents en arrière-plan (plusieurs tâches déléguées simultanées) ; Desktop Projects (modèle projet/dépôt/lane) ; gateway avec mise à l’échelle jusqu’à zéro et coordination de la vidange ; prise en charge de Google Vertex AI (Gemini via des comptes de service GCP, actualisation automatique du token OAuth2) ; commande /prompt utilisant $EDITOR. Vérification effectuée dans la session en cours le 1er juillet 2026 (PST) sur la page des versions GitHub ; v0.18.0 est la dernière version. 

  23. Notes de version de Hermes Agent v0.20.5 (tag v2026.8.19, date de sortie annoncée : 19 août, publication le 21 août 2026 ; récupéré via la API GitHub le 24 août 2026 — préversion : false). Description textuelle exacte de la période : « environ 746 commits dans environ 1 250 fichiers (+111 500 / -20 701) — environ 323 PR fusionnées, comprenant les fils de discussion Bot Mode dans les salons de groupe, les résumés de conversation repliables, les avatars blob-face et les pièces jointes PDF/fichiers par glisser-déposer ; l’offre web sans clé (rotation gratuite entre 5 fournisseurs avec basculement en anneau, recherche web disponible sur les nouvelles installations sans aucune clé) ; une vague de peaufinage de CLI (sélecteur approximatif de /model, palette de commandes avec Ctrl+P, /status enrichi) ; des garde-fous concernant la discipline d’exécution et les blocages d’exécution, issus des conclusions de l’évaluation Composio ; les reçus de hermes update et la vérification de flotte avec --plan ; hermes worktree list/prune ; le fournisseur sans authentification et indépendant d’opencode ; la clarification à plusieurs questions ; des améliorations des performances de Desktop (hydratation de Bot Mode donnant priorité au premier affichage, indicateurs de chargement du compositeur, React Compiler dans les deux moteurs de rendu) ; et l’ajout d’une mémoire persistante et d’un effort de raisonnement propre à chaque tâche cron. » La version répète : « Les notes de version complètes et sélectionnées pour cette période seront publiées avec v0.21.0. » 

  24. Backends de terminal au tag v2026.8.31 (revérifiés pour la version 1.17 du guide ; agent/terminal_env_registry.py est identique octet par octet à sa version dans v2026.8.31, les informations de la docstring de tools/terminal_tool.py n’ont pas changé et tools/environments/ contient toujours les sept mêmes modules de backend, désormais accompagnés d’un utilitaire path_utils.py) : docstring du module tools/terminal_tool.py, texte exact : « Un outil de terminal qui exécute des commandes dans des environnements locaux, Docker, Modal, SSH, Singularity, Daytona et Vercel Sandbox » et, dans la liste de sélection des environnements, entrée vercel_sandbox : « Exécuter dans des sandboxes cloud Vercel Sandbox » ; le module de backend tools/environments/vercel_sandbox.py existe dans le tag aux côtés de daytona.py, docker.py, local.py, modal.py, singularity.py et ssh.py. Le README correspondant au tag indique : « Sept backends de terminal — local, Docker, SSH, Singularity, Modal, Daytona et Vercel Sandbox. » La page de documentation Tools & Toolsets (source website/docs/user-guide/features/tools.md dans le tag) présente vercel_sandbox dans son tableau comme une « microVM cloud Vercel Sandbox » destinée à « l’exécution dans le cloud avec persistance du système de fichiers reposant sur des snapshots », affiche le commentaire de configuration # or: docker, ssh, singularity, modal, daytona, vercel_sandbox et précise : « Authentifiez-vous avec les trois variables VERCEL_TOKEN, VERCEL_PROJECT_ID et VERCEL_TEAM_ID. … Les environnements d’exécution pris en charge sont node24, node22 et python3.13 ; Hermes utilise par défaut /vercel/sandbox comme racine de l’espace de travail distant. » Dans v2026.8.31, le package tools/environments/ contient également l’infrastructure partagée (base.py avec l’ABC BaseEnvironment, file_sync.py, modal_utils.py, managed_modal.py) ; la docstring du package considère Modal géré comme un mode de Modal et non comme un huitième backend : « Modal propose en outre des modes direct et géré par Nous, sélectionnés via terminal.modal_mode. » 

  25. Nombre de plateformes de messagerie dans le tag v2026.8.31 (revérifié pour la version 1.17 du guide ; identique à v2026.8.31 — 28 lignes dans le tableau de la documentation, les mêmes 24 membres de l’énumération Platform et les mêmes 22 dossiers d’adaptateurs). La page de documentation de Messaging Gateway (source website/docs/user-guide/messaging/index.md dans le tag) contient un tableau « Comparaison des plateformes » de 28 lignes : Telegram, Discord, Slack, Google Chat, WhatsApp, WhatsApp Cloud API, Signal, SMS, E-mail, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, WeCom Callback, Weixin, BlueBubbles, Photon (iMessage), QQ, Yuanbao, Microsoft Teams, LINE, ntfy, Raft, IRC, Buzz, SimpleX. gateway/config.py définit class Platform(Enum) avec 24 membres explicites (local, telegram, discord, whatsapp, whatsapp_cloud, slack, signal, mattermost, matrix, homeassistant, email, sms, dingtalk, api_server, webhook, msgraph_webhook, feishu, wecom, wecom_callback, weixin, bluebubbles, qqbot, yuanbao, relay) et précise : « Les plateformes de plugins utilisent des membres dynamiques créés à la demande par _missing_(), de sorte que Platform("irc") fonctionne sans modifier cette énumération. » Dans le tag, l’arborescence plugins/platforms/ contient 22 dossiers d’adaptateurs : a2a buzz dingtalk discord email feishu google_chat homeassistant irc line matrix mattermost ntfy photon raft simplex slack sms teams telegram wecom whatsapp. Description des plateformes : la page ntfy indique textuellement : « ntfy est un service simple de notifications pub-sub basé sur HTTP. Il fonctionne avec le serveur public gratuit ntfy.sh ou toute instance auto-hébergée […] abonnez-vous à un sujet depuis l’application mobile ntfy, envoyez des messages au sujet pour communiquer avec l’agent et recevez sa réponse sur votre téléphone. » La page Buzz indique textuellement : « L’adaptateur Buzz connecte Hermes à une communauté Buzz — la plateforme open source de collaboration entre humains et agents de Block, fondée sur le protocole Nostr — et relaie les messages entre les canaux Buzz (ou les messages privés) et l’agent. Le trafic sortant fait appel au binaire buzz CLI […] tandis que le trafic entrant utilise un abonnement Nostr WebSocket natif. » Les deux pages indiquent : « Exécutez hermes gateway setup et sélectionnez […] pour suivre une configuration guidée. » 

  26. Nombre de fournisseurs dans le tag v2026.8.31 (revérifié pour la version 1.17 du guide ; la version v0.21.0 A MODIFIÉ ces nombres, qui étaient de 38 entrées statiques, 37 dossiers de plugins et 41 lignes de documentation dans v2026.8.31). hermes_cli/models.py déclare CANONICAL_PROVIDERS: list[ProviderEntry] avec 39 entrées statiques (nous, fireworks, openrouter, moa, novita, lmstudio, anthropic, openai-codex, openai-api, alibaba, xai-oauth, xiaomi, tencent-tokenhub, tencent-tokenplan, nvidia, copilot, copilot-acp, huggingface, gemini, vertex, deepseek, xai, zai, kimi-coding, kimi-coding-cn, stepfun, minimax, minimax-oauth, minimax-cn, ollama-cloud, arcee, gmi, kilocode, opencode-zen, opencode-go, bedrock, azure-foundry, ai-gateway, qwen-oauth), suivies du commentaire « Étendre automatiquement CANONICAL_PROVIDERS avec tout fournisseur enregistré dans providers/ qui ne figure pas déjà dans la liste ci-dessus. L’ajout de plugins/model-providers// suffit à faire apparaître un nouveau fournisseur dans le sélecteur de modèles » ; la boucle ignore uniquement les types d’authentification oauth_device_code, oauth_external, external_process, aws_sdk, copilot et vertex (inchangé). Dans le tag, l’arborescence plugins/model-providers/ contient 39 dossiers de fournisseurs (nebius-token-factory et router ont été ajoutés au cours de la période de la v0.21.0) ; les neuf dépourvus d’entrée statique (actual, alibaba-coding-plan, commandcode, deepinfra, meta-ai, nebius-token-factory, opencode-free, router, upstage) correspondent tous au type d’authentification api_key — sept déclarent explicitement auth_type="api_key" (y compris les deux nouveaux plugins), tandis que commandcode et opencode-free héritent de auth_type: str = "api_key" depuis providers/base.py. La page de documentation sur les fournisseurs d’IA (source website/docs/integrations/providers.md dans le tag) présente sous forme de tableaux 45 fournisseurs nommés, plus une ligne « Point de terminaison personnalisé » (lignes ajoutées depuis v2026.8.31 : Ramp Router, Nebius Token Factory, Tencent TokenPlan, Alibaba Cloud (Token Plan) — citées dans 36) ; chaque nom de variable d’environnement, slug de fournisseur, alias et note d’authentification des nouvelles lignes de la matrice est cité à partir de ce tableau, notamment « OpenCode Free | Sans clé — aucune clé API ni aucun compte requis (fournisseur : opencode-free, alias : free, opencode_free). Sélectionnez-le avec hermes model ou /model free ; les requêtes sont envoyées anonymement », « Google Vertex AI | […] OAuth2 par l’intermédiaire d’un JSON de compte de service ou d’ADC, facturation GCP », « AWS Bedrock | […] chaîne d’identifiants AWS standard via boto3 » et « CommandCode | […] Fonctionne avec les forfaits GOAT/Pro/Max/Provider (mais pas avec le forfait Go à 1 $ — aucun accès API) ». La ligne Meta AI provient du bloc de la même page consacré aux clés API de première classe : « Meta Model API (famille Muse Spark) […] hermes chat --provider meta-ai --model muse-spark-1.2 […] Requis : MODEL_API_KEY ». Cerebras apparaît uniquement dans le tableau « Autres fournisseurs compatibles » de la page (https://api.cerebras.ai/v1, « Inférence sur puce à l’échelle d’un wafer ») ; il est donc répertorié sous la ligne du point de terminaison personnalisé plutôt que comme fournisseur de première classe. 

  27. Surface de CLI à la balise v2026.8.31 (revérifiée pour la version 1.17 du guide ; les chaînes d’aide des options globales citées et chaque information relative à _BUILTIN_SUBCOMMANDS sont inchangées depuis v2026.8.31 — le frozenset est identique, avec 73 entrées — tandis que hermes_cli/_parser.py n’a changé qu’au sein de hermes chat, comme indiqué dans 40). Les options globales et leurs chaînes d’aide proviennent de hermes_cli/_parser.py : --in (« Accéder à DIR avant de démarrer ou de reprendre. En combinaison avec ‘–resume latest’ ou -c, la session la plus récente de l’espace de travail de DIR est sélectionnée et reste dans DIR (sans restaurer le répertoire de travail enregistré). »), --ignore-user-config (« Ignorer ~/.hermes/config.yaml et revenir aux valeurs par défaut intégrées (les identifiants dans .env sont toujours chargés) »), --ignore-rules (« Ignorer l’injection automatique d’AGENTS.md, SOUL.md, .cursorrules, de la mémoire et des skills préchargés »), --tui (« Lancer la TUI moderne à la place du REPL classique »), --cli (« Forcer le REPL prompt_toolkit classique (remplace display.interface=tui) »), --dev (« Avec –tui : exécuter les sources TypeScript via tsx (sans compiler dist) »), et --version/-V (« Afficher la version et quitter »). hermes_cli/_startup_fast.py n’utilise le chemin d’exécution rapide que pour argv in (["--version"], ["-V"]), et le frozenset _BUILTIN_SUBCOMMANDS dans hermes_cli/main.py ne contient aucune entrée version ; la référence des commandes CLI documente hermes --version (« Afficher les informations de version »), mais pas hermes version. Les descriptions des commandes correspondent aux chaînes help= du parseur dans hermes_cli/main.py et hermes_cli/subcommands/*.py à cette balise (par exemple approvals : « Outils de demande d’approbation (analyser l’historique pour proposer des ajouts à la liste d’autorisation) » ; pause : « Arrêt d’urgence : suspendre les distributions cron/kanban et les nouveaux tours du gateway » ; sync : « Synchronisation des skills — synchroniser vos skills entre vos appareils et avec votre équipe » ; verify : « Détecter la procédure d’exécution d’un projet et effectuer un test rapide » ; login : « Obsolète. Utilisez hermes auth pour gérer les identifiants, hermes model pour sélectionner un fournisseur ou hermes setup pour effectuer la configuration complète. »), recoupées avec le tableau des commandes de premier niveau de la documentation. hermes update --plan figure dans hermes_cli/subcommands/update.py : « Afficher le plan de mise à jour et quitter sans rien modifier : type d’installation (git/docker/nix), chaque service Hermes en cours d’exécution dans tous les profiles avec son superviseur et la version du code exécutée, ainsi que la manière dont chacun sera redémarré. Lecture seule ; sans risque sur un parc en production. » ; aucune commande fleet n’existe dans _BUILTIN_SUBCOMMANDS. hermes worktree est enregistrée dans hermes_cli/main.py (aide : « Auditer et récupérer les worktrees git accumulés ainsi que les branches fusionnées ») avec list (alias ls, audit ; « Classer chaque arborescence : ancienneté, taille, verdict, raison (action par défaut) »), prune (« Supprimer les arborescences sûres et les branches locales entièrement fusionnées »), --repo, --dry-run (« Afficher le plan sans rien modifier »), --trees-only (« Supprimer uniquement les worktrees ; laisser les branches locales intactes ») et --branches-only (« Supprimer uniquement les branches locales fusionnées ; laisser les worktrees intacts »). La commande slash /worktree correspond à _handle_worktree_command dans hermes_cli/cli_commands_mixin.py (bloc de syntaxe : /worktree, /worktree new [name], /worktree list, /worktree prune [--dry-run]) ; la section « Nettoyage des worktrees » du guide utilisateur de CLI ajoute : « Dans une session, /worktree prune [--dry-run] effectue la même opération (et ne touche jamais à l’arborescence dans laquelle la session s’exécute). » 

  28. Commandes Nous Portal à la balise v2026.8.31 (revérifiées pour la version 1.17 du guide ; hermes_cli/portal_cli.py est identique octet par octet à sa version de v2026.8.31). Le README à cette balise, dans la section « Ignorer la collecte de clés API — Nous Portal », indique : « Une seule commande depuis une nouvelle installation : hermes setup --portal… Celle-ci vous connecte via OAuth, définit Nous comme fournisseur et active le Tool Gateway. Vérifiez à tout moment ce qui est configuré avec hermes portal info. » hermes_cli/portal_cli.py enregistre portal (aide : « Configurer Nous Portal (connexion, choix du modèle, Tool Gateway) ; voir aussi portal info ») avec login (« Se connecter à Nous Portal et le configurer (option par défaut ; intégration en une seule étape) »), info (« Afficher un récapitulatif de l’authentification Portal et du routage du Tool Gateway »), open (« Ouvrir la page d’abonnement Portal dans votre navigateur par défaut »), tools (« Répertorier les outils du Tool Gateway et ceux qui sont acheminés via Nous »), ainsi que le commentaire de code « status conservé comme alias masqué et rétrocompatible de info. » La page de documentation du Tool Gateway présente hermes setup --portal # Fresh install: Nous OAuth + set Nous as provider + turn on the Tool Gateway in one go et hermes portal info # Portal auth + Tool Gateway routing summary ; à la même balise, la référence des commandes CLI documente encore hermes portal [status|open|tools]

  29. Comparaison GitHub API, NousResearch/hermes-agent, v2026.8.19...main, récupérée le 26 août 2026 : ahead_by: 1104, behind_by: 0. La page des versions API répertorie v2026.8.19 (Hermes Agent v0.20.5, publiée le 2026-08-21T12:16:39Z) comme la balise la plus récente, dont les notes indiquent : « Les notes de version complètes et organisées pour cette période seront publiées avec la v0.21.0, qui documentera tout depuis la v0.20.0. » Nouvelle vérification le 27 août 2026 avec la nouvelle balise : v2026.8.27...main renvoie ahead_by: 0, behind_by: 0, status: identicalmain correspond désormais exactement à la balise v0.20.6. 

  30. Notes de version de Hermes Agent v0.20.6 (balise v2026.8.27, date de sortie annoncée au 27 août, publication le 2026-08-27T12:06:53Z ; récupérées via GitHub API le 27 août 2026 — prerelease: false). Présentation exacte : « Version corrective. Cette balise regroupe les quelque 525 PR fusionnées depuis la v0.20.5 dans une version balisée stable destinée aux utilisateurs en aval (images Docker, déploiements hébergés, nouvelles installations). » Description exacte de la période : « Depuis la v0.20.5 (v2026.8.19, balisée le 21 août), cette période a apporté quelque 1 313 commits répartis sur environ 1 557 fichiers (+177 113 / -21 682) — environ 525 PR fusionnées, notamment la navigation avec un profile réel soumise au consentement (utilisation de votre profile Chromium par défaut pour la navigation locale, avec un processus de fermeture sous approbation sous Windows) ; l’ouverture du Browser de bureau dans sa propre fenêtre du système d’exploitation, accompagnée d’un moteur de mise à jour à distance SSH géré et d’une barre latérale des profiles du parc ; un élargissement considérable du catalogue MCP distant (plus de 50 serveurs hébergés par des fournisseurs et vérifiés en conditions réelles, dont Cloudflare, Grafana Cloud, Better Stack et Railway) ; la mise en cache des résultats avec TTL pour web_search/web_extract ; la compression lean-tail par défaut ; tool_search à requêtes multiples avec racinisation ; le chiffrement facultatif des secrets stockés dans le trousseau du système d’exploitation (plus de demandes du trousseau macOS à chaque lancement) ; la suspension des gateways par les programmes de mise à jour via le socket de contrôle au lieu d’arrêter brutalement leurs arborescences de processus ; le refus des mises à jour sur place non sécurisées pour les installations gérées par image ou package (phase 3 de #91277) ; les accusés de réception des incidents persistants de cron et des messages plus clairs en cas de divergence du code ; les contrôles de déploiement des aperçus de liens Slack ; les identités de conteneurs Docker partagées ; les backends d’environnement de terminal extensibles ; et de nouveaux modèles dans les sélecteurs (GLM-5.3-Flash, MiniMax M3 free, MiniMax H3 Max video). » La publication répète : « Les notes de version complètes et organisées pour cette période seront publiées avec la v0.21.0, qui documentera tout depuis la v0.20.0 — points forts, domaines fonctionnels et crédits complets des contributeurs. Rien de cette période ne sera omis. » 

  31. Compression à la version v2026.8.31, revérifiée à la version v2026.8.31 pour le guide v1.17 : tail_mode: str = "lean", la garde ("legacy", "lean"), la valeur par défaut "lean" d’agent_init, la migration de la version 17 de la configuration et la remarque ci-dessous concernant le commentaire auxiliaire obsolète restent tous valables avec cette nouvelle version (context_compressor.py a gagné un chemin de nouvelle tentative pour le routage du résumé épinglé, sans modifier aucune des valeurs par défaut citées). agent/context_compressor.py définit par défaut tail_mode: str = "lean" dans ContextCompressor.__init__, avec le commentaire « Mode de fin lean (#compaction-v2) : ‘lean’ = petite fin récente plafonnée + section de résumé reprenant textuellement les messages de l’utilisateur + pointeurs de récupération ; ‘legacy’ = fin correspondant à 0.20window (comportement livré) » et la garde self.tail_mode = tail_mode if tail_mode in ("legacy", "lean") else "lean". agent/agent_init.py lit compression.tail_mode avec "lean" comme valeur par défaut ; son commentaire quantifie les deux modes : « ‘lean’ (par défaut) conserve une fin textuelle plafonnée de 2,5 %/10K-25K avec un mécanisme de pointeurs de récupération […] ‘legacy’ rétablit la fin textuelle de 0.20threshold antérieure à #87326, qui, dans les configurations avec une grande fenêtre ou un seuil relevé, accumule 100-240K tokens à chaque compression. » La page de documentation sur la configuration (source website/docs/user-guide/configuration.md à cette version) présente le bloc compression: avec enabled, threshold: 0.50, threshold_tokens: null, target_ratio: 0.20, tail_mode: lean (annoté dans v2026.8.31 : « ‘lean’ (par défaut — fin plafonnée à 2,5 %, 10K-25K, avec un journal de session détaillé + un index d’ancres + des pointeurs de récupération session_search dans le résumé, le tout issu d’UN SEUL appel au modèle de résumé auxiliaire ; environ 3 fois moins de tokens conservés après compression) ou ‘legacy’ (fin textuelle de 0.20×threshold) »), protect_last_n: 20 et protect_first_n: 3, place les paramètres du modèle de résumé sous auxiliary.compression (model, provider, base_url) et précise : « Les anciennes configurations contenant compression.summary_model, compression.summary_provider et compression.summary_base_url sont automatiquement migrées vers auxiliary.compression.* lors du premier chargement (version 17 de la configuration). Aucune intervention manuelle n’est nécessaire. » La migration correspond à _migrate_to_17 dans hermes_cli/config_migrations.py (« Version 16 -> 17 : suppression des anciennes clés compression.summary_ »). La page destinée aux développeurs sur la compression du contexte (source website/docs/developer-guide/context-compression-and-caching.md à cette version) indique dans son tableau que tail_mode a pour valeur par défaut lean, affirme « Résultat sur de véritables sessions de 500K tokens : environ 49K conservés contre environ 162K » et « Les anciens résultats d’outils situés dans la fin lean sont réduits à des souches d’une ligne comportant un pointeur de récupération », et contient l’avertissement suivant concernant le modèle de résumé (dans v2026.8.31) : « La fenêtre de contexte du modèle de résumé doit être au moins aussi grande que celle du modèle principal de l’agent. […] Le compresseur supprime alors les tours intermédiaires sans résumé, entraînant une perte silencieuse du contexte de la conversation. » (Un élément obsolète subsiste en amont : dans la section « Référence complète de la configuration auxiliaire » de la page Configuration, l’emplacement auxiliary.compression porte encore le commentaire « Délai d’expiration de la compression du contexte (distinct de la configuration compression.) » ; le code de migration, le sélecteur auxiliaire interactif de hermes model et la propre section de la page consacrée à la compression constituent les sources plus récentes et concordantes.) 

  32. Backends de terminal enfichables à la version v2026.8.31 (revérifiés pour le guide v1.17 ; agent/terminal_env_registry.py est identique octet pour octet à sa version dans v2026.8.31). Docstring du module agent/terminal_env_registry.py, reproduite textuellement : « Registre central des backends de terminal enfichables enregistrés. Alimenté par les plugins lors du chargement via PluginContext.register_terminal_environment_provider ; utilisé par tools.terminal_tool._create_environment » et « Les noms des backends intégrés sont réservés — register_provider rejette tout fournisseur dont le nom entre en conflit avec l’un d’eux, de sorte qu’un plugin ne puisse jamais masquer les implémentations docker/modal/… présentes dans le dépôt » ; il n’y a délibérément « aucune résolution du fournisseur actif ici : le backend actif est celui désigné par TERMINAL_ENV / terminal.backend, exactement comme pour les backends intégrés. » Son frozenset BUILTIN_BACKEND_NAMES contient les sept backends ainsi que l’alias de mode interne managed_modal : local, docker, singularity, modal, managed_modal, daytona, vercel_sandbox, ssh. La nouvelle page de documentation Plugins fournisseurs d’environnements de terminal (source website/docs/developer-guide/terminal-environment-plugin.md à cette version), reproduite textuellement : « Hermes exécute les commandes shell au moyen d’un ensemble enfichable de backends de terminal. Les backends intégrés (local, Docker, Singularity, Modal, Daytona, Vercel Sandbox, SSH) se trouvent dans le dépôt principal, sous tools/environments/. Les fournisseurs tiers de sandbox s’intègrent plutôt sous forme de plugins — un dépôt de plugin autonome installé sous ~/.hermes/plugins/, qui enregistre un backend que l’utilisateur sélectionne exactement comme un backend intégré via terminal.backend dans config.yaml » ; elle répertorie dans un tableau les surfaces pilotées par un fournisseur enregistré (acheminement des commandes, sélecteur de backend de hermes setup, état de la sonde dans le dashboard, vérifications de hermes status/hermes doctor, indications sur l’environnement dans le prompt système, gestion des chemins/cwd des conteneurs, suppression des secrets, isolation de la sandbox par session) et énonce l’objectif de conception : « La déclaration de ces indicateurs sur le fournisseur élimine la catégorie classique de bugs “le nouveau backend a été oublié au site de classification N” — le cœur consulte le registre à chaque emplacement au lieu d’une liste de noms codée en dur. » 

  33. Nouvelle campagne de vérification à la version v2026.8.31 (guide v1.17). Langues : l’arborescence locales/ contient 17 catalogues de messages — en.yaml plus 16 traductions (af, ar, de, es, fr, ga, hu, it, ja, ko, pt, ru, tr, uk, zh-hant, zh) — identiques à v2026.8.27. Personnalités : BUILTIN_PERSONALITIES dans hermes_cli/personality.py contient les mêmes 14 entrées, de helpful à hype (helpful, concise, technical, creative, teacher, kawaii, catgirl, pirate, shakespeare, surfer, noir, uwu, philosopher, hype) ; le fichier est identique octet pour octet à sa version dans v2026.8.27. Décomptes ayant CHANGÉ avec cette version : 39 entrées statiques dans CANONICAL_PROVIDERS (contre 38 auparavant) et 39 dossiers dans plugins/model-providers/ (contre 37 auparavant) — voir 26 et 36. Décomptes inchangés : 24 membres dans l’enum Platform (liste des membres identique dans gateway/config.py, qui n’a gagné qu’un champ de gateway room_link_url), 22 dossiers d’adaptateurs dans plugins/platforms/, 28 lignes dans le tableau comparatif des plateformes de la documentation ; _BUILTIN_SUBCOMMANDS contient les mêmes 73 entrées (peer et worktree sont présents, toujours aucun version, ni aucun approval-check — nom utilisé dans les notes de version pour hermes approvals test) ; hermes_cli/_startup_fast.py et hermes_cli/portal_cli.py sont identiques octet pour octet à leurs versions dans v2026.8.27

  34. Routage des modèles auxiliaires au tag v2026.8.31 (revérifié pour la version 1.17 du guide ; dans le nouveau tag, le bloc de valeurs par défaut "auxiliary" conserve exactement la même liste d’emplacements, les mêmes notes de suppression et les mêmes paramètres hors emplacement, tandis que les extraits de la documentation ci-dessous restent inchangés). La page de documentation sur la configuration (source website/docs/user-guide/configuration.md au niveau du tag), mot pour mot : « Par défaut (auxiliary.*.provider: "auto"), Hermes achemine chaque tâche auxiliaire vers votre modèle de chat principal — le même fournisseur et le même modèle que ceux choisis dans hermes model. Vous n’avez rien à configurer pour commencer, mais sachez qu’avec des modèles de raisonnement coûteux (Opus, MiniMax M2.7, etc.), les tâches auxiliaires entraînent un coût non négligeable. » ; sa note « Pourquoi « auto » utilise votre modèle principal » précise : « Les versions antérieures orientaient les utilisateurs d’agrégateurs (OpenRouter, Nous Portal) vers un modèle économique défini par défaut côté fournisseur. Ce comportement était déroutant : les utilisateurs ayant souscrit un abonnement auprès d’un agrégateur voyaient un autre modèle traiter leur trafic auxiliaire. auto utilise désormais le modèle principal pour tout le monde, tandis que les remplacements par tâche dans config.yaml restent prioritaires. » ; et, à propos de l’extraction web : « (L’extraction web n’est pas une tâche auxiliaire : web_extract et les instantanés du navigateur tronquent les contenus longs de manière déterministe et stockent le texte intégral afin de permettre sa lecture paginée avec read_file — aucun LLM n’intervient.) » La liste d’emplacements faisant autorité se trouve dans le bloc de valeurs par défaut "auxiliary" de hermes_cli/config_defaults.py au niveau du tag : vision, compression, skills_hub, approval, review, mcp, title_generation, memory_query_rewrite, tts_audio_tags, triage_specifier, kanban_decomposer, profile_describer, goal_judge, curator, monitor, background_review, moa_reference et moa_aggregator (auxquels s’ajoutent les paramètres hors emplacement transient_retries, free_only, openrouter_model et stream_only_base_urls) ; les emplacements comportent provider, model, base_url, api_key, timeout, extra_body ainsi qu’un reasoning_effort propre à chaque tâche. Notes de suppression figurant dans le même fichier, mot pour mot : « web_extract n’utilise plus de LLM auxiliaire — les pages sont tronquées et stockées avec un pointeur read_file (sans résumé), et les instantanés du navigateur suivent le même principe. L’ancien bloc auxiliary.web_extract.* a été supprimé ici. Les valeurs encore présentes dans les fichiers config.yaml des utilisateurs sont des vestiges sans conséquence et sont ignorées. » et « session_search n’utilise plus de LLM auxiliaire (PR #27590 — l’outil à forme unique renvoie directement le contenu de la base de données) » ; aucune clé flush_memories n’existe dans le bloc. Les descriptions succinctes des emplacements proviennent des commentaires du même fichier (« Spécificateur de triage — transforme une ébauche d’une ligne de la colonne Triage du Kanban en une spécification concrète, puis la fait passer à todo. Appelé par hermes kanban specify » ; « Décomposeur Kanban — décompose une tâche de triage en un graphe de tâches enfants acheminées vers des profiles spécialisés en fonction de leur description. Appelé par hermes kanban decompose et le répartiteur de décomposition automatique du Kanban » ; « Descripteur de profile — génère automatiquement une description en 1 à 2 phrases des domaines dans lesquels un profile excelle. Appelé par hermes profile describe <name> --auto et le bouton de génération automatique du tableau de bord » ; « Juge d’objectif — détermine si la dernière réponse d’une exécution /goal satisfait l’objectif ou le contrat » ; « Curateur — branche de révision de l’utilisation des skills » ; « Révision en arrière-plan — branche d’auto-amélioration exécutée après chaque tour, qui décide s’il faut enregistrer une mémoire ou corriger un skill »), des commentaires de référence complète de la page Configuration (« Insertion masquée de balises audio pour Gemini 3.1 TTS » ; « Titres de session générés automatiquement. Lorsque la langue n’est pas renseignée, celle de la conversation est utilisée » ; auxiliary.title_generation.enabled: false désactive les titres automatiques) et du tableau de configuration de la page de documentation sur le Kanban (« auxiliary.kanban_decomposer | Modèle qui produit le graphe de tâches (appelé par Decompose) » ; « auxiliary.profile_describer | Modèle qui génère automatiquement les descriptions des profiles (appelé par hermes profile describe --auto) »). Parcours interactif : exécutez hermes model, puis choisissez « Configurer les modèles auxiliaires » afin d’accéder à un sélecteur par tâche (vision, title_generation, tts_audio_tags, compression, approval, triage_specifier, kanban_decomposer, profile_describer, delegation) ; l’entrée Delegation est enregistrée dans delegation.* au niveau supérieur, car les sous-agents « sont des agents enfants complets, et non des appels LLM secondaires ». 

  35. Notes de version d’Hermes Agent v0.21.0, « The Pantheon Release », tag v2026.8.31, date de sortie annoncée le 31 août, publication le 2026-08-31T19:29:49Z. Ligne de statistiques, mot pour mot : « Depuis la v0.20.0 : environ 5 800 commits · environ 2 475 PR fusionnées · environ 5 680 fichiers modifiés · environ 869 000 insertions · environ 135 000 suppressions · environ 2 100 issues closes · plus de 760 contributeurs ». Présentation, mot pour mot : « The Pantheon Release. La v0.20.0 avait fait d’Hermes le héraut — il parlait et transmettait la parole aux autres agents. Dans la v0.21.0, les dieux se rassemblent. » et « Cette version regroupe tout le contenu des tags correctifs d’infrastructure v0.20.1 à v0.20.6 — ces périodes sont intégralement documentées ici. » Extraits des domaines fonctionnels utilisés ci-dessus, mot pour mot : Bot Mode — « Bot Mode fait désormais partie intégrante de l’application de bureau et est activé par défaut : chaque profile d’agent reçoit un nom, un visage d’avatar déterministe (avec des commandes de randomisation et de verrouillage) ainsi qu’une place dans une liste partagée » et « Auparavant, le « multi-agent » désignait surtout la plomberie technique ; désormais, il ressemble à une application de chat remplie de collègues » (#87886, #88243, #89386, #96726) ; hermes peer — « Les réponses arrivent dans le Bot Chat canonique de chaque agent, de sorte que les conversations entre agents sont durables et consultables, au lieu d’être envoyées sans suivi » (#88725, #88178, #91487) ; cron — « continuity=true transmet la sortie de chaque exécution à la suivante (afin qu’un moniteur puisse éliminer les doublons par rapport à ce qu’il a déjà signalé), chaque tâche dispose d’un bloc-notes durable et les tâches en mode surveillance ignorent entièrement le LLM lorsque rien n’a changé » (#91447, #80774, #81139, #81138) ; délégation — « répertoriez les agents enfants en cours d’exécution, réorientez-en un à la volée au moyen d’une correction de trajectoire, ou arrêtez-le prématurément tout en conservant le résultat partiel. Ajout d’une validation facultative des sorties des agents enfants selon le schéma JSON, affichage du coût de chaque délégation dans les résultats et relèvement des valeurs par défaut (250 itérations, 10 agents enfants simultanés) » (#85232, #81144, #81142, #86506, #86745) ; MCP — « liens profonds hermes:// permettant d’installer un serveur MCP après confirmation explicite » (#87525-#87581) ; CLI — « Ctrl+P ouvre une palette de commandes avec recherche approximative, le sélecteur /model filtre les résultats à mesure que vous saisissez du texte, /status affiche le mode de raisonnement, les approbations en attente et l’utilisation du contexte, tandis que la barre d’état peut afficher en direct le pourcentage de correspondances dans le cache, la latence et le nombre de tokens par seconde, avec des options d’activation pour chaque champ » (#90730, #90717, #90745, #98250, #98282, #97666) ; navigateur — « Hermes peut désormais y naviguer, cliquer et lire directement son contenu » (#90197, #89366) ; fournisseurs — « Meta Model API (Muse Spark) devient un fournisseur intégré, aux côtés de CommandCode, Tencent TokenPlan, Nebius Token Factory, Ramp Router et Actual Computer » (#88565, #88308, #97917, #97916, #97915 et récupération de #79644/#26491) ; sécurité — « Les fichiers protégés contenant les instructions des agents (AGENTS.md, skills, magasins de mémoire) nécessitent désormais systématiquement une approbation en écriture, afin qu’un agent victime d’une injection de prompt ne puisse pas modifier discrètement ses propres consignes permanentes » (#81152), auxquels s’ajoutent la campagne de masquage des données sensibles (#80965), la couverture des approbations sous Windows (#84428), l’identité TCC (#95091) et la suppression du MCP de Blender (#83404). Section des éléments annulés, mot pour mot : « Mode Model Council (/council) — intégré puis annulé ; absent de cette version. » ; « DCP context engine — intégré puis annulé ; absent de cette version. » ; « Serveur gateway uniquement WS (#94245) — fusionné puis annulé (#96118) ; FastAPI demeure dans le parcours de démarrage de l’application de bureau. La relecture des événements estampillés par numéro de séquence (#94219) A BIEN été livrée. » ; « Electron est revenu à la version 40.10.2 ; le point d’ancrage de l’interpréteur TCC a été supprimé (remplacé par l’approche fondée sur l’identité de signature qui a été livrée). » La section consacrée aux corrections de bugs se termine ainsi : « …ainsi qu’environ deux mille autres issues closes — cette période a enregistré en moyenne environ 85 PR fusionnées par jour. » 

  36. Nouveaux fournisseurs dans le tag v2026.8.31. hermes_cli/models.py reçoit ProviderEntry("tencent-tokenplan", "Tencent TokenPlan", "Tencent TokenPlan (Hy4 preview via api.lkeap.cloud.tencent.com, Anthropic Messages)") (entrée statique nº 39), les modèles de catalogue hy4-preview, hy3, hy3-preview, ainsi qu’un groupe de sélection uniquement destiné à l’affichage "tencent": ("Tencent Hy", "Hy4 / Hy3 via TokenHub & TokenPlan", ["tencent-tokenhub", "tencent-tokenplan"]). plugins/model-providers/ reçoit nebius-token-factory/ et router/, qui déclarent tous deux auth_type="api_key" ; l’extension automatique les prend donc en charge. Docstring du plugin router, mot pour mot : « Profil de fournisseur pour Ramp Router, le gateway LLM de Ramp : un endpoint compatible avec OpenAI Responses à l’adresse https://api.router.com/v1, qui achemine chaque requête vers différents fournisseurs en amont (OpenAI, Anthropic, xAI, Fireworks, …) et gère côté serveur les solutions de repli et le contrôle des dépenses » … « Responses API constitue le protocole natif. » … « Les ID de modèle valides sont ceux renvoyés par GET /v1/models pour la clé (les comptes BYOK voient des entrées supplémentaires) ; ce profil ne fournit donc aucun fallback_models : le sélecteur s’appuie sur la récupération en direct, conformément aux propres recommandations de Router de ne jamais coder les noms de modèles en dur. » Dans le tag, la page de documentation sur les fournisseurs d’IA répertorie 45 fournisseurs nommés, plus la ligne Custom Endpoint ; voici les quatre lignes ajoutées depuis v2026.8.27, citées : « Ramp Router | RAMP_ROUTER_API_KEY dans ~/.hermes/.env (fournisseur : router ; alias : ramp-router, ramp, router.com ; gateway natif Responses, catalogue en direct propre au compte) » ; « Nebius Token Factory | NEBIUS_API_KEY dans ~/.hermes/.env (fournisseur : nebius-token-factory ; alias : nebius, nebius-tf, tokenfactory) » ; « Tencent TokenPlan | TOKENPLAN_API_KEY dans ~/.hermes/.env (fournisseur : tencent-tokenplan, alias : tokenplan, tencent-lkeap ; endpoint Anthropic Messages) » ; « Alibaba Cloud (Token Plan) | ALIBABA_TOKEN_PLAN_API_KEY dans ~/.hermes/.env (fournisseur : alibaba-token-plan ; endpoint pour la Chine continentale : alibaba-token-plan-cn) — forfait de jetons Model Studio ». model_overrides figure dans hermes_cli/config_defaults.py pour ce tag ("model_overrides": {} ; les entrées explicites model_overrides.<provider>.<model_id> prévalent sur le catalogue, tandis que les entrées _default ne comblent les lacunes que pour les modèles non couverts par le catalogue). 

  37. Continuité des cron dans le tag v2026.8.31. La page de documentation sur les cron (source website/docs/user-guide/features/cron.md dans le tag) indique, mot pour mot : « Définissez continuity=true pour que la tâche injecte son propre résultat le plus récent dans chaque exécution. En temps normal, les tâches récurrentes commencent chaque exécution sans aucun souvenir : un agent de veille d’actualité signale de nouveau les mêmes sujets, tandis qu’un moniteur déclenche de nouveau une alerte pour la même condition. Lorsque la continuité est activée, la tâche se réveille en voyant ce qu’elle a signalé la fois précédente ; elle peut ainsi éliminer les doublons et reprendre là où elle s’était arrêtée » ; « Lors des exécutions suivantes, le résultat précédent est ajouté en tête avec des instructions de continuité (« éviter de répéter ce qui a déjà été signalé ») … En interne, le paramètre est stocké sous la forme de l’entrée réservée self dans context_from. » ; « Depuis CLI : hermes cron create "every 6h" "Scan for news" --continuity, puis hermes cron edit <job_id> --continuity / --no-continuity pour l’activer ou le désactiver sur une tâche existante. La même option figure dans l’éditeur de cron du dashboard et dans la boîte de dialogue des routines du Bot Mode de l’application de bureau. » Effort propre à chaque tâche, mot pour mot : « Une tâche peut fixer son propre niveau de réflexion, indépendamment du modèle fixé : none, minimal, low, medium, high, xhigh, max ou ultra. Lorsqu’il est défini, ce niveau remplace à la fois le paramètre global agent.reasoning_effort et les valeurs agent.reasoning_overrides propres aux modèles pour les exécutions de cette tâche » ; à définir avec hermes cron create/edit --reasoning-effort high. Livraison dans Bot Chat, mot pour mot : « bot-chat remet le résultat dans la session canonique « Bot Chat » d’un profile, sous la forme d’un véritable message … ici, le destinataire est le bot lui-même : il reçoit le résultat comme un message entrant, intervient sur tout ce qui nécessite une action et répond dans son chat. » Blocs-notes : docstring du module cron/notepad.py — « Un minuscule espace de travail clé-valeur que chaque tâche cron peut utiliser pour conserver son état entre les réveils planifiés (curseurs, repères de progression, listes de surveillance) », plafonné par « MAX_VALUE_BYTES (16 KB) » et « MAX_JOB_TOTAL_BYTES (64 KB) » (« le bloc-notes est injecté dans le prompt à chaque exécution ; une croissance illimitée alourdirait donc le prompt de chaque réveil »), et « L’écriture passe par CLI (hermes cron notepad <job_id> set <key> <value>), que l’agent en cours d’exécution appelle à l’aide de son outil de terminal ; aucun outil de modèle n’est ajouté. » Mode moniteur : docstring de cron/monitor.py — « Prise en charge des cron en mode moniteur — détection des changements avec suppression par hash », associant une « source de surveillance peu coûteuse (monitor_script ou monitor_url) » ; « aucun changement → l’exécution de l’agent est entièrement supprimée (aucun LLM, aucune livraison) ; le déclenchement est enregistré comme une exécution silencieuse no_change » ; « Le résultat est comparé OCTET PAR OCTET : aucun retrait des horodatages ni aucune normalisation des espaces. Les scripts de surveillance doivent produire un résultat stable … faute de quoi chaque déclenchement semblera correspondre à un changement. » ; « activation : #80774. » 

  38. Orchestration en direct des subagents dans le tag v2026.8.31. La page de documentation sur la délégation (source website/docs/user-guide/features/delegation.md dans le tag), à la section « Pilotage d’un subagent en cours d’exécution », présente l’interface de contrôle suivante : {"action": "list"}, {"action": "steer", "subagent_id": "sa-0-1a2b3c4d", "message": "focus on pricing instead"}, {"action": "stop", "subagent_id": "sa-0-1a2b3c4d"} ; mot pour mot : « list renvoie les enfants actifs de la conversation : subagent_id, objectif, statut, running_seconds, accepting_steer et chemin de la transcription en direct » ; « stop met fin à un enfant de manière anticipée à la prochaine limite d’itération ; le résultat partiel réintègre tout de même la conversation sous la forme d’un message d’achèvement normal » ; les actions de contrôle sont « limitées au propre arbre de spawn de l’appelant — une conversation ne peut jamais voir ni contrôler les enfants d’une autre session — et ne consomment jamais le quota de spawn de subagents par tour ; stop continue donc de fonctionner même lorsque ce quota est atteint » ; la remise des instructions de pilotage décrit honnêtement le risque de concurrence (« Mis en file d’attente ne signifie pas livré, mais ce n’est jamais une fausse réussite », pending_steer étant transféré dans les résultats et missed_steer étant marqué lorsqu’un enfant termine en premier). Valeurs par défaut : hermes_cli/config_defaults.py définit delegation.max_iterations: 250 (« nombre maximal d’itérations par subagent (chaque subagent dispose de son propre budget, indépendamment de la valeur max_iterations du parent) ») et delegation.max_concurrent_children: 10 (« limite de concurrence unifiée : nombre maximal d’enfants parallèles par lot ET nombre maximal d’unités de délégation simultanées en arrière-plan (background=true) … (Remplace le paramètre obsolète max_async_children.) »). Un passage obsolète subsiste en amont : la page de documentation sur la délégation indique encore « 3 tâches par défaut » et affiche « max_iterations: 50 … (valeur par défaut : 50) » dans sa référence de configuration ; le fichier config_defaults.py distribué et les notes de version (« valeurs par défaut relevées (250 itérations, 10 enfants simultanés) ») constituent les sources plus récentes et concordantes. 

  39. Vague de sécurité au niveau du tag v2026.8.31. Fichiers d’instructions protégés : dans hermes_cli/config_defaults.py, security.protected_instruction_files: True est la valeur par défaut (commentaire : « Écritures dans les fichiers d’instructions de l’agent (AGENTS.md/CLAUDE.md/SOUL.md/…) »), avec protected_instruction_extra_patterns: [] (fnmatch sur le nom de base) ; tools/file_tools.py implémente le contrôle — « Fichiers d’instructions protégés de l’agent (contrôle d’approbation systématique) » sur _PROTECTED_INSTRUCTION_BASENAMES = frozenset({"agents.md", "claude.md", "soul.md", ".cursorrules", ...}) — et décrit textuellement le modèle de menace : « vecteur : une instruction injectée qui modifie AGENTS.md / CLAUDE.md / SOUL.md » et « les fichiers d’instructions du contexte du projet sont chargés depuis les arborescences du cwd — tout fichier AGENTS.md situé dans un emplacement depuis lequel l’agent pourrait ensuite s’exécuter constitue une cible active. » Identité TCC : hermes desktop --setup-tcc-identity est implémenté dans hermes_cli/main.py_desktop_macos_setup_tcc_identity(identity: str = "Hermes Local Signing"), « Configuration ponctuelle de hermes desktop --setup-tcc-identity », avec les garde-fous « (–setup-tcc-identity est réservé à macOS ; opération ignorée) » et « (–setup-tcc-identity nécessite openssl, security et codesign …) ». La campagne de masquage (#80965, #80964, #81675, #81686, #88232), la couverture des approbations sous Windows (#84428), la suppression de MCP de Blender (#83404) et l’analyse des installations de plugins de niveau 1 (#80728) sont documentées dans les notes de version.35 

  40. Évolutions de l’interface CLI au niveau du tag v2026.8.31. Dans hermes_cli/commands.py, COMMAND_REGISTRY enregistre CommandDef("palette", "Open the fuzzy command palette (also Ctrl+P)", "Info", ...) et CommandDef("status", "Show session, model, token, and context info", "Session", ...)/status est une commande de session du registre partagé, et non une commande réservée à la messagerie. _BUILTIN_SUBCOMMANDS ne contient aucune entrée approval-check (73 entrées, identiques à celles de v2026.8.27) ; le test à blanc que les notes de version de la v0.21.0 nomment hermes approval-check (#81137) correspond à hermes approvals test — l’aide de l’analyseur syntaxique dans hermes_cli/subcommands/approvals.py, au niveau du tag, indique : « Teste à blanc la décision d’approbation d’une commande (sans jamais l’exécuter) », avec --backend (« Type de backend de terminal sur lequel effectuer l’évaluation (par défaut : local … ») et --json. Les modifications de hermes_cli/_parser.py concernent uniquement hermes chat : l’aide de -q/--query indique désormais « Requête à exécuter. Sur un véritable TTY, l’invite initialise une session interactive (soumise littéralement comme premier tour) ; associée à –oneshot ou -Q, ou sur un environnement non-TTY, elle produit une réponse puis quitte. » ; un nouveau flag --oneshot précise « Avec -q/–query-file : répond à la requête puis quitte (comportement historique à requête unique), au lieu d’initialiser une session interactive. Implicite avec les entrées-sorties non-TTY et avec -Q/–quiet. » ; enfin, --max-turns indique « Nombre maximal d’itérations d’appel d’outils par tour de conversation (par défaut : 500, ou agent.max_turns dans la configuration) ». 

  41. Notes de version de Hermes Agent v0.21.1, tag v2026.9.7, date de publication annoncée : 7 septembre, publication effective le 7 septembre 2026 à 22:17 UTC. Le contenu est délibérément succinct ; textuellement : une « version corrective » qui « regroupe l’état actuel de main depuis la v0.21.0 pour les déploiements balisés et les consommateurs en aval » ; statistiques de la période au moment de la préparation : « 5 139 commits hors fusion dans 4 364 fichiers modifiés (+601 014 / -768 419) » et « 632 PR fusionnées » ; enfin, « Les notes de version complètes et organisées pour cette période seront publiées avec la v0.22.0. » Vérification dans le clone local : git rev-list --count --no-merges v2026.8.31..v2026.9.7 = 5,140 et git diff --shortstat = +601,018 / -768,423 — les chiffres du texte correspondent à l’instantané antérieur au commit de publication, avec un écart correspondant exactement à ce commit ; la plus grande période précédente entre deux tags adjacents est v2026.7.20..v2026.7.30, avec 2 790 commits hors fusion (mesure effectuée dans le clone local pour chaque paire adjacente à partir de v2026.3.12). Le contrôle doctor de l’entrée Troubleshooting se trouve dans hermes_cli/doctor_config.py:330-362 au niveau du tag (_drift_max_iterations_ghost) : une valeur obsolète de HERMES_MAX_ITERATIONS dans .env masque agent.max_turns lorsque le pont de démarrage s’interrompt à cause d’une erreur antérieure d’analyse de la configuration (problème #17534), et hermes doctor --fix supprime la ligne de .env. Vérification effectuée dans la session actuelle le 8 septembre 2026. 

  42. COMPAT_MANIFEST.md au niveau du tag v2026.9.7 (racine du dépôt, 3 869 lignes). Textuellement : « La décomposition de septembre 2026 (PR #102117) a scindé les grands modules de Hermes Agent en fichiers spécialisés » ; « Les chemins d’importation internes ne constituent pas une API stable » ; « Cette couche est temporaire et sera supprimée le 14 septembre 2026. Elle a été ajoutée dans un commit unique et sera supprimée en annulant ce commit. » ; le tableau des conséquences (avant le 14 septembre 2026 : notification jaune indiquant le plugin, la date et hermes plugins compat ; le plugin « se charge ; chaque résolution d’un ancien chemin émet une fois HermesPluginCompatWarning » ; à compter du 14 septembre 2026 : « notification rouge : plugin DÉSACTIVÉ » et « non chargé ; hermes plugins list en indique la raison » ; Desktop : « fenêtre modale affichée une seule fois ») ; l’échappatoire, textuellement : « plugins.allow_deprecated_imports: true dans config.yaml maintient le chargement des plugins concernés après cette date, jusqu’à ce que l’annulation du commit supprime effectivement les chemins. » ; décompte par type : moved-lazy 1148, import 592, restored-def 290, restored-helper 41, restored-import 17, module-stub 3, unrestorable 34 ; périmètre : uniquement les noms publics de premier niveau, « Les points de raccordement utilisés par les monkeypatchs de test ne sont pas non plus préservés. » Analyseur du vérificateur dans hermes_cli/subcommands/plugins.py:104-112 : hermes plugins compat [path] [--json], description textuelle : « Analyse statiquement chaque plugin externe activé pour détecter les importations de chemins de modules antérieurs à la décomposition (voir COMPAT_MANIFEST.md), puis affiche fichier:ligne, ancien chemin -> nouveau chemin. Renvoie le code 1 lorsqu’au moins un plugin est concerné. » Structure issue de la décomposition vérifiée au niveau du tag : agent/ = 214 modules de premier niveau + 7 sous-paquets (lsp, monitoring, pet, proxy_sources, secret_sources, transports, verify), hermes_cli/subcommands/ = 61 modules, CANONICAL_PROVIDERS dans hermes_cli/models_catalog_static.py:311 avec 39 entrées dont les slugs sont identiques à la liste de v2026.8.31 dans hermes_cli/models.py (tuple statique xai inclus ; plugins/model-providers/ contient toujours 39 dossiers), l’ancien prompt_builder.py de premier niveau a disparu (désormais agent/prompt_builder.py) et run_agent.py, à la racine, héberge toujours AIAgent

  43. docs/session-lifecycle.md au niveau du tag v2026.9.7, section « 6. Limites explicites des conversations », textuellement et dans son intégralité : « Ni l’inactivité ni le temps écoulé ne provoquent jamais la rotation d’une conversation. /new et /reset créent une limite explicite ; la compression du contexte continue de gérer les historiques longs. La configuration historique des temporisateurs est ignorée. Le type de données SessionResetPolicy existant constitue une donnée de compatibilité inactive, et non une politique d’exécution. Une suspension explicite crée toujours une limite lors du prochain tour entrant. La récupération respecte les limites finalisées explicites et historiques au lieu de les rouvrir. L’éviction limitée aux ressources et le nettoyage des éléments WebSocket orphelins permettent de reprendre les conversations. » 

  44. Autorisation de MCP au niveau du tag v2026.9.7. Analyseur syntaxique : hermes_cli/subcommands/mcp.py:55-66login (« Force la réauthentification d’un serveur MCP reposant sur OAuth ») accepte --flow, avec les choix browser/device et l’aide textuelle suivante : « Flux OAuth (remplace oauth.flow) : PKCE via le navigateur ou code d’appareil RFC 8628 » ; reauth (« Réauthentifie un serveur MCP utilisant OAuth, ou tous ces serveurs (–all) ») accepte un nom facultatif ainsi que --all. Le flux par code d’appareil a été intégré pendant cette période : commit f5afe8bd40 « feat : autoriser les serveurs MCP avec des codes d’appareil depuis CLI ». Renforcement connexe, d’après les intitulés des commits de la période : f914c9b070 « fix(mcp) : appliquer la propriété du profile tout au long des sessions OAuth » ; f94307a7f7 « fix : ignorer les caches de métadonnées OAuth de MCP mal formés » ; e3ba651b6d « fix(desktop) : relayer le OAuth de MCP via des callbacks locaux au client ». Lancement filtré par toolset : tools/mcp_tool_discovery.py:412-426 — ce filtre permet à « hermes -z -t <toolsets> » de « ne pas démarrer à froid les serveurs dont l’appelant n’a pas besoin », tandis qu’un filtre vide ignore entièrement le chargement de MCP. 

  45. Fiabilité de la délégation au tag v2026.9.7, d’après le code source de l’outil delegate. Unités d’achèvement : tools/delegate_tool_dispatch.py:326-341 (_units_of) — citation textuelle : « Désactivé par défaut (delegation.independent_completions) : l’appel entier constitue UNE unité et est renvoyé sous la forme d’un seul message. Une rafale d’achèvements par tâche (un nouveau tour chacun) fragmentait les orchestrateurs qui n’étaient pas conçus pour cela. » ; une unité est créée par group de tâches distinct (dans l’ordre de première apparition), plus une par tâche non groupée, chacune réintégrant séparément la conversation ; commit c89f3b8800 dans la période étudiée, « fix(delegation) : un achèvement par appel par défaut ; les unités en file d’attente ne restent plus bloquées ». Transfert des processus en arrière-plan : commit 3c0d90e8ef « feat(delegation) : les sous-agents transfèrent les processus en arrière-plan au parent ; les processus restants sont nommés, pas considérés comme fiables » ; au niveau du tag, tools/delegate_tool_child_run.py:744-763 (account_background_processes) enregistre dans le résultat les processus transférés, répertorie les processus encore actifs et non transférés sous orphaned_processes, ainsi que ceux terminés mais jamais lus sous unread_completions (avec la fin de leur sortie), avant que cleanup ne les arrête ; d’après la docstring, le parent « doit l’apprendre du runtime » plutôt que de croire l’affirmation « watcher en cours d’exécution » d’un enfant ; le verbe de transfert est process_manage(action="handoff") (réservé aux enfants), qui modifie ProcessSession.owner_task_id sous le verrou du registre au moyen de process_registry.transfer_ownership (tools/AGENTS.md, section Delegation, au niveau du tag). Mécanisme de repli : delegation.fallback_providers dans hermes_cli/config_defaults.py, commentaire textuel : « Pour un enfant non épinglé, null = hériter de la chaîne du parent ; [] = désactiver le repli. Un enfant épinglé par fournisseur, endpoint ou modèle ne bénéficie d’aucun repli, sauf si ce paramètre en déclare un explicitement. » ; validation de la chaîne dans tools/delegate_tool_config.py:417-425 (_resolve_child_fallback_chain) : « Les entrées mal formées sont supprimées par le normaliseur canonique. » Durabilité en cas de plantage : tools/async_delegation.py:222-246 enregistre durablement chaque enfant terminé d’une unité à plusieurs enfants encore en cours d’exécution dans la propre ligne de l’unité ("partial": True), de sorte qu’un plantage avant l’achèvement de l’unité conserve les enfants terminés. Niveau de cache : tools/delegate_tool.py:106-112 (_apply_child_cache_ttl), citation textuelle : « Un enfant délégué n’utilise jamais le niveau de cache d’une heure. » ; pour un enfant dont _cache_ttl == "1h", la valeur devient "5m"

  46. Fournisseurs et modèles au tag v2026.9.7. Niveaux Astra : hermes_cli/models_catalog_static.py:22-25openai/gpt-6-astra-fast « prix multiplié par 2, niveau prioritaire », -flex « prix multiplié par 0,5, niveau flex », auxquels s’ajoutent -pro-fast/-pro-flex ; gpt-6-astra et -pro figurent dans OPENROUTER_MODELS et non dans l’ensemble d’exclusion _OPENROUTER_ONLY, ils sont donc également proposés par Nous Portal. Accès conditionnel à Astra et 900K : hermes_cli/codex_models.py:96-101 (« L’accès à Astra dépend du compte : seul le catalogue en direct propre au compte peut l’annoncer ») et agent/model_metadata.py:1447-1462 — Codex OAuth annonce 272K, gpt-6-astra est admissible à 900K avec le commentaire « 272K annoncés ; entrée de 920 043 acceptée, 1 000 043 refusée (test en direct le 4 septembre 2026) », et CODEX_CONTEXT_VARIANT_SUFFIX = "-900k" est un « suffixe d’activation réservé au sélecteur ; jamais envoyé sur le réseau » (le contexte Astra côté OpenRouter est de 1 050 000 selon model_metadata.py:334). Nouvelles entrées du catalogue dans le même fichier statique (lignes 30 à 42) : anthropic/claude-fable-5.1, google/gemini-3.8-flash et gemini-3.7-flash, qwen/qwen3.8-max-0902 et qwen/qwen3.8-flash, meta/muse-spark-1.3 et -contributor (contexte de 1M selon agent/model_metadata.py:349). muse-image : plugins/image_gen/meta-ai/__init__.py (« Meta Model API (muse-image) : compatible OpenAI (https://api.meta.ai/v1) », avec notamment le modèle muse-image-1.0). Tavily : hermes_cli/config_defaults.py:2522-2525, citation textuelle « clé Tavily API pour la recherche et l’extraction web natives pour l’IA (facultative — le mode sans clé fonctionne lorsque Tavily est sélectionné) », outils web_search et web_extract ; le bloc web précise que Tavily « s’active sans clé via hermes tools et ne fait pas partie du ring ». Runtime llama.cpp géré : le package hermes_cli/local_runtime/ (« Runtime llama.cpp géré »), le bloc de configuration dans config_defaults.py:2327 (« binaires officiels, un serveur supervisé » ; documentation indiquée dans user-guide/local-models) et l’interface desktop apps/desktop/src/api/local-models.ts. Fournisseurs sous forme de processus externes : agent/auxiliary_client.py:4740-4799 (_resolve_external_process_branch, « fournisseurs external_process de PROVIDER_REGISTRY, servis par leur profile enregistré », indexés sur le profile enregistré « afin qu’un fournisseur ACP externe au projet » puisse être résolu). Fréquence d’actualisation du catalogue : migration de configuration 39 -> 40 dans hermes_cli/config_migrations.py:622-627 (« model_catalog.ttl_hours -> ttl_minutes (valeur par défaut : 20) », message destiné à l’utilisateur « Le catalogue de modèles s’actualise désormais toutes les 20 minutes (model_catalog.ttl_minutes) »), tandis que hermes_cli/model_catalog.py respecte l’ancien ttl_hours « uniquement lorsque ttl_minutes conserve sa valeur par défaut ». 

  47. Vague de nouveautés desktop au tag v2026.9.7. Mode commentaire : website/docs/user-guide/desktop.md au niveau du tag, extraits textuels essentiels : « cliquez sur Annotate dans la barre du navigateur de prévisualisation, puis cliquez sur n’importe quel élément de la page en direct (ou tracez un cadre par glissement) et saisissez une note ; chaque commentaire enregistré reste affiché sous forme d’épingle numérotée sur la page » ; « L’enregistrement d’une épingle n’envoie jamais de tour » ; « Add N comments joint une capture d’écran recadrée pour chaque épingle ainsi qu’un bref prompt nommant chaque commentaire dans le champ de rédaction » ; « Chaque commentaire d’élément contient son sélecteur CSS, son balisage et les styles calculés qui influencent la mise en page, afin que l’agent puisse retrouver l’élément dans votre code source au lieu de le deviner à partir de l’image » ; « Les valeurs des champs de mot de passe et des champs masqués, ainsi que tout attribut ressemblant à une clé ou à un token, sont expurgés de la page avant que le balisage ne la quitte » ; « Les lots plus importants sont regroupés selon la partie de la page où se trouve chaque commentaire, de sorte qu’une vingtaine de commentaires deviennent quelques blocs de travail plutôt qu’une tâche chacun » ; « comme les groupes correspondent à des sous-arbres DOM distincts, ils affectent généralement des fichiers différents, ce qui permet de les confier sans risque à des workers parallèles ». Commits de la période étudiée : 10f2a20966 « feat(desktop) : ajout du mode commentaire au navigateur intégré à l’application » ; e4bda3ff77 « feat(desktop) : les commentaires du navigateur incluent le sélecteur, le balisage et les styles de l’élément » ; contrôles de session 8cb2bcc8c1 « exposer des contrôles de session structurés » + bfddf556bf « charger les contrôles de session structurés » + dffd8d62c2 « ajouter des contrôles d’automatisation de session » ; 6b1e12c7f4 « création de sessions par glisser-déposer depuis New session, project + controls et les groupes de profiles » ; 9186e3ebc5 « vue d’importation de sessions pour les transcriptions d’agents de programmation tiers » ; a1c25d393a « catalogue intégré de skills facultatifs dans Capabilities → Skills avec installation en un clic » ; locale russe a922dad9d8 « feat(desktop) : ajout de la locale russe (ru) » + 269e5bde33 (enregistre ru dans les tests et la documentation des locales ; apps/desktop/src/i18n/ru.ts apparaît dans la période étudiée, tandis que le dossier locales/ du CLI reste à 17 catalogues). display.resume_last_session : hermes_cli/config_defaults.py:777, valeur par défaut True, commentaire textuel « Desktop rouvre la dernière conversation/page lors d’un démarrage à froid (également dans Settings → Appearance). » Consentement relatif au profile réel : apps/desktop/src/app/chat/right-rail/real-profile-consent-dialog.tsx (« Invite de consentement affichée à la première ouverture pour la navigation avec le profile réel », présentée lorsqu’un panneau Browser s’ouvre alors que browser.use_real_profile est désactivé ; l’acceptation écrit dans la même clé de configuration que le bouton Capabilities, « Not now » masque l’invite pendant l’exécution en cours de l’application et « Don’t show again » conserve ce choix d’un lancement à l’autre). 

  48. Notes de version de Hermes Agent v0.20.3 (tag v2026.8.16.2, date de sortie annoncée : 16 août ; publication le 17 août 2026) et notes de version de v0.20.4 (tag v2026.8.18, 18 août 2026) ; toutes deux récupérées via la GitHub API le 20 août 2026 (prerelease: false). Citation textuelle de v0.20.3 : « la migration MCP 2.x SDK et la prise en charge du protocole sans état du 28 juillet 2026, le plugin Bot Mode (hermes-bots) inclus avec le protocole central de coéquipiers, le plugin de fournisseur CommandCode, le renforcement de la propriété du runtime Python des sous-processus (isolation de PYTHONHOME/PYTHONPATH), les contrats du runtime Cua Driver 0.20 pour l’utilisation d’un ordinateur. » Citation textuelle de v0.20.4 : « les travaux sur les surfaces vitrées/translucides de l’application desktop (verre mat, sélecteur de givre, présélection macOS), la barre latérale à onglets SESSIONS|BOTS avec masquage/affichage par bot, […] l’analyse consultative NVIDIA SkillEvaluator Tier 1 lors de l’installation de skills (contrôles de licence et de sécurité). » Pour les deux versions : « Les notes de version complètes et soigneusement sélectionnées pour cette période accompagneront v0.21.0. » 

  49. Notes de version d’Hermes Agent v0.20.0, « The Herald Release », tag v2026.8.3, 3 août 2026, avec les versions de stabilisation v2026.8.13 et v2026.8.16. Extraits textuels de la version : « Node 26 requis pour tous les programmes d’installation, de réparation et de mise à niveau » ; « les canaux brew + pip/PyPI wheel ont été abandonnés (le programme d’installation shell, Docker et Nix sont les canaux pris en charge) » ; « limite d’itérations par défaut : 90 → 500 » ; « source claude-marketplace supprimée ». La version minimale de Node a été confirmée indépendamment dans le code source du programme d’installation, dans scripts/install.shNODE_VERSION="26" et la vérification « Node.js $(node –version) est trop ancien (Hermes nécessite Node >=26) » — dont le commentaire d’en-tête documente également la commande canonique sur une seule ligne curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash. Attention à cette contradiction : la page d’installation de la documentation indique toujours Node v22 et n’est plus à jour par rapport à ces deux sources. Niveaux de prise en charge des plateformes d’après platform support ; sources des skills et taps par défaut d’après skills ; le total de 28 plateformes a été obtenu en comptant les entrées du tableau comparatif de la page messaging, qui ne publie aucun total officiel. Toutes les sources ont été consultées et vérifiées le 16 août 2026. 

  50. Notes de version d’Hermes Agent v0.19.0, « The Quicksilver Release », tag v2026.7.20, 20 juillet 2026 ; dernière version au 21 juillet 2026. Statistiques depuis la v0.18.0 : environ 2 245 commits, environ 1 065 PR fusionnées, environ 3 300 issues clôturées et plus de 450 contributeurs de la communauté. Axe principal des performances : réduction d’environ 80 % du TTFT au premier tour, avec un délai à froid entre soumission et envoi passé d’environ 4,3 s à environ 0,9 s dans CLI, le gateway, la TUI, l’application desktop et cron (PR #59332) ; raisonnement diffusé en direct par défaut avec display.show_reasoning activé et affichage de la réponse token par token (PR #59389) ; vague d’accélérations d’environ 20 PR pour l’application desktop, dont un rendu Markdown en streaming 14 fois plus rapide ; rendu Markdown incrémentiel dans la TUI. Les installations via pip/Homebrew sont désormais obsolètes et n’affichent plus qu’un avertissement « ancienne méthode non prise en charge », la suppression de la publication sur PyPI/Homebrew étant prévue (PR #57225). Interface SecretSource extensible avec fournisseurs Bitwarden et 1Password, références op://, prise en charge de plusieurs coffres, ordre de priorité déterministe et provenance indiquée pour chaque variable (PR #59498). Approbations intelligentes par défaut (évaluateur LLM indépendant pour chaque commande signalée), règles de refus définies par l’utilisateur et maintenues même en mode YOLO, /deny <reason> (PRs #62661, #59164, #54518) ; réintégration de l’escalade d’approbation pre_tool_call des plugins (PR #60504). Facturation dans le terminal avec /subscription et /topup, ainsi qu’un onglet de facturation dans l’application desktop (PR #51639). Fichiers de transcription en direct des subagents et délégation durable en arrière-plan (PRs #67479, #63494) ; registre des obligations de livraison dans state.db (PR #67181) ; max_async_children rendu obsolète au profit de limites unifiées de concurrence pour la délégation (PR #56955). Routage du gateway selon les profiles, avec GATEWAY_MULTIPLEX_PROFILES, et index de routage déplacé vers state.db, sessions.json devenant un miroir facultatif pour les anciennes installations (PRs #64835, #65700, #60589, #59203). Fournisseurs et modèles : Fireworks AI intégré nativement à la deuxième position du sélecteur (PR #62593), DeepInfra, Upstage Solar, prise en charge complète de GPT-5.6 Sol/Terra/Luna et Pro (PR #61616), disponibilité générale de grok-4.5, kimi-k3 (kimi-k2.x abandonné), câblage complet de Claude Sonnet 5, ainsi que enabled: false par fournisseur et excluded_providers (PR #67971) ; niveaux d’effort de raisonnement max/ultra, avec substitutions par modèle et par emplacement MoA, ainsi que /reasoning limité à la session (PRs #62650, #64458). CLI/MCP : hermes sessions export aux formats Markdown/Quarto/HTML/prompt-only/HF-trace avec --redact (PR #60186), /model --once (PR #67113), invocations empilées de slash-skills (PR #57987), --safe-mode, hermes config get/unset (PR #65540), véritable mode headless avec hermes serve (PR #55923), convention de nommage MCP mcp__server__tool (PR #52750). Le discours marketing de la version a été exclu ; les éléments annulés pendant cette période (pare-feu de sortie iron-proxy, skill dynamic-workflow et actions de fournisseur de mémoire) n’ont délibérément pas été présentés comme livrés. Vérification effectuée au cours de la session le 21 juillet 2026. 

  51. Tag de publication d’Hermes Agent v0.18.1 et tag de publication de la v0.18.2, 7–8 juillet 2026. Lots de correctifs d’infrastructure sur la branche v0.18 ; le principal correctif de la v0.18.2 retire le verrouillage de la version de WhatsApp Baileys afin d’utiliser la 7.0.0-rc13 et d’assurer la fiabilité des builds Docker. Les deux périodes de correctifs sont regroupées et intégralement documentées dans les notes de version de la v0.19.0. 

  52. Notes de version d’Hermes Agent v0.15.1 et notes de version d’Hermes Agent v0.15.2. La v0.15.1 (29 mai 2026 à 01:12 UTC) est le correctif Velocity publié le jour même : correction de la boucle de rechargement avec erreur 401 du dashboard en mode loopback ; Docker exige désormais explicitement HERMES_DASHBOARD_INSECURE=1 ; les commandes MCP sans chemin (npx, npm, node) sont résolues dans les conteneurs Docker ; les pastilles de source et la barre latérale des catégories ont été restaurées sur la page Skills ; les workers Kanban répondent à SIGTERM ; le catalogue Skills.sh est passé de 858 à 19 932 entrées grâce au sitemap. 28 commits, 21 PR fusionnées et 9 contributeurs. La v0.15.2 (29 mai 2026 à 13:37 UTC) est un correctif consacré exclusivement au packaging : il inclut les manifestes plugin.yaml dans les distributions wheel et sdist afin que les installations depuis PyPI fonctionnent sans chargement séparé du code source. 4 contributeurs. 

  53. Notes de version d’Hermes Agent v0.15.0 et page des versions d’Hermes Agent. « The Velocity release », tag v2026.5.28. Statistiques : 1 302 commits, 747 PR fusionnées et 321 contributeurs de la communauté. Réduction de 76 % de run_agent.py grâce à une refactorisation (de 16 083 à 3 821 lignes réparties dans 14 modules). Ajout de la plateforme Kanban multi-agent (décomposition automatique, topologie en essaim, choix du modèle par tâche, tâches planifiées et gestion des worktrees). Refonte de session_search, désormais 4 500 fois plus rapide après la suppression de la dépendance LLM. Défense contre les attaques par prompt de classe Brainworm à trois points de contrôle de sécurité. L’intégration de Bitwarden Secrets Manager remplace plusieurs clés API propres à chaque fournisseur par un seul token d’amorçage. Les bundles de skills permettent de charger plusieurs skills avec une seule slash command. Orchestrateur de sessions dans la TUI pour gérer plusieurs sessions depuis une même fenêtre de terminal. Prise en charge de Krea 2 (Medium/Large) et du plugin FAL pour la génération d’images. La nouvelle vague d’intégration de xAI ajoute un plugin de recherche web, OAuth en amont, la détection des modèles abandonnés et des pauses TTS naturelles dans la sortie vocale. Une version corrective référencée sur GitHub résout la boucle de rechargement avec erreur 401 du dashboard, impose explicitement la variable d’environnement HERMES_DASHBOARD_INSECURE=1 pour utiliser l’option --insecure de Docker, corrige la résolution des commandes MCP sans chemin (npx, npm, node) dans Docker, rétablit le rendu de la page Skills, assure la gestion de SIGTERM par les workers Kanban et rend accessible l’intégralité des 19 932 entrées du catalogue Skills via le sitemap. Elle comprend également un petit lot de correctifs concernant la livraison des fichiers .md, la sécurité des sondes du gateway, la rédaction des URL web, la capacité de vision des workers Kanban et les valeurs par défaut des observations rétrospectives. 

  54. Notes de version de Hermes Agent v0.11.0. 23 avril 2026. « La version Interface » — réécriture complète en React/Ink du CLI interactif avec un backend Python JSON-RPC (tui_gateway) ; architecture de transport modulaire (agent/transports/) ; prise en charge native d’AWS Bedrock via l’API Converse ; cinq nouvelles voies d’inférence (NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth, Vercel ai-gateway) ; GPT-5.5 via Codex OAuth ; QQBot comme 17e plateforme de messagerie, avec configuration par scan d’un QR code ; surface de plugins étendue (commandes slash, routage des outils, blocage de l’exécution, transformation des résultats) ; /steer <prompt> permet d’orienter l’agent en cours d’exécution en injectant du contexte après le prochain appel d’outil sans perturber le cache de prompts ; hooks shell pour les événements du cycle de vie sans plugins Python ; mode de livraison directe par webhook qui transmet les payloads directement à une conversation de la plateforme ; délégation plus intelligente avec des rôles d’orchestrateur, une profondeur de spawn configurable et une coordination des fichiers ; système de plugins pour le dashboard, changement de thème en direct, i18n et adaptation aux appareils mobiles. Statistiques depuis la v0.9.0 : 1 556 commits · 761 PR fusionnées · 1 314 fichiers modifiés · 224 174 insertions · 29 contributeurs de la communauté. Voir également : tag de version GitHub de Hermes Agent v0.11.0

  55. Notes de version de Hermes Agent v0.10.0. 16 avril 2026. « La version Tool Gateway ». Intégration de Nous Tool Gateway pour les abonnés payants de Nous Portal — accès géré à la recherche web Firecrawl, à la génération d’images FAL / FLUX 2 Pro, à OpenAI TTS et à l’automatisation de navigateur Browser Use, sans clés API supplémentaires. Activation individuelle de chaque outil via le nouveau champ de configuration use_gateway. Lors de l’exécution, le gateway est privilégié par rapport aux clés API directes lorsque les deux sont configurés. Intégration complète avec hermes tools et hermes status. Remplace la variable d’environnement obsolète HERMES_ENABLE_NOUS_MANAGED_TOOLS. Implémentation par @jquesnelle (emozilla). Le CLI de Hermes Agent reste sous licence MIT et entièrement open source ; le gateway constitue une intégration au produit d’abonnement Portal existant, et non un paywall sur le CLI. Voir également : Nous Portal pour connaître les tarifs d’abonnement et s’inscrire. 

NORMAL hermes.md EOF