Hermes Agent : la référence du praticien (2026)
# Une référence pratique sur Hermes Agent, l’agent d’IA open-source auto-amélioré de Nous Research : authentification des fournisseurs et OAuth, fichiers de configuration, système de skills et exécution comme passerelle de messagerie multiplateforme.
TL;DR : Hermes Agent est un agent IA open source auto-améliorant de Nous Research. Il fonctionne comme une CLI et comme un gateway de messagerie multiplateforme, stocke une identité durable et une mémoire persistante sur disque, agrège des skills qui s’améliorent avec l’usage, et fonctionne avec n’importe quel fournisseur LLM compatible 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 ajoute SuperGrok OAuth avec un contexte grok-4.3 1M, un proxy local compatible OpenAI pour les fournisseurs OAuth (
hermes proxy),x_searchen prise en charge native, l’installation via PyPI, l’installation paresseuse des dépendances, 22 plateformes de messagerie avec LINE et SimpleX Chat,/handoff, les diagnostics sémantiques LSP après écriture,video_generateunifié,computer_usevia cua-driver pour les fournisseurs non-Anthropic, une bêta Windows native, ainsi que la clôture de 12 P0 / 50 P1.19 La partie la plus difficile pour la plupart des nouveaux utilisateurs est l’authentification auprès des fournisseurs : Hermes prend en charge environ 20 fournisseurs natifs plus des endpoints personnalisés, et trois chemins d’authentification distincts (clé API dans.env, OAuth viahermes model, ou endpoint personnalisé dansconfig.yaml). Le modèle d’authentification est la première chose à apprendre : tout le reste dépend du fournisseur résolu.
Hermes Agent fonctionne comme un runtime d’agent complet, pas comme une simple surcouche de chat. Il lit votre système de fichiers, exécute des commandes dans des backends sandboxés, extrait des données du web, lance des subagents, exécute des tâches cron planifiées, parle à Telegram/Discord/Slack/WhatsApp/Signal/Email depuis un processus gateway unique, et crée ses propres skills à partir de l’expérience.1 La CLI est une interface terminal construite au-dessus d’une boucle de conversation dans run_agent.py ; le gateway est un processus longue durée qui route les messages des plateformes de messagerie vers cette même boucle de conversation.3
La différence entre un usage occasionnel et un usage expert de Hermes tient à cinq systèmes. Maîtrisez-les et Hermes devient un multiplicateur de force :
- Résolution des fournisseurs : comment les flux d’authentification correspondent aux appels API
- Hiérarchie de configuration :
config.yaml+.env+auth.json+SOUL.md+AGENTS.md - Système Tool + toolset : ce que l’agent peut faire, contrôlé par plateforme
- Système de skills : mémoire procédurale que l’agent crée et fait évoluer
- Gateway + cron + profiles : exécuter Hermes là où vous vivez, pas seulement là où vous vous trouvez
Points clés
- L’authentification des fournisseurs suit trois chemins, pas un seul. Clé API dans
.env, OAuth viahermes model/hermes auth, ou endpoint personnalisé dansconfig.yaml. Choisissez le chemin qui correspond à votre fournisseur, pas celui qui vous semble familier. - Changer de fournisseur se fait avec une seule commande.
hermes modelvous guide de manière interactive à travers chaque fournisseur pris en charge, y compris les connexions OAuth, et/model provider:modelchange de modèle en cours de session sans perdre l’historique.2 - Deux fichiers constituent la surface de configuration modifiable par l’utilisateur.
~/.hermes/config.yamlcontient les paramètres et~/.hermes/.envcontient les secrets.auth.json,SOUL.md,MEMORY.mdetskills/sont gérés directement par Hermes — vous pouvez modifierSOUL.mdà la main, mais le reste est manipulé par l’agent lui-même.4 - Hermes est le successeur de OpenClaw. Si vous migrez,
hermes claw migrateimporte automatiquement plus de 30 catégories d’état.5 - La qualité de service dépend de votre modèle auxiliaire. Vision, résumé web, compression et vidage de mémoire utilisent tous un LLM auxiliaire distinct. Par défaut, il s’agit de Gemini Flash via auto-détection (OpenRouter → Nous → Codex) — si aucun de ces fournisseurs n’est configuré, ces fonctionnalités se dégradent silencieusement jusqu’à ce que vous pointiez les emplacements auxiliaires vers votre fournisseur principal.4
Ce que change la v0.14
La v0.14.0 concerne moins une fonctionnalité phare qu’une réduction des frictions de configuration, tout en élargissant les environnements où Hermes peut fonctionner.19 Les principaux changements opérationnels :
- L’installation et le démarrage sont plus légers.
pip install hermes-agentfonctionne depuis PyPI, les adaptateurs lourds s’installent paresseusement à la première utilisation, et le chemin de lancement diffère assez de travail pour réduire le démarrage à froid d’environ 19 secondes. - Les abonnements peuvent devenir des endpoints API locaux.
hermes proxytransforme les fournisseurs adossés à OAuth, comme Claude Pro, ChatGPT Pro et SuperGrok, en endpoint local compatible OpenAI pour des outils comme Codex, Aider, Cline et Continue. - La portée du gateway s’étend. LINE et SimpleX Chat portent le nombre de plateformes à 22, Microsoft Teams est câblé de bout en bout, le backfill de l’historique Discord est activé par défaut, et les prompts
clarifyTelegram/Discord utilisent désormais des boutons natifs. - La vérification au moment de l’écriture progresse. Après les modifications, Hermes peut afficher des résumés de mutations de fichiers par tour et des diagnostics sémantiques de serveur de langage avant le tour suivant, ce qui le rapproche d’un travail d’agent fondé sur les preuves.
- Les outils desktop et média s’élargissent.
computer_usefonctionne via cua-driver pour les fournisseurs non-Anthropic,video_generateest unifié derrière des backends enfichables, etvision_analyzeenvoie les pixels bruts aux modèles qui peuvent réellement voir.
Chaque section ci-dessous s’appuie sur la documentation upstream à l’adresse hermes-agent.nousresearch.com/docs et sur l’arborescence source à l’adresse github.com/NousResearch/hermes-agent. Chaque affirmation factuelle comporte une note de bas de page pointant vers la page upstream précise dont elle provient.
Choisissez votre chemin
| Ce dont vous avez besoin | Où aller |
|---|---|
| Installer Hermes | Installation — installateur en une ligne ou étapes manuelles |
| Vous connecter à un fournisseur | Authentification et fournisseurs — la section pour laquelle vous êtes ici |
| Changer de modèle en cours de session | La commande hermes auth et Endpoints personnalisés et auto-hébergés pour la syntaxe /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 | Messaging Gateway — Telegram, Discord, Slack, WhatsApp, Signal, Google Chat, LINE, SimpleX Chat (22 au total) |
| Écrire ou installer une skill | Système de skills — divulgation progressive + hub de skills |
| Référence détaillée de chaque commande CLI | Continuez la lecture — et créez un lien direct vers Commandes CLI |
Fonctionnement de Hermes : le modèle mental
Hermes est structuré autour d’une boucle de conversation unique que tout point d’entrée peut invoquer. Les points d’entrée sont le CLI (cli.py), le gateway de messagerie (gateway/run.py), l’adaptateur ACP pour l’intégration dans l’éditeur, le batch runner et un serveur API.3 Tous appellent au final AIAgent.run_conversation() dans run_agent.py, qui :
- Construit le prompt système à partir de
SOUL.md,MEMORY.md,USER.md, des skills, des fichiers de contexte et des consignes d’outils viaprompt_builder.py3 - Résout le provider d’exécution via
runtime_provider.py— c’est l’étape qui choisit votre auth, l’URL de base et le mode API3 - Appelle le provider avec l’un des trois modes API :
chat_completions,codex_responsesouanthropic_messages3 - Transmet tous les appels d’outils renvoyés via
model_tools.pyet le registre central des outils (tools/registry.py)3 - Boucle jusqu’à ce que le modèle produise une réponse finale, puis persiste la session dans SQLite avec FTS53
Comprendre cette boucle est essentiel, car chaque fonctionnalité — personnalités, mémoire, skills, compression, fallback — se rattache à l’une de ces étapes. Quand vous lisez une clé de config en vous demandant ce qu’elle fait, la réponse est généralement : « c’est un réglage de l’étape 1, 2, 3 ou 4 de la boucle ci-dessus ».
Noyau indépendant de la plateforme. Une seule classe AIAgent sert le CLI, le gateway, ACP, le batch et le serveur API. Les différences de plateforme résident dans le point d’entrée, pas dans l’agent lui-même.3 C’est pourquoi les mêmes slash commands fonctionnent dans le terminal et dans Telegram : elles sont dispatchées depuis un COMMAND_REGISTRY partagé dans hermes_cli/commands.py.6
La structure des dossiers est le système. Hermes stocke tout sous ~/.hermes/ (ou $HERMES_HOME pour les profils non 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 a un rôle précis ; aucun ne se recoupe. Si vous cherchez « où Hermes stocke X », c’est dans l’un de ceux-là.
Nouveautés de v0.18.0 (The Judgment Release)
Hermes Agent v0.18.0 (tag v2026.7.1, 1 juillet 2026) doit son nom au jugement : l’agent vérifie son propre travail au lieu d’affirmer sa réussite, et le raisonnement d’ensemble devient réellement inspectable. Cette version clôt aussi tout le backlog P0/P1 — environ 692 éléments de priorité maximale résolus en douze jours.22
- Mixture-of-Agents comme modèle de première classe. MoA peut désormais être sélectionné comme n’importe quel autre modèle dans toutes les interfaces, et le raisonnement d’ensemble est visible : la sortie complète de chaque modèle de référence s’affiche dans son propre bloc libellé, avec streaming en direct de la réponse — vous pouvez regarder l’ensemble réfléchir au lieu de recevoir une réponse fusionnée opaque.22
- Contrats d’achèvement pour
/goal. L’agent vérifie son propre travail en lançant les checks du projet avant de signaler qu’un objectif est terminé, plutôt que de revendiquer un succès — le jugement appliqué à lui-même.22 /learn— transformer n’importe quelle description en skill. Transformez un workflow en skill réutilisable en le décrivant ; les skills générés respectent automatiquement les conventions CONTRIBUTING.md du repo.22- Timeline
/journey. Un historique visuel de la mémoire et des skills dans le temps, avec édition, plus un graphe de mémoire sur desktop.22 - Diffusion de subagents en arrière-plan. Déléguez plusieurs tâches qui s’exécutent simultanément sans bloquer la conversation — le subagent unique en arrière-plan de v0.17.0 devient une flotte.22
- Desktop Projects. Des Projects de codage de première classe avec un modèle d’organisation projet/repo/lane.22
- Gateway scale-to-zero. Les gateways peuvent se mettre en veille lorsqu’ils sont inactifs et coordonner les drains pour des déploiements fluides — utile pour toute personne qui exécute Hermes comme service toujours actif.22
- Prise en charge de Google Vertex AI. Accès à Gemini via des comptes de service GCP avec rafraîchissement automatique des tokens OAuth2, qui rejoint le catalogue des providers.22
- Commande d’édition
/prompt. Ouvre$EDITORpour composer des prompts multiligne au lieu de lutter avec la ligne de saisie.22
Si vous mettez à niveau depuis v0.17.x, rien ici ne casse le CLI. Les principales raisons de passer à cette version sont les contrats d’achèvement (des objectifs qui se vérifient eux-mêmes), MoA de première classe avec ensembles inspectables, et /learn pour capturer des skills.
Nouveautés de v0.17.0 (The Reach Release)
Hermes Agent v0.17.0 (tag v2026.6.19, 19 juin 2026) doit son nom à l’étendue que l’agent atteint désormais — nouveaux canaux de messagerie, nouveaux providers de modèles, et contrôle plus approfondi du desktop et du dashboard. Elle s’ajoute à v0.16.x ; la surface CLI reste inchangée.21
- Nouveaux canaux de messagerie. iMessage fonctionne désormais sans relais Mac via Photon Spectrum (device-code OAuth,
hermes photon login) ; la API WhatsApp Business Cloud est un adaptateur Meta officiel qui remplace l’obligation d’un processus bridge ; SimpleX gagne les groupes, les pièces jointes natives, le regroupement de texte et l’acceptation automatique ; et Raft arrive comme plugin de plateforme intégré avec une conception de wake-channel privacy-by-contract.21 - Nouveaux modèles et providers. Le catalogue ajoute
z-ai/glm-5.2(contexte 1M),anthropic/claude-fable-5,laguna-m.1,nemotron-3-ultraetgrok-composer-2.5-fast(le modèle de Cursor via OAuth xAI, contexte 200k). Le modèle xAI par défaut passe àgrok-build-0.1, et les modèles adaptatifs Anthropic suivent désormais le contrat de réflexion moderne (ils n’envoient jamais de champreasoning).21 - Desktop et dashboard. Desktop ajoute des subagents en arrière-plan avec streaming en direct via des « watch-windows » de l’activité déléguée (
delegate_task(background=true)), un sélecteur de modèle Composer, des raccourcis clavier réassignables, des notifications OS natives, des brouillons de composer par thread, des thèmes VS Code Marketplace, ainsi qu’une interface en japonais et chinois traditionnel. Le dashboard ajoute un constructeur de profil complet (modèle/skills/MCPs sans modifierconfig.yaml), un sélecteur de profil global, un Skills Hub remanié avec scan de sécurité, des Automation Blueprints (templates paramétrés couvrant formulaire, slash command, conversation et docs), et une connexion sécurisée qui renvoie 401 derrière la barrière OAuth.21 - Skills et outils.
image_generatepeut désormais éditer et transformer une image source, pas seulement en créer une de zéro, sur chaque provider d’image pris en charge ; l’outilmemorygagne un tableauoperationspour l’ajout/le remplacement/la suppression atomiques en lot dans un seul appel ; un nouveau skillsimplify-codelance une passe parallèle de revue et nettoyage par trois agents, encadrée par un niveau de risque de type Chesterton’s-Fence ; et un booléenwrite_approvalremplace lewrite_modeà trois états.21 - Architecture. Les subagents en arrière-plan renvoient immédiatement un handle et réinjectent leur résultat comme nouveau tour ; un gestionnaire d’élicitation MCP permet une confirmation au milieu d’un appel d’outil, et les outils MCP à connexion tardive sont exposés entre les tours (cache-safe) ; cron devient un CronScheduler enfichable avec un provider Chronos managed-cron ; et un nouveau scope Managed (
/etc/hermes) permet à un administrateur d’épingler une config immuable pour l’utilisateur, avec en plus un relais Gateway-Gateway pour les topologies multi-gateway.21 - Nouvelles commandes.
/version,/billing(facturation interactive dans le terminal),hermes photon login(auth iMessage) ethermes curator run --consolidate— la consolidation est désormais opt-in, ce qui fait que la curation de routine en arrière-plan ne coûte aucun token.21 - Sécurité. v0.17.0 ferme un contournement de denylist par shell-escape, échoue de manière fermée en cas de modules d’approbation manquants et d’adaptateurs de gateway own-policy, assainit l’environnement pour les subprocesses de scripts de jobs cron, masque les secrets dans les dumps de debug de requêtes, analyse les configs stdio MCP à la recherche de motifs d’exfiltration, et met à jour urllib3 et PyJWT pour corriger des CVE.21
Si vous mettez à niveau depuis v0.16.x, rien ici ne casse le CLI ; il s’agit de nouveaux canaux, modèles et surfaces autour du même agent. iMessage sans relais, les adaptateurs WhatsApp officiels et le scope Managed administrateur sont les principales raisons de passer à cette version.
Nouveautés de la v0.16.0 (The Surface Release)
Hermes Agent v0.16.0 (tag v2026.6.5, 5 juin 2026) doit son nom aux nouvelles surfaces qu’elle place devant l’agent CLI-first. Le point essentiel : Hermes n’est plus limité au terminal.20
- Application desktop 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 vous donne 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 à un gateway Hermes distant via un WebSocket sécurisé, avec authentification par OAuth ou nom d’utilisateur/mot de passe, des hôtes distants par profile et des sessions multi-profile simultanées reliées par des références@sessioninter-profile. L’interface desktop inclut aussi une traduction complète en chinois simplifié (简体中文) via une couche i18n typée (display.language; l’anglais reste la langue par défaut).20 - Panneau d’administration dans le navigateur. Le dashboard web local est passé d’une vue d’état à un panneau d’administration complet : catalogue MCP avec bascules d’activation/désactivation, gestion des identifiants, création de webhooks et de hooks, configuration de la mémoire, contrôles de gateway, et page System avec vérification avant mise à jour plus Debug Share en un clic. Une nouvelle page Channels configure depuis le navigateur toutes les plateformes de messagerie gateway (Telegram, Discord, Slack et les autres). L’authentification est désormais modulaire : connexion par nom d’utilisateur/mot de passe, fournisseur OIDC auto-hébergé générique,
hermes dashboard registerpour un client OAuth auto-hébergé, et rotation des sessions par refresh-token.20 - Nouveaux CLI et nouvelles commandes slash.
/undo [N]sauvegarde les N derniers tours utilisateur avec préremplissage et suppression douce, et fonctionne dans le CLI, le TUI et sur les plateformes de messagerie. Une interface par défaut configurable (clioutui) arrive avec une option de remplacement--cli; le TUI reçoit une commande/modelunifiée et une surcouche Sessions.hermes portalest un alias lisible pour le flux d’onboarding Nous Portal, avec de nouveaux parcours de première exécution Quick Setup et Full Setup, et deux diagnostics arrivent :hermes prompt-sizeethermes sessions optimize.20 - Nouveaux modèles et providers. Le sélecteur ajoute
deepseek-v4-flash,MiniMax-M3(contexte 1M, providers MiniMax natifs),qwen3.7-plus(Nous + OpenRouter) etgemini-3.5-flash(Gemini OAuth + clé API). Un provider xAI Grok OAuth de premier rang rejoint le lanceur desktop, le sélecteur de modèles devient fuzzy sur toutes les surfaces, les providers multi-endpoint sont regroupés sur une seule ligne, et l’actualisation du catalogue passe d’une fréquence quotidienne à horaire.20 - Skills allégés et divulgation progressive. Le jeu de skills par défaut a supprimé les skills redondants et morts (Spotify est passé à un plugin natif, Linear à
hermes mcp install linear, et plusieurs entrées obsolètes ont été retirées), a déplacé davantage d’éléments dans les options, et a ajouté une barrière de pertinence en frontmatterenvironments:(kanban/docker/s6) qui garde les skills propres à un contexte hors de l’index jusqu’à ce qu’ils soient demandés.NVIDIA/skillsest désormais un tap Skills Hub de confiance par défaut aux côtés d’OpenAI, Anthropic et HuggingFace. MCP et les outils de plugin ont reçu une divulgation progressive (à périmètre limité) des outils, et un bug MCP qui signalait à tort un succès OAuth alors qu’aucun token n’avait été obtenu est corrigé.20 - Sécurité. v0.16.0 épingle Starlette corrigé (≥1.0.1) pour CVE-2026-48710 (BadHost), déplace les vérifications d’URL SSRF hors de l’event loop dans les chemins async, retire le bearer token d’inférence Bedrock de l’environnement des sous-processus, ajoute
bws_cache.jsonau garde-fou de lecture file-safety, ajoutedocker restart/stop/killà la liste des motifs dangereux, et assainit l’unicode invisible dans le contenu de skills vérifié. La release a clôturé 2 problèmes P0 et 62 problèmes P1, dont 16 marqués sécurité.20
Si vous mettez à niveau depuis v0.15.x, rien de tout cela ne constitue un changement cassant pour le CLI lui-même ; ce sont des surfaces et providers ajoutés autour du même agent. L’application desktop et le panneau d’administration sont la raison de mettre à niveau si vous voulez exécuter Hermes pour des utilisateurs hors terminal ou administrer un gateway distant depuis un navigateur.
Installation
L’installateur en une ligne reste le parcours guidé pour la plupart des utilisateurs. Il prend en charge Python, uv, Node.js, ripgrep, ffmpeg, le clone du repo, l’environnement virtuel et la commande globale hermes.7 v0.14.0 fournit aussi un vrai package PyPI, donc pip install hermes-agent est désormais une installation directe viable lorsque vous contrôlez déjà l’environnement Python.19
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
pip install hermes-agent
hermes
Fonctionne sur Linux, macOS, WSL2 et Android/Termux (l’installateur détecte automatiquement Termux et bascule vers un bundle Android testé).7 v0.14.0 ajoute la prise en charge native de Windows en bêta précoce via un installateur PowerShell, mais WSL2 reste la recommandation la plus sûre pour un usage en production tant que le parcours Windows n’a pas mûri.19
Une fois terminé :
source ~/.bashrc # or ~/.zshrc
hermes # Start chatting
Le seul prérequis est git. L’installateur provisionne automatiquement Python 3.11 via uv (sans sudo), Node.js v22 (pour l’automatisation de navigateur et le bridge WhatsApp), ripgrep et ffmpeg.7
Vérifier l’installation
hermes version # Check version
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 exactement ce qui manque et comment le corriger.7 hermes dump est la commande de diagnostic à coller dans une issue GitHub ou un fil Discord lorsque vous demandez de l’aide : c’est un résumé en texte brut de toute votre configuration, avec les secrets masqués.8
Installation manuelle
Si vous avez besoin d’un contrôle total — version Python personnalisée, extras spécifiques, intégration Nix/NixOS — le flux manuel est documenté étape par étape dans le guide d’installation upstream.7 Principaux extras optionnels que vous pouvez combiner avec uv pip install -e ".[<extras>]" :
| Extra | Ce qu’il ajoute |
|---|---|
all |
Tout ce qui suit |
messaging |
Gateway Telegram et Discord |
cron |
Analyse des expressions cron |
cli |
Interface de menu terminal pour l’assistant de configuration |
modal |
Backend d’exécution cloud Modal |
voice |
Entrée microphone CLI + lecture audio |
tts-premium |
Voix premium ElevenLabs |
honcho |
Mémoire AI-native (intégration Honcho) |
mcp |
Prise en charge de Model Context Protocol |
homeassistant |
Intégration Home Assistant |
acp |
Prise en charge de l’intégration éditeur ACP |
slack |
Messagerie Slack |
pty |
Prise en charge du terminal PTY (outils CLI interactifs) |
dev |
pytest et utilitaires de test |
termux |
Bundle Android testé (inclut cron, cli, pty, mcp, honcho, acp) |
La commande d’installation Termux est différente — elle utilise pip avec un fichier de contraintes, pas uv pip :
python -m pip install -e ".[termux]" -c constraints-termux.txt
C’est parce que .[all] sur Android récupère faster-whisper via l’extra voice, qui dépend de roues ctranslate2 non publiées pour Android.7
Authentification et providers
Hermes prend en charge environ 19 providers de premier ordre, ainsi que des endpoints personnalisés, et trois parcours d’authentification distincts. Voici toute la surface d’authentification, organisée par parcours afin que vous puissiez trouver celui qui correspond à ce que vous avez.
Les trois parcours d’authentification
Chaque provider dans Hermes suit l’un de ces trois modèles d’authentification :
Parcours 1 — clé API dans .env. Placez votre clé dans ~/.hermes/.env et Hermes la lit au démarrage. Utilisé par OpenRouter, AI Gateway, z.ai/GLM, Kimi/Moonshot, MiniMax (et MiniMax China), Alibaba Cloud/DashScope, Kilo Code, OpenCode Zen, OpenCode Go, DeepSeek, Hugging Face, Google/Gemini et la plupart des providers tiers.2
Parcours 2 — OAuth via hermes model ou hermes auth. Lance un flux avec code d’appareil, ouvre un navigateur, stocke les identifiants dans ~/.hermes/auth.json (et peut importer des identifiants existants depuis des outils comme Claude Code ou Codex CLI). 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 OpenAI : Ollama, vLLM, SGLang, llama.cpp, LM Studio, proxy LiteLLM, Together AI, Groq, Azure OpenAI ou votre propre serveur auto-hébergé. Configuré une fois via hermes model → Custom endpoint, puis conservé dans config.yaml.2
La matrice complète des providers
Voici la liste complète des providers de premier ordre, avec le flux de configuration exact pour chacun.2
| Provider | 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 token | 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 le CLI copilot dans PATH + copilot login) |
| Anthropic | OAuth ou clé API | hermes model (préfère les identifiants Claude Code), ou ANTHROPIC_API_KEY, ou setup-token ANTHROPIC_TOKEN |
| OpenRouter | clé API | OPENROUTER_API_KEY dans ~/.hermes/.env |
| AI Gateway (Vercel) | clé API | AI_GATEWAY_API_KEY dans ~/.hermes/.env (provider : ai-gateway) |
| z.ai / GLM (ZhipuAI) | clé API | GLM_API_KEY dans ~/.hermes/.env (provider : zai) |
| Kimi / Moonshot | clé API | KIMI_API_KEY dans ~/.hermes/.env (provider : kimi-coding) |
| MiniMax (global) | clé API | MINIMAX_API_KEY dans ~/.hermes/.env (provider : minimax) |
| MiniMax China | clé API | MINIMAX_CN_API_KEY dans ~/.hermes/.env (provider : minimax-cn) |
| Alibaba Cloud (Qwen) | clé API | DASHSCOPE_API_KEY dans ~/.hermes/.env (provider : alibaba, alias : dashscope, qwen) |
| Kilo Code | clé API | KILOCODE_API_KEY dans ~/.hermes/.env (provider : kilocode) |
| OpenCode Zen | clé API | OPENCODE_ZEN_API_KEY dans ~/.hermes/.env (provider : opencode-zen) |
| OpenCode Go | clé API | OPENCODE_GO_API_KEY dans ~/.hermes/.env (provider : opencode-go) |
| DeepSeek | clé API | DEEPSEEK_API_KEY dans ~/.hermes/.env (provider : deepseek) |
| Hugging Face | clé API | HF_TOKEN dans ~/.hermes/.env (provider : huggingface, alias : hf) |
| Google / Gemini | clé API | GOOGLE_API_KEY ou GEMINI_API_KEY dans ~/.hermes/.env (provider : gemini) |
| xAI (Grok) | Provider natif / OAuth SuperGrok | Provider de premier ordre avec accès API direct et catalogue de modèles (v0.9.0+). v0.14.0 ajoute OAuth SuperGrok et porte grok-4.3 à une fenêtre de contexte de 1M pour les comptes éligibles.21619 v0.17.0 ajoute grok-composer-2.5-fast (modèle de Cursor via OAuth xAI, contexte de 200k) et change la valeur par défaut xAI en grok-build-0.1.21 |
| xAI Custom Voices | clé API | Provider TTS avec clonage de voix. Nouveau dans v0.13.0 ; configurez-le sous tts: dans config.yaml et fournissez la clé xAI dans .env.18 |
| Xiaomi MiMo | Provider natif | Provider de premier ordre avec assistant de configuration et catalogue de modèles. MiMo v2 Pro gratuit 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 longueurs de contexte détectées automatiquement via le registre models.dev (v0.8.0+).15 |
| Qwen Cloud | OAuth | Provider OAuth avec prise en charge des requêtes de portail (v0.8.0+). Le provider a été renommé d’Alibaba Cloud en Qwen Cloud dans v0.14.0 ; les clés de configuration existantes continuent de fonctionner.1519 |
| Custom endpoint | config.yaml | hermes model → “Custom endpoint” (enregistré dans config.yaml) |
Anthropic : trois méthodes d’authentification
Anthropic dispose de sa propre section, car Hermes prend en charge trois parcours distincts vers Claude, et le bon choix compte. D’après la documentation upstream :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 OAuth Anthropic via hermes model, Hermes préfère le magasin d’identifiants propre à Claude Code plutôt que de copier le token dans ~/.hermes/.env. Les identifiants Claude renouvelables restent ainsi renouvelables.2 Si vous utilisez déjà Claude Code sur la même machine, c’est le parcours le plus propre.
Pour épingler Anthropic de façon permanente dans config.yaml :
model:
provider: "anthropic"
default: "claude-sonnet-4-6"
--provider claude et --provider claude-code fonctionnent aussi comme raccourcis pour --provider anthropic.2
GitHub Copilot : deux modes
Copilot est pris en charge dans deux modes : API Copilot direct (recommandé) et Copilot ACP (qui lance le CLI Copilot local comme 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
L’authentification est vérifiée dans cet ordre, d’après la documentation upstream :2
1. Variable d’environnement COPILOT_GITHUB_TOKEN
2. Variable d’environnement GH_TOKEN
3. Variable d’environnement GITHUB_TOKEN
4. Repli sur le CLI gh auth token
5. Connexion par code d’appareil OAuth via hermes model
Le type de token compte. Le 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’app GitHub (ghu_*). Si votre gh auth token renvoie un token ghp_*, utilisez plutôt hermes model pour vous authentifier via OAuth.2
Providers IA chinois (prise en charge de premier ordre)
Hermes intègre la prise en charge de z.ai/GLM, Kimi/Moonshot, MiniMax (endpoints global + Chine) et Alibaba Cloud avec des IDs 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 avec les 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 (global, Chine, variantes coding) afin de trouver celui qui accepte votre clé API. L’endpoint fonctionnel est mis en cache automatiquement — aucun GLM_BASE_URL n’est nécessaire pour la plupart des utilisateurs.2
xAI (Grok) active automatiquement le 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 pour router vers le même serveur au sein d’une session de conversation, en réutilisant les prompts système et l’historique mis en cache.2 C’est automatique ; aucune configuration n’est requise.
La commande hermes auth
hermes auth est la commande de gestion des identifiants pour les pools et les 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 servent à faire tourner plusieurs clés API ou tokens OAuth pour un même provider — utile pour répartir les limites de débit entre plusieurs clés sans changer le code.6 Les anciennes commandes hermes login / hermes logout ont été supprimées ; utilisez hermes auth à la place.6
Endpoints personnalisés et auto-hébergés
Hermes fonctionne avec tout endpoint API compatible 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
config.yaml manuel :
model:
default: your-model-name
provider: custom
base_url: http://localhost:8000/v1
api_key: your-key-or-leave-empty-for-local
Les deux approches persistent dans config.yaml, qui est la source de vérité unique 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 la configuration du modèle principal — utilisez hermes model ou modifiez directement config.yaml.2 (OPENAI_BASE_URL + OPENAI_API_KEY restent honorées comme repli pour le chemin de routage auxiliaire provider: "main", donc ne les supprimez pas à l’aveugle si vous les utilisez là.)4
Changer 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 le API /v1/models de votre endpoint et sélectionne automatiquement le modèle si un seul est chargé — utile pour les serveurs locaux exécutant un seul modèle.2
Serveurs LLM locaux (templates de configuration)
La documentation upstream contient des guides complets pour Ollama, vLLM, SGLang, llama.cpp et LM Studio. Voici les commandes clés que vous exécuterez réellement. Chacune est conçue pour produire un endpoint fonctionnel vers lequel Hermes peut pointer.2
Ollama — le parcours local le plus simple, sans 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 : Ollama utilise par défaut des longueurs de contexte très faibles (4 096 tokens sous 24GB de VRAM). Vous devez les augmenter via OLLAMA_CONTEXT_LENGTH ou un Modelfile — le API compatible OpenAI n’accepte pas la longueur de contexte depuis le client, donc Hermes ne peut pas la définir pour vous.2 Pour un usage agent, définissez au moins 16k–32k.
vLLM — service GPU haute performance :
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>. Parseurs 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 reviendront comme du texte brut.2
SGLang — service rapide avec RadixAttention pour la réutilisation du 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 Apple Silicon Metal :
./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 obligatoire pour l’appel d’outils. Sans lui, llama-server ignore entièrement le paramètre tools et le modèle tente d’appeler les outils en écrivant JSON dans le texte de sa réponse — ce que Hermes ne peut pas analyser comme de véritables appels d’outils.2
LM Studio — application desktop avec GUI :
Démarrez le serveur depuis l’app 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 Pointez ensuite hermes model vers http://localhost:1234/v1.
Piège critique avec LM Studio : LM Studio lit la longueur de contexte depuis les métadonnées du modèle, mais de nombreux modèles GGUF indiquent des valeurs par défaut de 2048 ou 4096. Définissez toujours explicitement la longueur de contexte dans les paramètres du modèle LM Studio — cliquez sur l’icône 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
Providers personnalisés nommés
Si vous travaillez avec plusieurs endpoints personnalisés (un serveur de développement local et un serveur GPU distant, par exemple), définissez-les comme providers 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
Passez ensuite 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 aussi sélectionner les providers personnalisés nommés depuis le menu interactif hermes model.2
Architecture de providers enfichable (v0.13.0+)
v0.13.0 livre une ABC ProviderProfile ainsi qu’un dossier plugins/model-providers/, afin que des providers d’inférence tiers puissent s’intégrer sans modifier le cœur.18 Si un provider parle un mode API compatible OpenAI, Anthropic ou Codex, vous pouvez implémenter une sous-classe ProviderProfile qui déclare le parcours d’authentification, l’URL de base, le catalogue de modèles et les en-têtes de cache ; Hermes la résout via le même chemin runtime_provider.py que les providers intégrés. C’est le changement architectural derrière l’expansion des providers en v0.13.0 : au lieu de modifier le code cœur pour ajouter un provider, vous livrez un plugin.
Proxy local compatible OpenAI (v0.14.0+)
hermes proxy expose un endpoint local compatible OpenAI adossé au provider OAuth auquel Hermes est déjà connecté — Claude Pro, ChatGPT Pro, SuperGrok ou un autre provider compatible configuré.19 Cela signifie que les outils qui attendent un API de style OpenAI, notamment Codex CLI, Aider, Cline, Continue ou des scripts personnalisés, peuvent réutiliser votre authentification Hermes adossée à un abonnement sans clé API séparée. Traitez le proxy comme une infrastructure de développement locale : liez-le intentionnellement, ne l’exposez pas largement et gardez à l’esprit les conditions propres à chaque provider.
Détection de la longueur de contexte
Deux paramètres sont constamment confondus, d’après la documentation upstream :2
context_length— la fenêtre de contexte totale (budget combiné de tokens d’entrée + sortie, par exemple 1 000 000 pour Claude Opus 4.7 ou 200 000 pour Sonnet 4.6). Hermes l’utilise pour décider quand compresser l’historique.model.max_tokens— le plafond de sortie (nombre maximal de tokens que le modèle peut générer dans une seule réponse). Sans rapport avec la longueur de l’historique.
Définissez context_length lorsque l’auto-détection se trompe sur la taille de la fenêtre :
model:
default: "qwen3.5:9b"
base_url: "http://localhost:8080/v1"
context_length: 131072 # tokens
Hermes utilise une chaîne de résolution multi-source pour détecter les fenêtres de contexte : override de configuration → provider personnalisé par modèle → cache persistant → /models de l’endpoint → /v1/models Anthropic → API OpenRouter → Nous Portal → models.dev (registre maintenu par la communauté pour plus de 3800 modèles) → valeurs de repli par défaut (128K).2 Le système tient compte du provider, de sorte qu’un même modèle peut avoir des limites de contexte différentes selon celui qui le sert (par exemple, claude-opus-4.6 est à 1M sur Anthropic direct, mais à 128K sur GitHub Copilot).2
Rotation des providers et repli
Pools d’identifiants. Lorsque vous avez plusieurs clés API pour un même provider, configurez une stratégie de rotation via hermes auth. C’est ainsi que vous répartissez les limites de débit entre plusieurs clés.6
Modèle de repli. Configurez un provider:model de secours vers lequel Hermes bascule automatiquement lorsque votre modèle principal échoue (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 repli remplace le modèle et le provider en cours de session sans perdre votre conversation. Il se déclenche au maximum une fois par session.2 Providers pris en charge pour le repli : 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 » légers pour les tâches annexes : analyse d’image, résumé de pages web, analyse de captures d’écran de navigateur, classification d’approbation de commandes dangereuses, compression du contexte, résumé de recherche de session, correspondance de skill, répartition d’outils MCP et vidage de mémoire.4 Par défaut, ces tâches utilisent Gemini Flash via auto-détection (OpenRouter → Nous → Codex).
Vous pouvez configurer le modèle et le provider utilisés par chaque tâche auxiliaire. Chaque slot auxiliaire utilise les trois mêmes réglages : provider, model, base_url.4
auxiliary:
vision:
provider: "auto" # "auto", "openrouter", "nous", "codex", "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: 30
download_timeout: 30
web_extract:
provider: "auto"
model: ""
timeout: 360
approval:
provider: "auto"
model: ""
timeout: 30
compression:
timeout: 120
session_search: { provider: "auto", model: "", timeout: 30 }
skills_hub: { provider: "auto", model: "", timeout: 30 }
mcp: { provider: "auto", model: "", timeout: 30 }
flush_memories:{ provider: "auto", model: "", timeout: 30 }
L’option de provider "main" signifie « utiliser le provider qu’utilise mon agent principal » — valide uniquement dans les configurations auxiliary:, compression: et fallback_model:. Elle n’est pas valide pour votre paramètre model.provider de niveau supérieur. Si vous utilisez un endpoint personnalisé compatible OpenAI comme modèle principal, définissez provider: custom dans votre section model:.4
Pourquoi c’est important : si vous n’avez configuré que OAuth Anthropic (sans clé OpenRouter), votre vision, vos résumés web et votre compression se dégraderont ou échoueront, car la chaîne de repli auxiliaire par défaut essaie OpenRouter en premier. Ajoutez une OPENROUTER_API_KEY pour les tâches auxiliaires, ou reconfigurez chaque slot auxiliaire pour utiliser votre provider principal :
auxiliary:
vision:
provider: "main"
web_extract:
provider: "main"
C’est le piège « mes fonctionnalités ne marchent pas silencieusement » le plus courant chez les nouveaux utilisateurs de Hermes.
Système de configuration
Hermes dispose d’un système de configuration en couches. Comprendre la priorité est essentiel, car les couches supérieures remplacent les couches inférieures, et l’une de ces couches est un registre global de providers que vous ne pouvez pas voir dans config.yaml.
Structure des fichiers de configuration
D’après la documentation upstream, voici les fichiers qui composent 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 vs .env — lorsque les deux sont définis, config.yaml l’emporte pour les paramètres non secrets.4 La règle est la suivante :
- Secrets (clés API, tokens de bot, mots de passe) → .env
- Tout le reste (modèle, backend de terminal, paramètres de compression, limites de mémoire, toolsets) → config.yaml
Les secrets peuvent être référencés depuis config.yaml avec une interpolation de style shell :4
auxiliary:
vision:
api_key: ${GOOGLE_API_KEY}
base_url: ${CUSTOM_VISION_URL}
delegation:
api_key: ${DELEGATION_KEY}
Gérer 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 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 ajoutées que votre fichier ne contient pas encore.6
Priorité de la configuration
Hermes charge la configuration depuis plusieurs sources. Lorsque plusieurs sources définissent la même valeur, la source avec la priorité la plus élevée l’emporte :4
- Arguments CLI —
hermes chat --model anthropic/claude-sonnet-4(remplacement pour une invocation donnée) - Variables d’environnement — appliquées au démarrage du processus
config.yaml— le fichier principal de paramètres.env— secrets uniquement- Valeurs par défaut intégrées — appliquées lorsque rien d’autre ne définit une valeur
Les flags CLI l’emportent toujours pour cette invocation unique. config.yaml est la source de vérité à long terme.
Localisation (v0.13.0+)
v0.13.0 a ajouté 7 locales pour les messages CLI et gateway : chinois (simplifié), japonais, allemand, espagnol, français, ukrainien et turc.18 v0.14.0 localise toutes les commandes gateway et le dashboard web, ajoute 8 locales supplémentaires et porte le total à 16.19 La documentation est actuellement localisée en zh-Hans uniquement. La locale est résolue depuis les variables d’environnement LC_ALL / LANG ou une clé explicite locale: dans config.yaml. L’anglais reste la valeur par défaut et la source de vérité pour toute chaîne qu’une traduction ne couvre pas encore.
Profiles — Plusieurs instances Hermes isolées
Les profiles vous donnent plusieurs instances Hermes isolées, chacune avec sa propre config, ses sessions, ses skills, sa mémoire et son PID gateway. C’est ainsi que vous exécutez « Hermes travail » et « Hermes personnel » côte à côte sans que l’un voie 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 reçoit son propre HERMES_HOME (~/.hermes-<name>/ par défaut), ce qui permet à plusieurs profiles d’exécuter le gateway simultanément sans se marcher dessus.63
Commandes CLI
Cette section sert de référence pratique pour les commandes CLI de premier niveau. Pour la référence officielle dérivée du code, consultez 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 par ID ou par titre |
--continue [name], -c [name] |
Reprendre la session la plus récente, ou faire correspondre un titre |
--worktree, -w |
Démarrer dans un git worktree isolé |
--yolo |
Ignorer les demandes d’approbation pour les commandes dangereuses |
--pass-session-id |
Inclure l’ID de session dans le prompt système de l’agent |
Commandes de premier niveau
| Command | Purpose |
|---|---|
hermes chat |
Chat interactif ou ponctuel |
hermes model |
Choisir interactivement le provider 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, lister, supprimer, réinitialiser, définir la stratégie |
hermes status |
Afficher l’état de l’agent, de l’authentification et de la plateforme |
hermes cron |
Inspecter et déclencher le planificateur cron |
hermes webhook |
Gérer les abonnements webhook dynamiques |
hermes doctor |
Diagnostiquer les problèmes de configuration et de dépendances |
hermes dump |
Résumé de configuration copiable-collable pour le support/débogage |
hermes logs |
Consulter, suivre et filtrer les journaux agent/gateway/erreur |
hermes config |
Afficher, modifier, migrer, interroger la configuration |
hermes pairing |
Approuver ou révoquer les codes de jumelage de messagerie |
hermes skills |
Parcourir, installer, publier, auditer les skills |
hermes honcho |
Gérer la mémoire intersessions Honcho |
hermes memory |
Configurer le provider de mémoire externe |
hermes acp |
Exécuter Hermes comme serveur ACP (intégration éditeur) |
hermes mcp |
Gérer la configuration du serveur MCP ; exécuter Hermes comme serveur MCP |
hermes plugins |
Gérer les plugins |
hermes tools |
Configurer les tools activés par plateforme |
hermes sessions |
Parcourir, exporter, élaguer, supprimer des sessions |
hermes insights |
Afficher les analyses de tokens/coût/activité |
hermes claw |
Assistants de migration OpenClaw |
hermes profile |
Gérer les profiles (plusieurs instances isolées) |
hermes completion |
Imprimer les scripts de complétion shell (bash/zsh) |
hermes whatsapp |
Configurer et jumeler le pont WhatsApp |
hermes version |
Imprimer les informations de version |
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 aussi la configuration/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 depuis une archive de sauvegarde — migrer entre machines ou revenir en arrière (v0.9.0+)16 |
hermes dashboard |
Lancer le dashboard web local pour gérer l’agent depuis un navigateur (v0.9.0+)16 |
hermes debug share |
Téléverser un rapport de débogage complet vers un pastebin pour le partager lors du dépannage (v0.9.0+)16 |
hermes chat — Le point d’entrée principal
hermes sans argument vous place dans le chat interactif. hermes chat est la forme explicite avec options :6
hermes chat -q "Summarize the latest PRs" # One-shot, non-interactive
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 clés :
| Option | Description |
|---|---|
-q, --query "..." |
Prompt ponctuel, non interactif |
-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 un provider (voir la liste complète) |
-s, --skills <name> |
Précharger une ou plusieurs skills pour cette session |
-v, --verbose |
Sortie détaillée |
-Q, --quiet |
Mode programmatique (pas de bannière, spinner ni aperçus) |
--resume <session> |
Reprendre une session directement depuis chat |
--worktree |
Créer un git worktree isolé |
--checkpoints |
Activer les checkpoints du système de fichiers avant les modifications destructrices |
--yolo |
Ignorer les demandes d’approbation |
--source <tag> |
Tag de source de session (par défaut : cli ; utilisez tool pour les intégrations) |
--max-turns <N> |
Nombre maximal d’itérations d’appel de tools par tour (par défaut : 90) |
hermes setup — Assistant complet
Exécute l’assistant de configuration complet ou passe directement à une section :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 — Requête structurée dans les journaux
hermes logs est plus puissant que tail -f sur les fichiers journaux, car il prend simultanément en charge le filtrage 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, dispatch de tools, cycle de vie des sessions, INFO+)
- errors.log — avertissements et erreurs uniquement (un sous-ensemble filtré de agent.log)
- gateway.log — activité du gateway de messagerie (connexions aux plateformes, dispatch, webhooks)
La rotation est automatique via le RotatingFileHandler de Python — cherchez agent.log.1, agent.log.2, etc.6
hermes doctor — Diagnostics
hermes doctor [--fix] est la première commande à exécuter quand quelque chose ne va pas. Elle vérifie la validité de la configuration, la présence des dépendances, la disponibilité des clés API, l’état des services, et peut tenter des réparations automatiques avec --fix.6
Pour partager les diagnostics avec quelqu’un d’autre, utilisez hermes dump — la commande produit un résumé compact en texte brut avec les clés API masquées, prêt à coller dans une issue GitHub ou un fil Discord.6
Commandes slash
Les commandes slash s’exécutent dans une session de chat active (CLI ou plateforme de messagerie). Elles sont distribuées depuis un COMMAND_REGISTRY partagé dans hermes_cli/commands.py, ce qui explique pourquoi la plupart des commandes fonctionnent de la même manière sur toutes les surfaces.9
Contrôle de session
| Commande | Description |
|---|---|
/new (alias /reset) |
Démarrer une nouvelle session |
/clear |
Effacer l’écran + démarrer une nouvelle session |
/history |
Afficher l’historique de 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 conversation |
/rollback [number] |
Lister ou restaurer des checkpoints du système de fichiers |
/stop |
Arrêter tous les processus en arrière-plan en cours d’exécution |
/queue <prompt> |
Mettre un prompt en file d’attente pour le prochain tour. Piège : /q est revendiqué à la fois par /queue et /quit ; le dernier enregistrement l’emporte et /q se résout en pratique vers /quit — tapez toujours /queue explicitement.9 |
/resume [name] |
Reprendre une session nommée précédemment |
/statusbar (alias /sb) |
Activer ou désactiver la barre d’état contexte/modèle |
/background <prompt> (alias /bg) |
Exécuter un prompt dans une session séparée en arrière-plan |
/btw <question> |
Question secondaire éphémère (sans outils, non persistée) |
/plan [request] |
Charger le skill plan inclus pour rédiger un plan au lieu d’exécuter |
/branch [name] (alias /fork) |
Créer une branche de la session actuelle |
/goal <target> |
Verrouiller l’agent sur une cible afin qu’il reste concentré sur la tâche d’un tour à l’autre. Modèle de boucle Ralph comme primitive de première classe. Budget de tours configurable. Nouveau dans v0.13.0.18 |
/subgoal <criterion> |
Ajouter des critères de réussite à un /goal actif sans redémarrer la boucle. Nouveau dans v0.14.0.19 |
/handoff <target> |
Transférer la session active — messages, appels d’outils et contexte — vers un autre modèle, persona ou profile. Nouveau dans v0.14.0.19 |
Configuration et modèle
| Commande | Description |
|---|---|
/config |
Afficher la configuration actuelle |
/model [model-name] |
Afficher ou changer le modèle actuel |
/provider |
Afficher les providers disponibles et le provider actuel |
/personality [name] |
Définir une superposition de personnalité |
/verbose |
Faire défiler l’affichage de progression des outils |
/reasoning |
Gérer l’effort de raisonnement et son affichage |
/skin |
Afficher ou changer le skin/thème d’affichage |
/voice [on\|off\|tts\|status] |
Activer ou désactiver le mode vocal CLI |
/yolo |
Activer ou désactiver le mode YOLO (ignorer les demandes d’approbation) |
/fast |
Activer ou désactiver Fast Mode — traitement prioritaire pour les modèles OpenAI et Anthropic (v0.9.0+)16 |
/debug |
Diagnostics rapides sur toutes les plateformes (v0.9.0+)16 |
La commande /model est l’outil central pour changer de provider 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
Outils, skills et informations
| Commande | Description |
|---|---|
/tools [list\|disable\|enable] [name...] |
Gérer les outils de la session actuelle |
/toolsets |
Lister les toolsets disponibles |
/browser [connect\|disconnect\|status] |
Gérer la connexion Chrome CDP locale |
/skills |
Rechercher, installer, inspecter ou gérer des skills |
/cron |
Gérer les tâches planifiées |
/reload-mcp |
Recharger les serveurs MCP depuis config.yaml |
/plugins |
Lister 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 analytics d’utilisation (30 derniers jours) |
/platforms |
Afficher l’état des plateformes de messagerie |
/profile |
Afficher le nom du profile actif et son home |
Commandes slash dynamiques des skills
Chaque skill installé est automatiquement exposé comme 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
Vous pouvez également définir des commandes rapides dans config.yaml, 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"
Tapez ensuite /review, /deploy ou /morning dans le CLI.
Correspondance par préfixe
Les commandes prennent en charge la correspondance par préfixe : saisir /h se résout vers /help, /mod se résout vers /model. Lorsqu’un préfixe est ambigu, le premier enregistrement dans l’ordre du registre l’emporte. Les noms complets de commandes et les alias enregistrés sont toujours prioritaires sur les correspondances par préfixe.9
Commandes propres à la messagerie
Certaines commandes fonctionnent uniquement sur les plateformes de messagerie (Telegram, Discord, Slack, WhatsApp, Signal, Email, Home Assistant) :9
/status— afficher les informations de session/sethome(alias/set-home) — définir le chat actuel comme home de la plateforme/approve [session|always]— approuver une commande dangereuse en attente/deny— rejeter une commande dangereuse en attente/update— mettre Hermes Agent à jour vers la dernière version/commands [page]— parcourir toutes les commandes et skills (paginé)
Et certaines sont réservées à CLI : /skin, /tools, /toolsets, /browser, /config, /cron, /skills, /platforms, /paste, /statusbar, /plugins.9
Tools et toolsets
Hermes est livré avec un vaste registre d’outils intégrés couvrant la recherche web, l’automatisation de navigateur, l’exécution dans le terminal, la modification de fichiers, la mémoire, la délégation, l’entraînement RL, l’envoi de messages, l’intégration Home Assistant, et plus encore.10 Les outils sont organisés en toolsets logiques qui peuvent être activés ou désactivés par plateforme.
Catégories de haut niveau
| 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 de 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 est conçu d’abord pour Gemini, avec une prise en charge extensible des fournisseurs multimodaux compatibles (v0.13.0+). v0.14.0 ajoute un video_generate unifié avec des backends de fournisseurs enfichables et envoie les pixels bruts via 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, délégation à des subagents |
| Utilisation de l’ordinateur | computer_use |
Contrôle du bureau via le backend cua-driver ; v0.14.0 rend cela compatible avec des fournisseurs capables de vision non-Anthropic.19 |
| Mémoire et rappel | memory, session_search |
Mémoire persistante + recherche dans les sessions |
| Automatisation et livraison | cronjob, send_message |
Tâches planifiées, messagerie sortante |
| Intégrations | ha_*, outils MCP, rl_* |
Home Assistant, MCP, entraînement RL |
Les noms courants de toolsets 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
Les outils peuvent aussi être activés ou désactivés en cours de session via /tools disable <name> et /tools enable <name>, ce qui réinitialise la session pour que le nouveau jeu d’outils prenne effet.9
Backends de terminal
L’outil terminal peut exécuter des commandes dans six environnements différents :10
| 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, garder l’agent à distance de son propre code |
singularity |
Conteneurs HPC — calcul en cluster, sans root |
modal |
Exécution cloud serverless |
daytona |
Espace de travail sandbox cloud — environnement de développement distant persistant |
Changez de backend avec hermes config set terminal.backend <name> ou dans config.yaml :
terminal:
backend: docker # or: local, ssh, singularity, modal, daytona
cwd: "." # Working directory
timeout: 180 # Command timeout in seconds
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 de conteneur (s’applique à docker, singularity, modal, 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 persistent d’une session à l’autre.10
Tous les backends de conteneur s’exécutent avec un durcissement de sécurité : système de fichiers racine en lecture seule (Docker), toutes les capacités Linux supprimées sauf DAC_OVERRIDE, CHOWN et FOWNER, aucune élévation de privilèges, limites de PID (256 processus), isolation complète des espaces de noms, espace de travail persistant via volumes.10
Processus en arrière-plan
L’outil 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) active les outils CLI interactifs comme Codex et Claude Code.10
Sudo
Si une commande nécessite sudo, Hermes vous demande votre mot de passe (mis en cache pour la session). Vous pouvez aussi définir SUDO_PASSWORD dans ~/.hermes/.env.10
Multi-Agent Kanban (v0.13.0+)
v0.13.0 fait de la collaboration multi-agent une primitive de premier ordre : un tableau Kanban durable qui suit les tâches, leur statut et l’identité des workers entre agents et après les redémarrages.18 C’est ce tableau qui permet à un essaim de workers Hermes de terminer réellement le travail au lieu de se bloquer sur des passations mortes.
| Mécanisme | Ce qu’il fait |
|---|---|
| Heartbeats | Chaque worker émet un signal tant qu’il possède une tâche. Un heartbeat manqué marque le worker comme suspect et libère la tâche pour qu’elle soit récupérée. |
| Reclaim | Un autre worker peut reprendre une tâche abandonnée, avec l’état complet de la tâche et la sortie partielle précédente. |
| Détection des zombies | Les workers qui se ferment sans marquer une tâche comme terminée sont automatiquement empêchés de réclamer du nouveau travail, ce qui évite à l’essaim d’accumuler des identités mortes. |
| Hallucination gate | Une sortie qui échoue au gate renvoie la tâche au tableau avec la raison indiquée au lieu d’être marquée comme terminée. |
max_retries par tâche |
Remplace le budget de tentatives par défaut sur une tâche que vous savez fragile. |
| Tableaux multi-projets | Un seul home Hermes peut héberger plusieurs tableaux indépendants. |
Le tableau Kanban s’associe naturellement à /goal (boucle Ralph à cible verrouillée) côté cible, et à l’outil delegate_task existant pour la sémantique de spawn. Le résultat est un modèle d’essaim où chaque agent partage une seule source de vérité sur ce qu’il faut faire ensuite, qui s’en occupe et ce qui est bloqué.
Système de skills
Les skills sont des documents de connaissance à la demande que l’agent peut charger selon ses besoins. Ils suivent un modèle de divulgation progressive afin de minimiser 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 vérité. Lors d’une nouvelle installation, les skills fournis sont copiés depuis le repo. Les skills installés depuis le Hub et créés par l’agent y sont également placé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. C’est particulièrement utile pour les skills de fallback — des alternatives 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 listés sont disponibles |
fallback_for_tools |
Même comportement, mais vérifie des outils individuels |
requires_toolsets |
Skill masqué lorsque les toolsets listés sont indisponibles |
requires_tools |
Même comportement, mais vérifie des outils individuels |
Exemple : le skill intégré duckduckgo-search utilise fallback_for_toolsets: [web]. Lorsque vous avez défini FIRECRAWL_API_KEY, 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 fallback.11
Skills gérés par l’agent
L’agent peut créer, mettre à jour et supprimer ses propres skills via l’outil skill_manage. C’est la mémoire procédurale de l’agent — lorsqu’il identifie un workflow non trivial, il enregistre l’approche sous forme de skill pour pouvoir la réutiliser plus tard.11
Quand l’agent crée des skills :11 - Après avoir terminé avec succès une tâche complexe (5 appels d’outils ou plus) - Lorsqu’il a rencontré des erreurs ou des impasses et trouvé le chemin fonctionnel - Lorsque l’utilisateur a corrigé son approche - Lorsqu’il a découvert un workflow non trivial
Actions :11
| Action | À utiliser pour |
|---|---|
create |
Nouveau skill créé de zéro |
patch |
Corrections ciblées (à privilégier — option la plus économe en tokens) |
edit |
Réécritures structurelles importantes |
delete |
Supprimer entièrement un skill |
write_file |
Ajouter/mettre à jour des fichiers de support |
remove_file |
Supprimer un fichier de support |
Skill Hub
Parcourez, recherchez, installez et gérez des skills depuis des 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 de hub intégrées :11
| Source | Exemple | Notes |
|---|---|---|
official |
official/security/1password |
Skills optionnels livrés avec Hermes (confiance builtin) |
skills-sh |
skills-sh/vercel-labs/agent-skills/vercel-react-best-practices |
Dossier 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 repo/chemin GitHub |
clawhub |
— | Marketplace de skills tierce |
claude-marketplace |
— | Manifestes de plugins/marketplace compatibles Claude |
lobehub |
— | Conversion du catalogue d’agents LobeHub |
Taps GitHub par défaut (consultables sans configuration) : openai/skills, anthropics/skills, VoltAgent/awesome-agent-skills, garrytan/gstack.11
Analyse de sécurité
Tous les skills installés depuis le hub passent par un scanner de sécurité qui recherche l’exfiltration de données, l’injection de prompt, les commandes destructrices, les signaux de supply chain et d’autres menaces.11
Niveaux de confiance :11
| Niveau | Source | Politique |
|---|---|---|
builtin |
Livré avec Hermes | Toujours approuvé |
official |
optional-skills/ dans le repo |
Confiance builtin, aucun avertissement de tiers |
trusted |
Registres approuvés (openai/skills, anthropics/skills) |
Politique plus permissive |
community |
Tout le reste | Les constats non dangereux peuvent être ignorés avec --force ; les verdicts dangerous restent bloqués |
--force peut outrepasser les blocages de politique non dangereux pour les skills communautaires. Il ne permet pas d’ignorer un verdict de scan dangerous.11
Dossiers de skills externes
Vous pouvez faire pointer Hermes vers des dossiers de skills supplémentaires, analysés en parallèle du dossier local :11
skills:
external_dirs:
- ~/.agents/skills
- /home/shared/team-skills
- ${SKILLS_REPO}/skills
Les chemins prennent en charge l’expansion 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 écrit toujours dans ~/.hermes/skills/. La priorité locale l’emporte si un nom de skill existe aux deux emplacements.11
Mémoire persistante
Hermes dispose d’une mémoire bornée et organisée qui persiste entre les sessions. Deux fichiers composent la mémoire de l’agent, tous deux stockés dans ~/.hermes/memories/ :12
| Fichier | Objectif | Limite de caractères |
|---|---|---|
MEMORY.md |
Notes personnelles de l’agent — faits d’environnement, conventions, éléments appris | 2 200 caractères (~800 tokens) |
USER.md |
Profil utilisateur — préférences, style de communication, attentes | 1 375 caractères (~500 tokens) |
Les deux sont injectés dans le prompt système sous forme d’instantané figé au démarrage de la session. L’agent gère sa propre mémoire via l’outil memory — add, replace ou remove.12
Modèle d’instantané figé : l’injection dans le prompt système est capturée une seule fois au démarrage de la session et ne change jamais en cours de session. C’est volontaire — cela préserve le cache de préfixe de LLM pour les performances. Les modifications effectuées pendant une session sont immédiatement persistées sur disque, mais n’apparaissent dans le prompt système qu’à la session suivante.12
Ce qu’il faut enregistrer
Enregistrez ces éléments (l’agent le fait proactivement) :12
- Préférences utilisateur : « Je préfère TypeScript à JavaScript » → user
- Faits d’environnement : « Ce serveur exécute Debian 12 avec PostgreSQL 16 » → memory
- Corrections : « N’utilisez pas sudo pour les commandes Docker, l’utilisateur est dans le groupe docker » → memory
- Conventions : « Le projet utilise des tabulations, une largeur de ligne de 120 caractères et des docstrings de style Google » → memory
- Travail terminé : « Base de données migrée de MySQL vers PostgreSQL le 15 janvier 2026 » → memory
Ignorez ces éléments :12 - Informations triviales/évidentes - Faits faciles à retrouver - Dumps de données brutes (trop volumineux pour la mémoire) - Éléments éphémères propres à la session - Informations déjà présentes dans les fichiers de contexte
Recherche de sessions
Au-delà de MEMORY.md et USER.md, l’agent peut rechercher dans ses conversations passées avec l’outil session_search. Toutes les sessions CLI et de messagerie sont stockées dans SQLite (~/.hermes/state.db) avec recherche plein texte FTS5. Les requêtes renvoient les conversations passées pertinentes avec une synthèse Gemini Flash.12
| Fonctionnalité | Mémoire persistante | Recherche de sessions |
|---|---|---|
| Capacité | ~1 300 tokens au total | Illimitée (toutes les sessions) |
| Vitesse | Instantanée (dans le prompt système) | Nécessite une recherche + synthèse LLM |
| Cas d’utilisation | Faits clés 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 (~1 300 tokens) | À la demande |
Fournisseurs de mémoire externes
Pour une mémoire persistante plus profonde au-delà de MEMORY.md et USER.md, Hermes inclut 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 capacités comme les graphes de connaissances, la recherche sémantique, l’extraction automatique de faits et la modélisation utilisateur entre 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 est toujours active.6
Reprise automatique de session (v0.13.0+)
v0.13.0 rend les interruptions au milieu d’un agent récupérables. Le gateway reprend automatiquement les sessions interrompues après un redémarrage ; les redémarrages /update préservent l’état de session pendant la mise à niveau ; les rechargements de fichiers source pendant le développement conservent la session active au lieu d’en forcer une nouvelle.18 Effet pratique : les travaux gateway de longue durée et les tâches pilotées par cron ne réinitialisent plus leur fenêtre de contexte au redémarrage du processus.
Checkpoints v2 (v0.13.0+)
La persistance d’état est réécrite dans v0.13.0 sous forme d’architecture à magasin unique avec vrai élagage, garde-fous disque et aucun dépôt fantôme orphelin.18 Le système de checkpoint précédent accumulait de l’état sur disque dans les profiles de longue durée ; le magasin v2 impose un plafond strict au stockage local des checkpoints et supprime la comptabilité dupliquée qui provoquait cette croissance. Aucun changement de configuration visible par l’utilisateur n’est requis ; la prochaine écriture de checkpoint utilise le chemin v2.
Personnalité et SOUL.md
SOUL.md est l’identité principale d’une instance Hermes. Il occupe l’emplacement n° 1 dans le prompt système, en remplaçant l’identité par défaut codée en dur.13
Hermes initialise automatiquement un SOUL.md par défaut dans ~/.hermes/SOUL.md (ou $HERMES_HOME/SOUL.md pour les profiles personnalisés). Les fichiers utilisateur existants ne sont jamais écrasés. Hermes charge SOUL.md uniquement depuis HERMES_HOME — il ne le cherche pas dans le répertoire de travail courant. La personnalité reste ainsi prévisible entre les projets.13
Ce qui relève de SOUL.md
Utilisez-le pour les consignes durables de voix et de personnalité :13 - ton - style de communication - niveau de franchise - style d’interaction par défaut - éléments stylistiques à éviter - manière dont Hermes doit gérer l’incertitude, le désaccord, l’ambiguïté
Utilisez-le moins pour :13 - instructions ponctuelles de projet - chemins de fichiers - conventions de dépôt - détails temporaires de workflow
Ces éléments relèvent de AGENTS.md, pas de SOUL.md.
SOUL.md vs AGENTS.md
C’est la distinction la plus importante dans la gestion d’identité de Hermes :13
SOUL.md — identité, ton, style, comportements par défaut de communication, comportement au niveau de la personnalité.
AGENTS.md — architecture du projet, conventions de code, préférences d’outils, workflows propres au dépôt, commandes, ports, chemins, notes de déploiement.
Règle utile : si cela doit vous suivre partout, cela relève de SOUL.md. Si cela appartient à un projet, cela relève de AGENTS.md.13
Personnalités intégrées
Hermes inclut des personnalités intégrées auxquelles vous pouvez passer avec /personality :13
| Nom | Description |
|---|---|
helpful |
Assistant convivial et généraliste |
concise |
Réponses brèves et directes |
technical |
Expert technique détaillé et précis |
creative |
Pensée innovante et hors des sentiers battus |
teacher |
Pédagogue patient avec des exemples clairs |
kawaii |
Expressions mignonnes, paillettes, enthousiasme |
catgirl |
Neko-chan avec expressions félines |
pirate |
Capitaine Hermes, boucanier calé en tech |
shakespeare |
Prose de barde au style dramatique |
surfer |
Ambiance chill bro |
noir |
Narration de détective hard-boiled |
uwu |
Mignonnerie maximale avec langage uwu |
philosopher |
Contemplation profonde à 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.
Puis passez-y avec /personality codereviewer.
SOUL.md vs /personality
SOUL.md est la voix de base. /personality est une surcouche au niveau de la session.13 Gardez un SOUL.md pragmatique par défaut, puis utilisez /personality teacher pour une conversation de tutorat ou /personality creative pour un brainstorming.
Nous Tool Gateway (v0.10.0+)
Depuis Hermes Agent v0.10.0 (16 avril 2026), les abonnés Nous Portal payants obtiennent un accès managé à un ensemble organisé d’outils via leurs identifiants Portal existants — aucune clé API supplémentaire à gérer.26 Le CLI Hermes lui-même reste sous licence MIT et entièrement open source. Ce qui a changé, c’est que votre authentification Portal déverrouille désormais plus que l’inférence de modèles.
Ce que contient le gateway
| Outil | Fournisseur | Cas d’utilisation |
|---|---|---|
| Recherche web | Firecrawl | Récupération pour les agents qui ont besoin d’informations fraîches |
| Génération d’images | FAL / FLUX 2 Pro | Générer des images inline sans configurer de clé FAL |
| Text-to-speech | OpenAI TTS | Sortie vocale sur les gateways de messagerie |
| Automatisation de navigateur | Browser Use | Navigation headless et scraping |
Fonctionnement
Le gateway est opt-in par outil via un nouveau champ de configuration use_gateway. Si vous avez des identifiants Portal dans hermes auth et activez le gateway pour un outil, les appels de cet outil passent par Portal. Sinon, votre clé API directe (si présente) est utilisée.
# 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
Priorité à l’exécution : lorsque le gateway est disponible et qu’un outil a use_gateway: true, Hermes privilégie le gateway même si vous avez aussi configuré une clé API directe. C’est important pour la facturation — les appels gateway sont déduits de votre abonnement Portal, pas du solde de votre clé API directe.
Activer le gateway
hermes model # select Nous Portal (OAuth flow)
hermes tools # per-platform tool picker integrates gateway tools
hermes status # confirms gateway/subscription detection
Il n’existe pas de commande séparée hermes subscribe ou hermes login --portal. L’abonnement est détecté automatiquement à partir des identifiants OAuth Portal que vous avez déjà dans hermes auth.
Tarifs et accès
Les tarifs et noms d’offres sont publiés sur la page de tarification Nous Portal (https://portal.nousresearch.com/pricing). Ce guide n’énumère pas les offres, car elles relèvent du produit Portal, pas du CLI Hermes, et évoluent 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_TOOLSest supprimée dans v0.10.0. Les outils managés sont désormais activés via le champ de configurationuse_gatewaypropre à chaque outil et conditionnés à l’état de votre abonnement Portal.26
Cadrage : ce que cette version n’est pas
Le CLI Hermes Agent n’est pas verrouillé derrière un abonnement. Le projet reste sous licence MIT, toutes les fonctionnalités de base (CLI, skills, mémoire, messaging gateway, cron, MCP, dashboard local, BYOK pour chaque fournisseur) fonctionnent de bout en bout sans payer qui que ce soit. v0.10.0 ajoute un parcours pratique pour les utilisateurs qui paient déjà Nous Portal — cela ne retire rien au parcours gratuit.
Gateway de messagerie
Hermes peut fonctionner comme un processus gateway de longue durée qui se connecte à 22 plateformes de messagerie depuis un seul processus gateway : Telegram, Discord, Slack, WhatsApp, Signal, SMS, Email, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, Weixin (WeChat), BlueBubbles (iMessage), QQBot, Microsoft Teams, Tencent Yuanbao, Google Chat, LINE, SimpleX Chat, ainsi qu’un adaptateur Webhook générique.325171819 v0.9.0 a ajouté iMessage via BlueBubbles (enregistrement automatique de webhook, assistant de configuration, résilience aux plantages) et la prise en charge native de WeChat via iLink Bot API, avec le mode callback WeCom pour les applications d’entreprise.16 v0.11.0 a ajouté QQBot.25 v0.12.0 a ajouté Microsoft Teams et Tencent Yuanbao.17 v0.13.0 a ajouté Google Chat comme 20e plateforme, en s’appuyant sur la même architecture d’adaptateurs enfichables ; IRC et Microsoft Teams ont également été migrés vers le nouveau modèle d’adaptateur avec les hooks de plugin génériques env_enablement_fn / cron_deliver_env_var.18 v0.14.0 ajoute LINE et SimpleX Chat et finalise la pile Microsoft Teams de bout en bout avec l’authentification Graph, le listener webhook, le runtime de pipeline et la livraison sortante.19 v0.17.0 (19 juin 2026) ajoute iMessage sans relais via Photon Spectrum (OAuth par code d’appareil avec hermes photon login — aucun relais Mac/BlueBubbles requis), l’adaptateur officiel WhatsApp Business Cloud API (qui remplace l’exigence d’un processus bridge), les groupes SimpleX et pièces jointes natives, ainsi que Raft comme plugin de plateforme inclus.21
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 : tokens API, IDs de bots, mappages de canaux, listes d’autorisation.6
Fonctionnement du flux des messages
D’après la documentation d’architecture upstream :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
Chaque plateforme de messagerie passe par la même boucle de conversation AIAgent que le CLI. C’est pourquoi les slash commands fonctionnent de façon identique aux deux endroits, et pourquoi une tâche cron planifiée dans Telegram peut livrer sa sortie dans Discord : la différence de plateforme n’existe qu’en périphérie.3
Autorisation utilisateur et association
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’association empêchent des inconnus de parler à votre gateway. Un utilisateur envoie un code d’association depuis sa plateforme de messagerie ; vous l’approuvez avec hermes pairing approve ; à partir de là, il est 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, pas des commandes shell. Chaque job planifié s’exécute via un nouvel AIAgent avec le prompt configuré, des skills éventuellement attachés, et livre 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
Ou créez-en un conversationnellement dans une discussion de messagerie :
Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.
L’agent configurera le job cron via ses tools. Les jobs persistent dans JSON et survivent aux redémarrages.3
Intégration 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 sa surface de tools :
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
Ou manuellement dans config.yaml :14
mcp_servers:
github:
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"
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 pour rester dans la fenêtre de contexte de votre modèle. Le summarizer de compression est un appel LLM distinct : vous pouvez le diriger vers n’importe quel provider ou endpoint.4
compression:
enabled: true
threshold: 0.50 # Compress at this % of context limit
target_ratio: 0.20 # Fraction to preserve as recent tail
protect_last_n: 20 # Min recent messages to keep uncompressed
summary_model: "google/gemini-3-flash-preview"
summary_provider: "auto" # "auto", "openrouter", "nous", "codex", "main", etc.
summary_base_url: null # Custom OpenAI-compatible endpoint
Options de provider :4
summary_provider |
summary_base_url |
Résultat |
|---|---|---|
auto (par défaut) |
non défini | Détecte automatiquement le meilleur provider disponible |
nous / openrouter / etc. |
non défini | Force ce provider et utilise son authentification |
| n’importe lequel | défini | Utilise directement l’endpoint personnalisé (provider ignoré) |
summary_model doit prendre en charge une longueur de contexte au moins aussi grande que celle de votre modèle principal, puisqu’il reçoit toute la section centrale de la conversation à compresser.4
Avertissements de pression sur le budget
Lorsque l’agent travaille sur une tâche complexe avec de nombreux appels de tools, il peut épuiser son budget d’itérations (par défaut : 90 tours) sans s’en rendre compte. La pression sur le budget avertit automatiquement le modèle :4
| Seuil | Niveau | Ce que le modèle voit |
|---|---|---|
| 70 % | Prudence | [BUDGET: 63/90. 27 iterations left. Start consolidating.] |
| 90 % | Avertissement | [BUDGET WARNING: 81/90. Only 9 left. Respond NOW.] |
Timeouts de stream
La connexion de streaming LLM comporte deux couches de timeout qui s’ajustent automatiquement pour les providers locaux (localhost, IPs LAN) :4
| Timeout | Par défaut | Providers locaux | Variable d’env |
|---|---|---|---|
| Timeout de lecture socket | 120s | Relevé automatiquement à 1800s | HERMES_STREAM_READ_TIMEOUT |
| Détection de stream inactif | 180s | Désactivée automatiquement | HERMES_STREAM_STALE_TIMEOUT |
| Appel API (hors streaming) | 1800s | Inchangé | HERMES_API_TIMEOUT |
Le timeout de lecture socket est porté à 30 minutes pour les endpoints locaux, car les LLM locaux peuvent prendre plusieurs minutes à préparer de grands contextes avant de produire le premier token.4
Dashboard web local (v0.9.0+)
Un dashboard dans le navigateur pour 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. C’est le parcours d’onboarding le plus simple pour les nouveaux utilisateurs qui préfèrent une GUI.
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 de recevoir des notifications en temps réel lorsqu’ils correspondent.16 Surveillez les erreurs, attendez des événements précis (« listening on port ») ou observez les journaux de build — le tout sans polling. Combiné à notify_on_complete depuis v0.8.0 (qui notifie à la fin d’une tâche 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. Remplacez-le par des context engines personnalisés qui contrôlent ce que l’agent voit à chaque tour — filtrage, summarization ou injection de contexte spécifique au domaine.16 Cela découple la stratégie de contexte de la boucle principale de l’agent, ce qui permet une personnalisation du contexte par projet ou par domaine.
Sauvegarde et restauration (v0.9.0+)
hermes backup crée une archive complète de votre configuration, de vos sessions, skills et memory. hermes import restaure depuis une archive de sauvegarde.16 Utilisez cela pour migrer entre machines, créer des instantanés avant des changements majeurs ou partager une configuration connue comme fiable avec vos coéquipiers.
Prise en charge Termux / Android (v0.9.0+)
Hermes fonctionne nativement sur Android via Termux. Les chemins d’installation adaptés, les optimisations TUI pour les écrans mobiles, la prise en charge du backend vocal et la commande /image fonctionnent directement sur l’appareil.16
Renforcement de la sécurité (v0.13.0+)
v0.13.0 a corrigé 8 problèmes de sécurité P0 et modifié un paramètre par défaut en faveur de l’utilisateur.18 v0.14.0 poursuit avec 12 autres corrections P0 et 50 corrections P1, notamment le renforcement contre la force brute sudo / sudo-stdin, les correctifs de contournement de commandes dangereuses, la sanitisation des erreurs d’outils avant réinjection dans le modèle, l’auth API des plugins du dashboard, la couverture SSRF du skills-hub et l’analyse des avis de sécurité supply-chain pendant l’installation.19
| Correctif | Ce qui a changé |
|---|---|
| Caviardage des secrets activé par défaut | Auparavant optionnel. Les logs et les téléversements hermes debug share caviardent les secrets sauf désactivation explicite. v0.12.0 avait désactivé le caviardage par défaut après des signalements de corruption de payload ; v0.13.0 le réactive comme base plus sûre. |
| Contournement des DM cross-guild Discord (CVSS 8.1) | Les listes d’autorisation de rôles Discord sont désormais limitées au guild, ce qui ferme un chemin où un rôle utilisateur sur un guild autorisait les DM sur tous les autres. |
| Restrictions WhatsApp par défaut | L’adaptateur WhatsApp rejette les inconnus par défaut et ne répond jamais en self-chat. |
| Fenêtre TOCTOU MCP OAuth | Correction d’une condition de concurrence lors de l’enregistrement des identifiants dans les flux MCP OAuth. |
TOCTOU auth.json CLI |
Correction d’une fenêtre TOCTOU analogue dans le writer d’identifiants du store d’auth CLI. |
| Plancher SSRF du navigateur | Le routage hybride applique un plancher SSRF contre les métadonnées cloud pour les requêtes qui tentent d’atteindre 169.254.169.254 et ses équivalents. |
| Analyse d’injection de prompt Cron | Les prompts assemblés, y compris le contenu de skill chargé, sont analysés à la recherche d’injections de prompt avant l’exécution de la tâche cron. |
Caviardage hermes debug share |
Les téléversements debug share caviardent le contenu des logs au moment du téléversement, pas seulement au moment de l’écriture. |
Si vous maintenez un déploiement Hermes, considérez v0.13.0 et v0.14.0 comme des mises à niveau liées à la sécurité, pas seulement comme des livraisons de fonctionnalités. v0.13.0 corrige le contournement cross-guild Discord et deux fenêtres TOCTOU ; v0.14.0 ajoute une autre passe de renforcement sur la gestion de sudo, la réinjection des erreurs d’outils, les APIs de plugins, le SSRF du skills-hub et les avis de dépendances.
Architecture pour praticiens
Cette section s’adresse aux personnes qui veulent comprendre ce qui se passe sous le capot afin de pouvoir déboguer, étendre ou raisonner sur les performances. Elle synthétise les docs d’architecture amont.3
Points d’entrée → AIAgent
Chaque point d’entrée dans Hermes appelle au final 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 │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└──────────────────────────────────────────────────────────────────┘
Diagramme adapté des docs d’architecture amont.3
« 47 tools / 20 toolsets » contre « 28 tools » dans votre bannière. Le décompte « 47 tools » correspond au registre total des outils du dépôt amont — tous les outils livrés par Hermes avec leur code source, dans tous les toolsets. Votre CLI réellement en cours d’exécution affichera un nombre plus faible dans sa bannière de démarrage (l’installation contre laquelle j’ai vérifié ce guide indique 28 tools / 89 skills). Ce n’est pas un bug. Beaucoup de toolsets sont optionnels et doivent être explicitement activés dans config.yaml sous toolsets: — adaptateurs de plateformes de messagerie, automatisation de navigateur, outils de scraping plus lourds, etc. Le total du registre correspond à « ce qui est disponible » ; le nombre de la bannière correspond à « ce qui est activé dans votre profile actuel ». Vérifiez quels toolsets sont actifs avec hermes tools --list et activez ou désactivez des toolsets individuels avec le bloc toolsets: dans ~/.hermes/config.yaml (ou /tools list / /tools enable <name> / /tools disable <name> dans une session en cours — retirer un outil déclenche une réinitialisation de session afin que l’agent reconstruise son manifeste d’outils).
Les trois modes API
Hermes abstrait les différences entre providers en trois modes API, sélectionnés automatiquement à 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 OpenAI |
codex_responses |
OpenAI Codex (via ChatGPT OAuth) |
anthropic_messages |
Anthropic API (natif), Anthropic OAuth, proxies compatibles Anthropic |
Le résolveur runtime_provider.py mappe les tuples (provider, model) vers (api_mode, api_key, base_url) pour plus de 18 providers, en gérant les flux OAuth, les pools d’identifiants et la résolution d’alias.3
Flux de données dans une session CLI
User input → HermesCLI.process_input()
→ AIAgent.run_conversation()
→ 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 amont.3
Ordre d’assemblage du prompt
La pile de prompt inclut :13
SOUL.md(identité de l’agent — ou fallback intégré si indisponible)- Consignes de comportement tenant compte des outils
- Mémoire/contexte utilisateur (
MEMORY.md,USER.md) - Consignes des skills
- Fichiers de contexte (
AGENTS.md,.cursorrules) - Horodatage
- Indications de formatage propres à la plateforme
- Surcouches optionnelles de system-prompt comme
/personality
SOUL.md est la fondation — tout le reste se construit par-dessus.13
Stockage des sessions
Stockage de sessions basé sur SQLite avec recherche plein texte FTS5. Les sessions disposent d’un suivi de lignée (parent/enfant à travers les compressions), d’une isolation par plateforme et d’écritures atomiques avec gestion de la contention.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, hooks et commandes CLI via un contexte API. Les providers 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
Principes de conception
Depuis la page d’architecture amont :3
| Principe | Ce que cela signifie en pratique |
|---|---|
| Stabilité du prompt | Le system prompt ne change pas au milieu d’une conversation. Aucune mutation qui casse le cache, sauf actions utilisateur explicites (/model) |
| Exécution observable | Chaque appel d’outil est visible par l’utilisateur via des callbacks. Mises à jour de progression dans CLI (spinner) et gateway (messages de chat) |
| Interruptible | Les appels API et l’exécution d’outils peuvent être annulés en cours par une saisie utilisateur ou des signaux |
| Cœur agnostique à la plateforme | Une seule classe AIAgent sert CLI, gateway, ACP, batch et serveur API. Les différences de plateforme vivent dans le point d’entrée |
| Couplage lâche | Les sous-systèmes optionnels (MCP, plugins, providers de mémoire, environnements RL) utilisent des patterns de registre et un gating check_fn, pas des dépendances fortes |
| Isolation des profiles | Chaque profile obtient son propre HERMES_HOME, sa config, sa mémoire, ses sessions et son PID gateway. Plusieurs profiles s’exécutent simultanément |
Migration depuis OpenClaw
Hermes Agent est le successeur d’OpenClaw. Si vous migrez 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 ~/.openclaw par défaut (et détecte aussi automatiquement les anciens dossiers ~/.clawdbot et ~/.moldbot) et écrit dans ~/.hermes.6
Importé directement (30+ catégories) : SOUL.md, MEMORY.md, USER.md, AGENTS.md, skills depuis 4 dossiers sources, modèle par défaut, providers personnalisés, serveurs MCP, tokens de plateformes de messagerie et listes d’autorisation (Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost), paramètres par défaut de l’agent (effort de raisonnement, compression, délai humain, fuseau horaire, sandbox), politiques de réinitialisation de session, règles d’approbation, config TTS, paramètres du navigateur, paramètres des outils, timeout exec, liste d’autorisation des commandes, config gateway et clés API depuis 3 sources.6
Archivé pour revue manuelle : tâches cron, plugins, hooks/webhooks, backend de mémoire (QMD), config du registre de skills, UI/identité, journalisation, configuration multi-agent, liaisons de canaux, IDENTITY.md, TOOLS.md, HEARTBEAT.md, BOOTSTRAP.md.6
La résolution des clés API vérifie trois sources par ordre de priorité : valeurs de config → ~/.openclaw/.env → auth-profiles.json.6
Dépannage
« 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 exactement quelles clés sont manquantes.7
« Context limit: 2048 tokens » au démarrage (modèles locaux)
Hermes détecte automatiquement la longueur de contexte depuis l’endpoint /v1/models de votre serveur, mais beaucoup de serveurs locaux indiquent des valeurs par défaut basses. 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 apparaissent sous forme de texte au lieu de s’exécuter
Votre serveur n’a pas activé les appels d’outils, ou le modèle ne les prend pas en charge via 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 | Passez à la version 0.3.6+ et utilisez un modèle avec prise en charge native des outils |
Les réponses sont coupées en plein milieu d’une phrase
Deux causes possibles :2
- Limite de sortie trop basse (
max_tokens) côté serveur — SGLang utilise par défaut 128 tokens par réponse. Définissez--default-max-tokenssur le serveur ou configurezmodel.max_tokensdansconfig.yaml. - Épuisement du contexte — Le modèle a rempli sa fenêtre de contexte. Augmentez
model.context_lengthou activez la compression du contexte dans Hermes.
« Connection refused » depuis WSL2 vers un serveur de modèle hébergé sous Windows
WSL2 utilise un adaptateur réseau virtuel avec son propre sous-réseau — localhost dans WSL2 renvoie à la VM Linux, pas à l’hôte Windows. Deux options :2
Réseau en miroir (Windows 11 22H2+) : modifiez %USERPROFILE%\.wslconfig :
[wsl2]
networkingMode=mirrored
Puis exécutez wsl --shutdown et redémarrez. localhost fonctionne alors dans les deux sens.
Repli sur l’IP de l’hôte (anciennes versions de Windows) : récupérez l’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èle doit aussi se lier à 0.0.0.0, et non à 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
Où se trouve tout le reste ?
hermes status et hermes dump sont vos alliés ici. 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 n’importe quel fournisseur compatible OpenAI — Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Hugging Face, Google, ou votre propre endpoint auto-hébergé.12 Hermes inclut aussi un gateway de messagerie pour Telegram/Discord/Slack/WhatsApp/Signal que Claude Code ne propose pas.
Puis-je utiliser Hermes avec une clé API Anthropic ?
Oui. Trois possibilités :2
- Définissez
ANTHROPIC_API_KEYdans~/.hermes/.envet exécutezhermes chat --provider anthropic --model claude-sonnet-4-6 - Exécutez
hermes modelet sélectionnez Anthropic — Hermes utilisera le magasin d’identifiants de Claude Code lorsqu’il est disponible - Définissez manuellement un
ANTHROPIC_TOKEN(token setup-token ou token OAuth) comme solution de repli
L’option 2 est préférable si vous utilisez déjà Claude Code sur la même machine — elle conserve le caractère actualisable des identifiants Claude.
Comment changer de fournisseur sans perdre ma conversation ?
Utilisez /model provider:model dans une session. L’historique de 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 vision/web/compression ne fonctionnent pas
Vous tombez sur le repli du modèle auxiliaire. La vision, la synthèse web, la compression et d’autres tâches secondaires utilisent un LLM auxiliaire distinct — par défaut Gemini Flash via auto-détection (OpenRouter → Nous → Codex). Si aucun de ces fournisseurs n’est configuré et que seul Anthropic l’est, ces fonctionnalités se dégradent silencieusement.4
Correctif : ajoutez soit une OPENROUTER_API_KEY pour les tâches auxiliaires, soit reconfigurez les emplacements auxiliaires pour utiliser votre fournisseur principal. Notez que la compression du contexte réside dans son propre bloc de premier niveau compression: et prend summary_provider, pas auxiliary.compression.provider — l’emplacement auxiliary.compression n’expose qu’un timeout. Correctif complet :
auxiliary:
vision: { provider: "main" }
web_extract: { provider: "main" }
compression:
summary_provider: "main"
Quelle est la différence entre SOUL.md et AGENTS.md ?
SOUL.md est l’identité de votre agent — ton, style, paramètres de communication par défaut. Il se trouve dans ~/.hermes/SOUL.md et vous suit partout. AGENTS.md est propre au projet — architecture, conventions, commandes, chemins — et se trouve dans le dossier de votre projet.13 Si cela doit vous suivre partout, utilisez SOUL.md. Si cela appartient à un projet, utilisez AGENTS.md.
Comment exécuter plusieurs instances Hermes côte à côte ?
Avec des profils. Chaque profil dispose de son propre HERMES_HOME, de sa configuration, de sa mémoire, de ses sessions et de son PID de 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, via le chemin d’endpoint personnalisé. Hermes fonctionne avec n’importe quel serveur compatible 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 la configuration propre à chaque serveur.
Pourquoi la bannière de démarrage affiche-t-elle moins d’outils que le guide n’en attribue à Hermes ?
Le guide cite 47 outils / 20 toolsets depuis le registre d’architecture amont — c’est le nombre total d’outils dont Hermes fournit le code source sur l’ensemble des toolsets. Votre installation en cours affiche un nombre plus faible dans la bannière (l’installation de référence utilisée pour ce guide indique 28 outils), car Hermes n’active au démarrage que l’ensemble de toolsets par défaut. Beaucoup de toolsets sont optionnels : adaptateurs de gateway de messagerie, automatisation du navigateur, piles de scraping plus lourdes et plusieurs intégrations spécialisées doivent être explicitement listé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 profil 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 des toolsets individuels à l’exécution avec /tools enable <name> et /tools disable <name> (la désactivation déclenche une réinitialisation de session afin que l’agent reconstruise son manifeste d’outils avec la nouvelle structure).
Comment Hermes gère-t-il le repli de modèle 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 (limite de débit, erreur serveur, échec d’authentification), Hermes bascule vers le repli en cours de session sans perdre l’historique de conversation. Cela se déclenche au maximum une fois par session.
L’agent peut-il améliorer ses propres skills au fil du temps ?
Oui — c’est la partie « auto-améliorante » de Hermes Agent. L’agent peut créer, mettre à jour et supprimer des skills via l’outil skill_manage. Lorsqu’il identifie un workflow non trivial, il enregistre l’approche sous forme de skill pour la réutiliser plus tard.11 L’agent crée des skills après des tâches complexes (5 appels d’outils ou plus), lorsqu’il rencontre des erreurs et trouve le chemin qui fonctionne, lorsque vous corrigez son approche, ou lorsqu’il découvre un workflow non trivial.
Existe-t-il une intégration 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-07-01 | Guide v1.10 : v0.18.0 « The Judgment Release » (1 juillet 2026, tag v2026.7.1). Ajout de la section « Nouveautés de v0.18.0 » : backlog P0/P1 entièrement clos (~692 éléments) ; Mixture-of-Agents first-class avec sortie d’ensemble étiquetée par modèle et streaming en direct ; contrats de completion — /goal vérifie son propre travail en exécutant les contrôles du projet ; /learn (décrire un workflow → skill réutilisable, conforme à CONTRIBUTING.md) ; timeline mémoire/skill /journey + graphe de mémoire desktop ; fan-out de subagents en arrière-plan (tâches déléguées concurrentes) ; Desktop Projects (projet/repo/lane) ; gateway scale-to-zero avec coordination du drain ; Google Vertex AI (Gemini via comptes de service GCP, actualisation automatique OAuth2) ; compositeur /prompt \$EDITOR. Source : versions 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 v0.17.0 ». Messagerie : iMessage sans relais via Photon Spectrum (hermes photon login, OAuth par code appareil), adaptateur officiel WhatsApp Business Cloud API (sans bridge), groupes SimpleX + pièces jointes, 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) ; valeur par défaut xAI → grok-build-0.1 ; les modèles adaptatifs Anthropic retirent le champ reasoning. Desktop/dashboard : subagents en arrière-plan avec fenêtres de surveillance en direct (delegate_task(background=true)), constructeur complet de profils, Skills Hub retravaillé, Automation Blueprints, connexion 401 sécurisée, thèmes VS Code Marketplace, interface en japonais + chinois traditionnel. Skills/outils : édition image-to-image avec image_generate, lot atomique operations pour memory, skill simplify-code, booléen write_approval (remplace write_mode). Architecture : gestionnaire d’élicitation MCP, CronScheduler + Chronos enfichables, portée Managed (/etc/hermes), relais Gateway-Gateway. Commandes : /version, /billing, hermes curator run --consolidate (opt-in). Sécurité : contournement de denylist par échappement shell fermé, adaptateurs d’approbation/gateway en fail-closed, environnement cron assaini, secrets masqués dans les dumps debug, filtrage d’exfiltration stdio MCP, mises à niveau CVE urllib3 + PyJWT. |
21 |
| 2026-06-08 | Guide v1.8 : v0.16.0 « The Surface Release » (5 juin 2026, tag v2026.6.5). Guide renommé vers v0.16 et ajout de la section « Nouveautés de v0.16.0 ». Titre : Hermes n’est plus limité au terminal. Application native Hermes Desktop (Electron, macOS/Linux/Windows) avec installation en un clic, mise à jour automatique dans l’app, chat en streaming, glisser-déposer + collage d’image depuis le presse-papiers, palette Cmd+K, archive/recherche de sessions, sélecteur de modèle dans la barre d’état, connexion à un gateway distant via WebSocket sécurisé (OAuth ou utilisateur/mot de passe, hôtes par profil, liens @session inter-profils), et traduction complète en chinois simplifié via i18n typée. Panneau d’administration navigateur (dashboard web → administration complète) : activation/désactivation du catalogue MCP, gestion des identifiants, création de webhooks/hooks, configuration de la mémoire, contrôles du gateway, page System avec vérification avant mise à jour + Debug Share, nouvelle page Channels, et auth enfichable (utilisateur/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é en TUI + overlay Sessions, hermes portal, hermes prompt-size, hermes sessions optimize. Nouveaux modèles : deepseek-v4-flash, MiniMax-M3 (contexte 1M), qwen3.7-plus, gemini-3.5-flash ; OAuth xAI Grok first-class dans le lanceur desktop ; sélecteur de modèle flou ; actualisation horaire du catalogue. Skills : ensemble par défaut allégé (Spotify → plugin natif, Linear → hermes mcp install linear, skills obsolètes retirés), garde de pertinence environments: (kanban/docker/s6), tap de confiance par défaut NVIDIA/skills, divulgation progressive (scopée) des outils MCP/plugin. Sécurité : CVE-2026-48710 (Starlette BadHost) épinglé ≥1.0.1 ; contrôles SSRF hors event loop ; token bearer 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 unicode invisible. 2 P0 + 62 P1 clos (16 avec tag sécurité). |
20 |
| 2026-05-31 | Guide v1.7.1 : v0.15.1 (29 mai 2026, 01:12 UTC) — patch Velocity. Correctif le jour même après Velocity ; ligne de tag épinglée v2026.5.29. Corrige la boucle de rechargement 401 du dashboard affectant les déploiements en mode loopback. Docker ne traite plus --insecure comme implicite — définissez explicitement HERMES_DASHBOARD_INSECURE=1 pour le réactiver. Les commandes nues MCP (npx, npm, node) se résolvent à nouveau correctement dans les conteneurs Docker. Les pills de source de la page Skills et la barre latérale de catégories s’affichent. Les workers Kanban répondent proprement à SIGTERM au lieu de laisser des processus orphelins. Le catalogue Skills.sh passe de 858 à 19 932 entrées via découverte de sitemap. 28 commits, 21 PR fusionnées, 9 contributeurs. v0.15.2 (29 mai 2026, 13:37 UTC) — patch de packaging Velocity. Corrige les distributions wheel et sdist afin d’inclure les manifestes plugin.yaml, pour que les installations depuis PyPI fonctionnent sans sideloader l’arborescence source. Correctif limité au packaging, 4 contributeurs. |
23 |
| 2026-05-28 | Guide v1.7 : ajout de v0.15.0 (28 mai 2026) — The Velocity release (tag v2026.5.28). Titre : vaste passe de refactorisation + nouvelles primitives d’orchestration. Refactorisation du codebase : run_agent.py réduit de 76 % (16 083 → 3 821 lignes), réparti dans 14 modules cohésifs. Kanban multi-agent v2 : décomposition automatique des objectifs de haut niveau en sous-tâches, topologie swarm pour coordonner des workers en parallèle, overrides de modèle par tâche, tâches planifiées, gestion des worktrees. Performance : seconde supplémentaire économisée au démarrage à froid ; réduction de 47 % des appels de fonction par conversation ; session_search repensé, 4 500× plus rapide avec suppression de la dépendance LLM (et élimination de son coût API). Sécurité : la défense Promptware protège contre les injections de prompt de classe Brainworm à trois points de contrôle de sécurité ; l’intégration Bitwarden Secrets Manager remplace plusieurs clés API par fournisseur par un seul token de bootstrap. Bundles de skills : chargement simultané de plusieurs skills avec une seule slash command. Orchestrateur de sessions TUI : gestion multi-session dans une seule fenêtre de terminal. Nouveaux providers : Krea 2 (Medium/Large) et prise en charge du plugin FAL pour la génération d’images ; l’intégration xAI ajoute un plugin de recherche web, un upstream OAuth, la détection de modèles retirés et des pauses TTS naturelles. Stats : 1 302 commits, 747 PR fusionnées, 321 contributeurs communautaires. Selon les notes de publication GitHub, un correctif publié le jour même ou le lendemain traite la boucle de rechargement 401 du dashboard, la variable d’environnement explicite --insecure de Docker, la résolution des commandes nues MCP dans Docker (npx, npm, node), la restauration de la page Skills, la gestion SIGTERM des workers Kanban et le catalogue Skills complet de 19 932 entrées via sitemap. |
24 |
| 2026-05-21 | Guide v1.6 : ajout de v0.14.0 (16 mai 2026) — The Foundation release. Titre : fondation d’installation/runtime plus légère, avec surfaces providers, gateway, médias et vérification élargies. Ajout de SuperGrok OAuth avec contexte grok-4.3 1M, hermes proxy compatible OpenAI pour providers OAuth, x_search first-class, pip install hermes-agent, installations de dépendances paresseuses, lancement ~19 s plus rapide, appels CDP navigateur 180× plus rapides, LINE + SimpleX Chat pour 22 plateformes de messagerie, Microsoft Teams de bout en bout, /handoff, /subgoal, boutons de clarification natifs sur Telegram/Discord, backfill de l’historique Discord, vision_analyze en pixels bruts, pied de page de vérification des mutations de fichiers par tour, diagnostics sémantiques LSP à chaque écriture, video_generate unifié, computer_use via cua-driver pour providers non-Anthropic, URLs cliquables OSC8, prise en charge Zed ACP Registry, routeur OpenRouter Pareto Code, NovitaAI, runtime app-server Codex, tap de confiance huggingface/skills, 9 skills optionnels, plugin ctx.llm / tool_override, recherche web Brave/DDGS, renommage Qwen Cloud, bêta Windows native et clôtures de 12 P0 / 50 P1. |
19 |
| 2026-05-07 | Guide v1.5 : ajout de v0.13.0 (7 mai 2026) — The Tenacity release. Titre : un tableau Kanban multi-agent durable (heartbeat, reclaim, détection de zombies, garde anti-hallucination, max_retries par tâche, tableaux multi-projets) qui transforme les swarms en primitive first-class plutôt qu’en schéma de délégation. La commande /goal verrouille l’agent sur une cible entre les tours (motif Ralph-loop sous forme de slash command). Nouvel outil video_analyze, Gemini-first avec prise en charge extensible des modèles compatibles. Provider xAI Custom Voices TTS avec clonage vocal. i18n en 7 langues (zh-Hans, ja, de, es, fr, uk, tr) pour CLI et les messages gateway ; docs zh-Hans uniquement. Google Chat comme 20e plateforme de messagerie via le modèle d’adaptateur enfichable ; IRC + Microsoft Teams migrés vers le même modèle. ProviderProfile ABC + plugins/model-providers/ pour des providers tiers enfichables sans modifications du cœur. Reprise automatique de session après redémarrage du gateway, /update et rechargement de fichier source. Réécriture Checkpoints v2 avec conception à store unique, vrai pruning et garde-fous disque. Huit clôtures de sécurité P0 : masquage des secrets activé par défaut, contournement DM inter-serveurs Discord (CVSS 8.1), rejet des inconnus WhatsApp + sourdine du self-chat, TOCTOU OAuth MCP, TOCTOU auth.json CLI, plancher SSRF navigateur, scan d’injection de prompt cron, masquage hermes debug share. Linting post-écriture pour Python/JSON/YAML/TOML, mode cron no_agent réservé aux scripts, allowlists de plateformes pour Slack/Telegram/Mattermost/Matrix/DingTalk, améliorations MCP (transport SSE, transfert OAuth, balises image MEDIA). Stats depuis v0.12.0 : 864 commits, 588 PR fusionnées, 829 fichiers modifiés, 295 contributeurs communautaires, 282 issues closes (13 P0, 36 P1). |
18 |
| 2026-05-06 | Guide v1.4 : ajout de v0.12.0 (30 avril 2026) — The Curator release. Titre : un Curator autonome en arrière-plan exécuté sur le ticker cron du gateway (cycle par défaut de 7 jours), qui note la bibliothèque de skills selon une grille, élague les skills mortes, consolide les skills liées et écrit des rapports par exécution — Hermes se maintient lui-même entre les sessions actives. Boucle d’auto-amélioration améliorée avec notation fondée sur une grille, biais de mise à jour active, héritage runtime correct et toolsets scopés limités à la mémoire et aux skills. Quatre nouveaux providers d’inférence : GMI Cloud, Azure AI Foundry, MiniMax OAuth et Tencent Tokenhub. LM Studio promu first-class. Les manifestes de catalogue de modèles distants se mettent désormais à jour automatiquement sans release. Deux nouvelles plateformes de messagerie : Microsoft Teams (19e, via architecture gateway enfichable) et Tencent Yuanbao (18e, texte + médias natifs). Spotify natif via OAuth PKCE avec skill incluse ; plugin Google Meet pour appels et transcription ; provider Piper local TTS. ComfyUI v5 + TouchDesigner-MCP passent d’optionnels à inclus par défaut. Nouvelles skills : Humanizer, claude-design, design-md, airtable. Ajouts CLI : mode one-shot hermes -z, preflight hermes update --check, slash command /reload-skills, styles d’indicateur d’occupation enfichables. Démarrage à froid visible du TUI réduit d’environ 57 % grâce à l’initialisation paresseuse de l’agent et aux imports paresseux. Sécurité : masquage des secrets désactivé par défaut pour éviter la corruption de payload ; blocklist stricte pour les commandes irrécupérables. Stats : 1 096 commits, 550 PR fusionnées, 213 contributeurs communautaires. |
17 |
| 2026-04-25 | Guide v1.3 : ajout de v0.11.0 (23 avril 2026) — The Interface release. Réécriture complète en React/Ink du TUI interactif avec backend Python JSON-RPC (tui_gateway) ; compositeur collant, streaming en direct avec prise en charge du presse-papiers OSC-52, touches de sélecteur stables, barre d’état avec chronomètre par tour et branche git, confirmation /clear, preset thème clair, overlay d’observabilité de spawn de subagent. Architecture de transport enfichable — conversion de format et transport HTTP extraits vers agent/transports/ pour une plomberie provider plus propre. AWS Bedrock natif via Converse API. Cinq nouveaux chemins 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 flagship OpenAI est désormais accessible via ChatGPT Codex OAuth sans clé API séparée. QQBot (17e plateforme de messagerie) avec configuration par scan QR et streaming. Extension de la surface plugin : slash commands, dispatch d’outils, blocage d’exécution, transformation de résultats. /steer <prompt> — ajustements en cours d’exécution qui injectent une note que l’agent en cours voit après son prochain appel d’outil, sans interrompre le tour ni casser le cache de prompt. Les hooks shell câblent des scripts comme hooks de cycle de vie sans plugins Python. Le mode de livraison directe webhook transmet les payloads directement à un chat de plateforme, en contournant l’agent pour le fan-out. Délégation plus intelligente avec rôles d’orchestrateur, profondeur de spawn configurable et coordination de fichiers. Le dashboard gagne un système de plugins, le changement de thème en direct, l’i18n et la responsivité mobile. Stats depuis v0.9.0 : 1 556 commits, 761 PR fusionnées, 1 314 fichiers modifiés, 224 174 insertions, 29 contributeurs communautaires. |
25 |
| 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 navigateur Browser Use) sans clés API supplémentaires. Opt-in par outil via le nouveau champ de configuration use_gateway. Le runtime privilégie le gateway aux clés API directes lorsque les deux sont configurés. Variable d’environnement HERMES_ENABLE_NOUS_MANAGED_TOOLS supprimée. Hermes Agent CLI reste sous licence MIT et entièrement gratuit. |
26 |
| 2026-04-13 | Guide v1.1 : ajout des fonctionnalités v0.8.0 et v0.9.0. Dashboard web local, mode /fast, plateformes iMessage + WeChat (16 au total), surveillance des processus en arrière-plan (watch_patterns), context engine enfichable, hermes backup/hermes import, Termux/Android, providers xAI + MiMo + Google AI Studio + Qwen, commande /debug, durcissement de sécurité complet. |
15 16 |
| 2026-04-10 | Guide v1.0 : première version couvrant Hermes Agent v0.7.0. Auth provider, configuration, CLI, slash commands, outils, skills, mémoire, gateway, cron, MCP, compression, architecture, migration OpenClaw, dépannage, FAQ. |
Références
-
Nous Research, README du projet “Hermes Agent” sur GitHub. Source principale pour la description du produit (agent auto-améliorant, multi-fournisseur, gateway de messagerie, backends de terminal, évolution des skill, planificateur cron, délégation) et la commande en une ligne “Quick Install”. ↩↩↩
-
Nous Research, “AI Providers” dans la documentation Hermes Agent. Source principale pour la liste complète des fournisseurs, les méthodes d’authentification par fournisseur (Nous Portal OAuth, code d’appareil Codex, types de token GitHub Copilot, authentification Anthropic en trois méthodes, fournisseurs d’IA chinois, routage Hugging Face, endpoints personnalisés), les trois chemins d’authentification (clé API dans
.env, OAuth viahermes model, endpoint personnalisé dansconfig.yaml), la syntaxe de la slash command/model(y compriscustom:name:model), les modèles de configuration Ollama/vLLM/SGLang/llama.cpp/LM Studio, les instructions réseau WSL2, la chaîne de détection de longueur de contexte, la configuration du modèle de fallback, le routage intelligent des modèles et les fournisseurs personnalisés nommés. Tous les noms de variables d’environnement propres aux fournisseurs, types de token, remplacements d’URL de base et identifiants de modèles de cet article proviennent de cette page. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Architecture” dans le guide développeur Hermes Agent. Source principale pour le schéma de vue d’ensemble du système, la structure des dossiers, le flux de données à travers la session CLI et les chemins de messages du gateway, les trois modes API (
chat_completions,codex_responses,anthropic_messages), la résolution des fournisseurs viaruntime_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. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Configuration” dans le guide utilisateur Hermes Agent. Source principale pour la structure du dossier de configuration, la règle
config.yamlvs.env(«config.yamlgagne pour les paramètres non secrets »), la chaîne de priorité de configuration (args CLI → env → config.yaml → .env → valeurs par défaut), les paramètres de compression de contexte (bloccompression.*avecthreshold,target_ratio,protect_last_n,summary_model,summary_provider,summary_base_url), les seuils de pression budgétaire (70 % prudence, 90 % avertissement), les délais d’expiration du streaming avec ajustement automatique pour fournisseur local, et le bloc complet de configuration des modèles auxiliaires (auxiliary:avec les emplacementsvision,web_extract,approval,compression,session_search,skills_hub,mcp,flush_memories). La restriction du fournisseur"main"aux emplacements auxiliaire/compression/fallback vient également de cette page. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Migrate from OpenClaw” dans les guides Hermes Agent. Source pour le flux de migration OpenClaw → Hermes. ↩↩
-
Nous Research, “CLI Commands Reference” dans la documentation de référence Hermes Agent. Source principale pour chaque commande CLI de premier niveau documentée 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 updateethermes uninstall. Tous les flags de sous-commandes, descriptions d’options, comportements du pool d’identifiants, syntaxes de filtrage des logs, flags de migration OpenClaw, commandes de gestion de profile et commandes d’installation de service de cet article proviennent de cette page. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Installation” dans le guide de démarrage Hermes Agent. Source principale pour la commande d’installation en une ligne, le comportement de l’installateur (prérequis, prise en charge des plateformes, détection automatique de Termux, exigences Windows/WSL2), le tableau des extras facultatifs, les étapes d’installation manuelle et les commandes de vérification. ↩↩↩↩↩↩↩
-
Nous Research, “CLI Commands Reference” — consultez en particulier 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 usage prévu pour partager des diagnostics. ↩ -
Nous Research, “Slash Commands Reference” dans la documentation de référence Hermes Agent. Source principale pour chaque slash command listée dans cet article, l’architecture
COMMAND_REGISTRY, la séparation CLI vs messagerie, les slash commands dynamiques de skill, les commandes rapides dansconfig.yaml, le comportement de correspondance par préfixe et les commandes réservées à la messagerie (/status,/sethome,/approve,/deny,/update,/commands). ↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Tools & Toolsets” dans le guide utilisateur Hermes Agent. Source principale pour la vue d’ensemble des catégories d’outils, les commandes d’utilisation des toolset, les six backends de terminal (local, docker, ssh, singularity, modal, daytona), la configuration des conteneurs (cpu, memory, disk, persistent), le renforcement de sécurité des conteneurs, la gestion des processus en arrière-plan API et la prise en charge de sudo. ↩↩↩↩↩↩↩↩↩↩
-
Nous Research, “Skills System” dans le guide utilisateur Hermes Agent. Source principale pour la divulgation progressive, le format
SKILL.md, les skill propres aux plateformes, l’activation conditionnelle (fallback_for_toolsets,requires_toolsets,fallback_for_tools,requires_tools), les skill gérés par l’agent viaskill_manage, les commandes du hub de skill et la liste des sources (official,skills-sh,well-known,github,clawhub,claude-marketplace,lobehub), l’analyse de sécurité et les niveaux de confiance, ainsi que les dossiers de skill externes. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Persistent Memory” dans le guide utilisateur Hermes Agent. Source principale pour les limites de caractères de
MEMORY.md/USER.md, le pattern d’instantané gelé, les actions de l’outil mémoire (add,replace,remove), ce qu’il faut enregistrer ou ignorer, la comparaison entre mémoire et recherche de session, et la liste des huit fournisseurs de mémoire externes (Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover, Supermemory). ↩↩↩↩↩↩↩↩ -
Nous Research, “Personality & SOUL.md” dans le guide utilisateur Hermes Agent. Source principale pour le comportement de
SOUL.md(réside dansHERMES_HOME, jamais écrasé, emplacement n° 1 dans le prompt système, analysé côté sécurité avant inclusion), la distinction SOUL.md vs AGENTS.md, la liste des personnalités intégrées (14 personnalités dehelpfulàhype), les personnalités personnalisées dansconfig.yaml, le pattern de superposition/personalityet l’ordre complet d’assemblage de la pile de prompts. ↩↩↩↩↩↩↩↩↩↩↩↩ -
Nous Research, “Use MCP with Hermes” et MCP Config Reference dans les guides et la référence Hermes Agent. Source pour le format de configuration
mcp_servers:dansconfig.yamlavec les champscommand,args,env. ↩ -
Hermes Agent v0.8.0 Release Notes. 8 avril 2026. Notifications automatiques des processus en arrière-plan, MiMo v2 Pro gratuit sur Nous Portal, bascule
/modelen direct 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. ↩↩↩↩↩ -
Hermes Agent v0.9.0 Release Notes. 13 avril 2026. Tableau de bord web local, Fast Mode (
/fast), iMessage via BlueBubbles, WeChat + WeCom, Termux/Android, surveillance des processus en arrière-plan (watch_patterns), fournisseurs natifs xAI + Xiaomi MiMo, context engine enfichable, prise en charge unifiée des proxy, renforcement de sécurité (corrections de path traversal, injection shell, SSRF, RCE),hermes backup/hermes import,/debug+hermes debug share, 16 plateformes prises en charge. 487 commits, 269 PR fusionnées, 24 contributeurs. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.12.0 Release Notes. 30 avril 2026. « The Curator release. » Curator autonome en arrière-plan qui évalue, élague et consolide la bibliothèque de skill selon un cycle par défaut de 7 jours exécuté sur le ticker cron du gateway. Boucle d’auto-amélioration améliorée : notation à base de rubrique, biais de mise à jour active, héritage runtime correct, toolsets à portée limitée restreints à la mémoire et aux skill. Quatre nouveaux fournisseurs d’inférence : GMI Cloud, Azure AI Foundry, MiniMax OAuth, Tencent Tokenhub. LM Studio promu en fonctionnalité de premier ordre. Les manifestes de catalogues de modèles distants se mettent à jour automatiquement sans release. Deux nouvelles plateformes de messagerie : Microsoft Teams (19e, via architecture de gateway enfichable) et Tencent Yuanbao (18e, texte + médias natifs). Spotify natif via PKCE OAuth avec skill fourni ; plugin Google Meet pour appels et transcription ; fournisseur TTS local Piper. ComfyUI v5 + TouchDesigner-MCP inclus par défaut. Nouveaux skill : Humanizer, claude-design, design-md, airtable. CLI : mode one-shot
hermes -z, préflighthermes update --check, slash command/reload-skills, styles d’indicateur d’occupation enfichables. Démarrage à froid du TUI réduit d’environ 57 % grâce à l’initialisation paresseuse. Sécurité : caviardage des secrets désactivé par défaut ; blocklist stricte pour les commandes irrécupérables. Statistiques depuis v0.11.0 : 1 096 commits, 550 PR fusionnées, 213 contributeurs communautaires. Voir aussi : tag de release v2026.4.30. ↩↩↩ -
Hermes Agent v0.13.0 Release Notes. 7 mai 2026. « The Tenacity release. » Tableau Kanban multi-agent avec heartbeat, reclaim, détection de zombies, hallucination gate,
max_retriespar tâche, tableaux multi-projets. Slash command/goalpour verrouillage d’objectif entre tours (primitive de boucle Ralph) avec budget de tours configurable. Outilvideo_analyze, Gemini-first avec extensibilité multimodale compatible. Fournisseur TTS xAI Custom Voices avec clonage vocal. i18n en 7 langues : zh-Hans, ja, de, es, fr, uk, tr (CLI + messages gateway ; docs zh-Hans uniquement). Google Chat comme 20e plateforme de messagerie via pattern d’adaptateur enfichable avec hooks de plugin génériquesenv_enablement_fn/cron_deliver_env_var; IRC et Microsoft Teams migrés vers le même pattern. ABCProviderProfile+plugins/model-providers/pour fournisseurs tiers enfichables. Reprise automatique de session après redémarrage du gateway,/updateet rechargements de fichiers sources. Réécriture checkpoints v2 en stockage unique avec véritable élagage, garde-fous disque, aucun dépôt fantôme orphelin. Huit clôtures de sécurité P0 : caviardage des secrets activé par défaut, contournement DM inter-serveurs Discord (CVSS 8.1, allowlists de rôles limitées au serveur), WhatsApp rejette les inconnus par défaut + ne répond jamais dans l’auto-chat, TOCTOU de sauvegarde des identifiants MCP OAuth, TOCTOUauth.jsonCLI dans les writers d’identifiants, plancher SSRF de métadonnées cloud navigateur dans le routage hybride, analyse des prompts assemblés par cron (y compris contenu des skill) contre l’injection de prompt, caviardage du contenu des logshermes debug shareau moment de l’upload. Autres éléments notables : linting post-écriture pour Python/JSON/YAML/TOML, mode watchdog cronno_agentscript-only, allowlists de plateformes sur Slack/Telegram/Mattermost/Matrix/DingTalk, améliorations MCP (transport SSE, transfert OAuth, résultats d’image en tags MEDIA). Statistiques depuis v0.12.0 : 864 commits, 588 PR fusionnées, 829 fichiers modifiés, 295 contributeurs communautaires, 282 issues closes (13 P0, 36 P1). ↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.14.0 Release Notes. 16 mai 2026. « The Foundation release. » Depuis v0.13.0 : 808 commits, 633 PR fusionnées, 1 393 fichiers modifiés, 165 061 insertions, 545 issues closes (12 P0, 50 P1) et 215 contributeurs communautaires. Ajoute SuperGrok OAuth avec contexte grok-4.3 1M,
hermes proxy,x_search, packaging PyPI, dépendances paresseuses, cache de prompt Claude 1 h inter-session, lancement environ 19 s plus rapide, appels CDP navigateur 180× plus rapides, LINE et SimpleX Chat pour 22 plateformes de messagerie,/handoff, boutons de clarification natifs, backfill d’historique Discord,vision_analyzeraw-pixel, pied de page de vérificateur de mutation de fichier par tour, diagnostics sémantiques LSP,video_generateunifié,computer_usecua-driver, liens OSC8, prise en charge Zed ACP Registry, routeur OpenRouter Pareto Code, NovitaAI, runtime app-server Codex,huggingface/skills, pluginctx.llm,tool_override, recherche Brave/DDGS, renforcement contre les commandes dangereuses,/subgoal, renommage Qwen Cloud, bêta Windows native, 16 locales au total, et larges mises à jour de documentation/tests. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.16.0 release notes, « The Surface Release », tag
v2026.6.5, publié le 2026-06-06T00:55:58Z (date du tag de release : 5 juin 2026) ; dernière version au 2026-06-08. Nouveau Hermes Desktop natif (Electron, macOS/Linux/Windows ; connexion à un gateway distant via WebSocket sécurisé avec OAuth ou utilisateur/mot de passe ; hôtes distants par profile ; liens@sessioninter-profile ; interface en chinois simplifié via i18n typée,display.language). Tableau de bord web étendu en panneau d’administration complet (toggles de catalogue MCP, gestion des identifiants, création de webhook/hook, configuration mémoire, contrôles gateway, page System avec vérification avant mise à jour + Debug Share, page Channels ; auth enfichable incluant OIDC auto-hébergé ethermes dashboard register). Nouvelles commandes :/undo [N], interface par défaut configurable (cli/tui,--cli),/modelTUI + overlay Sessions,hermes portal,hermes prompt-size,hermes sessions optimize. Nouveaux modèles :deepseek-v4-flash,MiniMax-M3(contexte 1M),qwen3.7-plus,gemini-3.5-flash; xAI Grok OAuth ; sélecteur approximatif ; actualisation horaire du catalogue. Skills : ensemble par défaut allégé, gate de pertinenceenvironments:, tap de confiance par défautNVIDIA/skills, divulgation progressive des outils, correction de faux succès OAuth MCP. Sécurité : CVE-2026-48710 (Starlette BadHost) épinglé ≥1.0.1, vérifications SSRF sorties de l’event loop, bearer token Bedrock retiré de l’env des sous-processus,bws_cache.jsonprotégé en lecture, ajoutsdocker restart/stop/killaux patterns dangereux, assainissement Unicode invisible ; 2 P0 + 62 P1 closes (16 taguées sécurité). Le cadrage marketing des notes de release (comptes PR/commit, « none of this existed a week ago ») est exclu ; seuls les faits concrets de fonctionnalité/version liés au tag sont consignés. Vérification de session actuelle le 8 juin 2026. ↩↩↩↩↩↩↩↩ -
Hermes Agent v0.17.0 release notes, « The Reach Release », tag
v2026.6.19, 19 juin 2026 ; dernière version au 2026-06-21. Messagerie : iMessage via Photon Spectrum (device-code OAuth,hermes photon login, aucun relais Mac) ; adaptateur officiel WhatsApp Business Cloud API (remplace le processus bridge) ; groupes SimpleX, pièces jointes natives, traitement par lots des textes, acceptation automatique ; plugin de plateforme Raft fourni. Modèles/fournisseurs :z-ai/glm-5.2(contexte 1M),anthropic/claude-fable-5,laguna-m.1,nemotron-3-ultra,grok-composer-2.5-fast(xAI OAuth, contexte 200k) ; valeur par défaut xAI →grok-build-0.1; les modèles adaptatifs Anthropic utilisent le contrat de réflexion moderne (pas de champreasoning). CLI/slash :/version,/billing,hermes photon login,hermes curator run --consolidate(opt-in), interface graphiquehermes model, clonage de profile. Desktop : fenêtres de surveillance de sous-agents en arrière-plan (delegate_task(background=true)), sélecteur de modèle Composer, raccourcis reconfigurables, notifications natives de l’OS, brouillons par fil, thèmes VS Code Marketplace, interface en japonais + chinois traditionnel. Tableau de bord : constructeur de profile complet, sélecteur de profile global, refonte du Skills Hub avec analyse de sécurité, Automation Blueprints, connexion sécurisée (401 derrière OAuth). Skills/outils : édition image-to-imageimage_generateentre fournisseurs, batch atomiquememoryoperations, skillsimplify-codede revue parallèle, booléenwrite_approvalremplacewrite_mode. Architecture : sous-agents en arrière-plan (handle renvoyé immédiatement, résultat réinjecté comme un tour), gestionnaire d’élicitation MCP pour confirmation au milieu d’un appel d’outil, outils MCP à connexion tardive exposés entre les tours, CronScheduler enfichable + cron géré Chronos, scope Managed (/etc/hermesépinglé par l’admin), relais Gateway-Gateway. Sécurité : contournement de denylist shell-escape fermé, échec fermé en cas de module d’approbation manquant et d’adaptateurs gateway own-policy, env des scripts de jobs cron assaini, secrets caviardés dans les debug dumps, métadonnées hôte exclues du statut public, filtrage des patterns d’exfiltration stdio MCP, montées de version CVE urllib3 + PyJWT. Le cadrage marketing de release (comptes commit/PR) est exclu. Vérification de session actuelle le 21 juin 2026. ↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.18.0 release notes (tag
v2026.7.1), 1er juillet 2026 — « The Judgment Release. » Balayage prioritaire du backlog (tous les P0/P1 clos, environ 692 éléments en douze jours) ; Mixture-of-Agents sélectionnable comme modèle de premier ordre dans toutes les interfaces, avec la sortie complète de chaque modèle de référence rendue dans son propre bloc libellé et streaming de réponse 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(transformez n’importe quoi en skill réutilisable en le décrivant, avec conformité automatique à CONTRIBUTING.md) ;/journeychronologie visuelle mémoire/skill avec édition et graphe mémoire desktop ; fan-out de sous-agents en arrière-plan (plusieurs tâches déléguées concurrentes) ; Desktop Projects (modèle projet/repo/lane) ; gateway scale-to-zero avec coordination de drain ; prise en charge Google Vertex AI (Gemini via comptes de service GCP, rafraîchissement automatique du token OAuth2) ; commande$EDITOR/prompt. Vérification de session actuelle le 1er juillet 2026 (PST) sur la page des releases GitHub ; v0.18.0 est la dernière release. ↩↩↩↩↩↩↩↩↩↩↩ -
Hermes Agent v0.15.1 release notes et Hermes Agent v0.15.2 release notes. v0.15.1 (29 mai 2026, 01:12 UTC) est le hotfix Velocity du même jour : correction de la boucle de rechargement 401 du tableau de bord en mode loopback ; Docker exige désormais explicitement
HERMES_DASHBOARD_INSECURE=1; les commandes nues MCP (npx,npm,node) se résolvent dans les conteneurs Docker ; pills de source + barre latérale de catégories restaurées sur la page Skills ; les workers Kanban répondent à SIGTERM ; le catalogue Skills.sh est passé de 858 à 19 932 entrées via sitemap. 28 commits, 21 PR fusionnées, 9 contributeurs. v0.15.2 (29 mai 2026, 13:37 UTC) est un hotfix exclusivement packaging qui inclut les manifestesplugin.yamldans les distributions wheel et sdist afin que les installations PyPI fonctionnent sans sideload de la source. 4 contributeurs. ↩ -
Hermes Agent v0.15.0 release notes et la page des releases Hermes Agent. « The Velocity release », tag
v2026.5.28. Statistiques : 1 302 commits, 747 PR fusionnées, 321 contributeurs communautaires. Refactoriserun_agent.pyà 76 % (16 083 → 3 821 lignes réparties sur 14 modules). Ajoute la plateforme Kanban multi-agent (décomposition automatique, topologie swarm, remplacements de modèle par tâche, tâches planifiées, gestion de worktree).session_searchrepensé 4 500× plus rapide avec la dépendance LLM supprimée. Défense promptware contre les injections de prompt de classe Brainworm à trois points de contrôle de sécurité. L’intégration Bitwarden Secrets Manager remplace plusieurs clés API par fournisseur par un seul token bootstrap. Les bundles de skill permettent de charger plusieurs skill avec une seule slash command. Orchestrateur de sessions TUI pour la gestion multi-session dans une fenêtre de terminal unique. Prise en charge de Krea 2 (Medium/Large) et du plugin FAL pour la génération d’images. Le cycle d’intégration xAI ajoute un plugin de recherche web, OAuth upstream, la détection des modèles retirés et des pauses TTS naturelles dans la sortie vocale. Une patch release référencée sur GitHub corrige la boucle de rechargement 401 du tableau de bord, l’exigence d’une variable d’envHERMES_DASHBOARD_INSECURE=1explicite pour--insecureDocker, la résolution des commandes nues MCP (npx,npm,node) dans Docker, le rendu de la page Skills, la gestion SIGTERM des workers Kanban, le catalogue Skills complet de 19 932 entrées via sitemap, ainsi qu’un petit lot de corrections de livraison.md, sécurité des probes gateway, caviardage d’URL web, capacité vision de kanban-worker et valeurs par défaut d’observation hindsight. ↩ -
Hermes Agent v0.11.0 Release Notes. 23 avril 2026. « The Interface release » — réécriture complète React/Ink du CLI interactif avec un backend Python JSON-RPC (
tui_gateway) ; architecture de transports enfichable (agent/transports/) ; AWS Bedrock natif via Converse API ; cinq nouveaux chemins 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 QR ; surface de plugins élargie (slash commands, dispatch d’outils, blocage d’exécution, transformation de résultats) ;/steer <prompt>pour orienter l’agent en cours d’exécution en injectant du contexte après le prochain appel d’outil sans casser le cache de prompt ; hooks shell pour événements de cycle de vie sans plugins Python ; mode de livraison directe par webhook qui transfère les payloads directement vers un chat de plateforme ; délégation plus intelligente avec rôles d’orchestrateur + profondeur de spawn configurable + coordination de fichiers ; système de plugins pour tableau de bord, changement de thème en direct, i18n, responsive mobile. Statistiques depuis v0.9.0 : 1 556 commits · 761 PR fusionnées · 1 314 fichiers modifiés · 224 174 insertions · 29 contributeurs communautaires. Voir aussi : tag de release GitHub Hermes Agent v0.11.0. ↩↩↩ -
Hermes Agent v0.10.0 Release Notes. 16 avril 2026. « The Tool Gateway Release. » Intégration Nous Tool Gateway pour les abonnés payants Nous Portal — accès géré à la recherche web Firecrawl, génération d’images FAL / FLUX 2 Pro, OpenAI TTS et automatisation navigateur Browser Use sans clés API supplémentaires. Opt-in par outil via le nouveau champ de configuration
use_gateway. Le runtime préfère le gateway aux clés API directes lorsque les deux sont configurés. Intégration complète avechermes toolsethermes status. Remplace la variable d’env obsolèteHERMES_ENABLE_NOUS_MANAGED_TOOLS. Implémentation par @jquesnelle (emozilla). Le CLI Hermes Agent reste sous licence MIT et entièrement open source ; le gateway est une intégration au produit d’abonnement Portal existant, pas un paywall sur le CLI. Voir aussi : Nous Portal pour les tarifs d’abonnement et l’inscription. ↩↩↩