Hermes Agent : un agent sur votre machine, pas un chat dans le navigateur
Hermes Agent est un agent open source de Nous Research. Il s’installe chez vous, parle au modèle que vous choisissez, et peut rester joignable par messagerie. Le point décisif n’est pas l’installation. C’est qui peut lui parler, et ce qu’il a le droit d’exécuter.

Illustration originale générée avec une IA · SecuFocus
En bref
L’essentiel
Prenez Hermes Agent si vous voulez un agent installé, un modèle interchangeable, et éventuellement une messagerie branchée sur le même agent. Ne le prenez pas pour une fenêtre de chat. Un profil isolé, une liste de personnes autorisées et le refus par défaut des commandes dangereuses hors de votre présence font partie du déploiement, pas d’un réglage plus tard.
Pour qui
Hermes Agent convient si vous administrez la machine, et si vous acceptez qu’un programme lise des fichiers et lance des commandes. Linux, Mac, Windows, WSL2 ou un conteneur Docker sont les cas documentés de premier rang. Il convient aussi si cet agent doit rester joignable, par Telegram, Discord, Slack ou une autre messagerie, sans se réduire à un robot qui ne fait que répondre.
Il convient mal si vous voulez coller une question dans une page web, sans rien installer. Il convient mal aussi si personne ne peut surveiller les actions, ou si plusieurs personnes doivent partager le même dossier de configuration. Deux processus sur le même profil s’écrivent dessus. La documentation le dit explicitement.
Ce que c’est
Hermes Agent est un agent autonome publié par Nous Research, en open source. Il n’est pas lié à un seul modèle. La documentation le décrit comme compatible avec Nous Portal, OpenRouter, OpenAI, Anthropic, Google, ou un point d’accès au format OpenAI, y compris un modèle que vous hébergez.
La différence avec un chat, c’est l’outillage. L’agent peut appeler un terminal, écrire des fichiers, ouvrir un navigateur, lancer une tâche planifiée, et réutiliser des procédures qu’il a enregistrées comme compétences. Une mémoire peut garder des préférences et des faits d’environnement d’une session à l’autre. Ce n’est pas une preuve que ce qu’il retient est exact, ni que la question reste sur la machine.
Le mot agent, ici, ne veut pas dire un deuxième produit. Un profil est le dossier qui garde la configuration. L’agent est le processus qui s’en sert. Un sous-agent est une conversation enfant, lancée pour une tâche, avec un historique neuf. Ce n’est pas un second profil. Confondre les trois, c’est croire qu’une tâche déléguée est isolée alors qu’elle tourne encore dans le même foyer.
Où vous le rencontrez
Le même cœur s’ouvre de plusieurs façons. En ligne de commande, avec hermes. Dans une interface de terminal plus riche. Dans une application de bureau pour macOS, Linux et Windows. Dans un tableau de bord web, derrière une porte d’accès. Dans un éditeur, par un serveur pour VS Code, Zed ou JetBrains.
Vous n’avez pas à tout brancher le premier jour. La documentation recommande d’abord une conversation qui répond. La messagerie, la voix, le routage entre modèles et les tâches planifiées viennent après. Un bot de messagerie a besoin d’un fournisseur de modèle, et souvent d’outils annexes, comme la synthèse vocale ou la recherche web. Un abonnement Nous Portal est présenté comme un moyen de regrouper ces accès. Ce n’est pas une obligation.
Comment on le déploie
Le chemin dépend de la machine. Les plateformes de premier rang, celles que le projet dit ne pas vouloir casser, sont le Mac Apple Silicon, Windows 10 et 11, Linux et WSL2 en 64 bits, et Docker sur les mêmes architectures.
Sur Linux, macOS ou WSL2, l’installateur en ligne de commande est un script. Sur Windows, l’équivalent est une commande PowerShell. L’application de bureau se télécharge à part : un DMG sur Mac, un paquet MSIX sur Windows. Le MSIX demande Windows 11, version 22H2 ou plus récente. L’installateur graphique Hermes-Setup pour Mac est annoncé pour Apple Silicon seulement. Un Mac Intel utilise un autre paquet, ou la ligne de commande puis hermes desktop.
Le script prépare un Python épinglé, Node, npm, ripgrep et FFmpeg. Il installe aussi, par défaut, un navigateur outillé et un pilote d’usage de l’ordinateur, sur macOS, Windows et Linux glibc. On peut les laisser de côté avec une option du script. Hermes retient ce choix : une mise à jour ne les réinstalle pas toute seule.
Faites défiler le tableau horizontalement pour lire toutes les colonnes.
| Machine | Chemin documenté | Point à connaître |
|---|---|---|
| Linux, macOS, WSL2 | Script install.sh | Le projet teste surtout Ubuntu récent et WSL2. Une distribution avec glibc, systemd et une arborescence standard a plus de chances de passer. |
| Windows | install.ps1, ou MSIX | Le MSIX demande Windows 11 22H2 ou plus récent. |
| Mac | Bureau ou script | L’installateur graphique Hermes-Setup est Apple Silicon. Intel a un autre paquet. |
| Docker | Image nousresearch/hermes-agent | Les données restent dans un dossier monté. hermes update ne sert pas : on tire une nouvelle image. |
| Android | Paquet Termux, aarch64 | Niveau 2. Android peut couper un processus en arrière-plan. |
| Nix | Flocon et modules | Niveau 2. Nix gère l’installation et les mises à jour. |
- Choisissez le chemin de la machine : script, PowerShell, paquet de bureau, ou image Docker.
- Lancez hermes setup, ou hermes setup --portal si vous voulez ouvrir Nous Portal et sa passerelle d’outils en une fois.
- Choisissez le fournisseur avec hermes model, puis tenez une conversation qui répond.
- Créez un profil séparé si cet agent a un rôle distinct, par exemple un bot et un assistant de code.
- Décidez qui peut lui écrire, et ce que font les commandes dangereuses quand vous n’êtes pas devant l’écran.
- Lancez hermes gateway setup seulement après la première conversation.
Le premier échange
Après l’installation, le pas qui compte n’est pas d’ajouter des fonctions. C’est une conversation qui répond. hermes model sert à choisir le fournisseur. hermes setup ouvre l’assistant. Si vous connaissez déjà le fournisseur, la documentation dit d’enregistrer ce choix, puis de parler.
Un modèle local ou un point d’accès que vous hébergez se règle aussi par hermes model. Il faut alors vérifier l’adresse, le nom du modèle et la longueur de contexte. Un second fournisseur, en secours, vient après. Pas avant que le premier échange fonctionne.
Une session en une seule commande, hermes chat -q, n’attend personne pour approuver une action. Par défaut, une commande jugée dangereuse y est refusée. Ce n’est pas le mode à utiliser pour découvrir l’outil. C’est un mode à n’ouvrir qu’une fois le comportement compris.
Un rôle, un dossier
Un profil est un dossier à part, sous ~/.hermes/profiles/. Il a sa configuration, ses clés, sa mémoire, ses sessions, ses compétences et l’état de sa passerelle. Créer un profil nommé coder ajoute tout de suite la commande coder. coder setup et coder chat ne touchent pas au profil par défaut.
La documentation interdit de pointer deux processus vers le même profil. Les deux écrivent la mémoire. Au démarrage suivant, chacun recharge ce que l’autre a écrit. L’état cesse d’être celui que vous avez configuré. Si deux agents doivent partager des souvenirs, le projet renvoie vers un fournisseur de mémoire externe, pas vers un dossier commun.
Un bot de messagerie n’est pas un profil. C’est un compte Telegram, Discord ou Slack, identifié par un jeton, branché sur la passerelle. Le mode Bot du bureau est encore autre chose : un profil affiché dans une liste, avec un avatar. Le même profil reste utilisable en ligne de commande. Tout bot du bureau est un profil. L’inverse n’est pas vrai.
Le laisser joignable
La passerelle est un seul processus d’arrière-plan. Il relie les messageries que vous avez configurées, tient les sessions, lance les tâches planifiées et peut livrer des messages vocaux. Elle tourne aussi un planificateur, qui s’éveille toutes les 60 secondes.
Toutes les messageries ne font pas la même chose. Telegram, Discord, Slack, Matrix, Mattermost et Feishu sont documentés pour la voix, les images, les fichiers et les fils de discussion. Signal reçoit des images et des fichiers, pas un fil. Le SMS est du texte. Home Assistant, dans le tableau du projet, n’envoie ni voix, ni image, ni fichier. Brancher une plateforme sans lire cette ligne, c’est découvrir trop tard qu’une pièce jointe ne part pas.
Docker propose deux usages distincts. L’agent peut tourner dans le conteneur. Ou l’agent tourne sur la machine, et chaque commande part dans un bac à sable Docker qui survit aux appels, à une nouvelle conversation et aux sous-agents, le temps du processus. Pour le premier cas, clés, sessions, compétences et mémoire sont dans un dossier de l’hôte monté sur /opt/data. L’image ne les garde pas. On la remplace en tirant une nouvelle version. Le conteneur n’inclut pas l’application de bureau.
Qui parle, et qui approuve
La documentation décrit huit couches. Celles qui changent le déploiement sont les premières. Qui a le droit d’écrire à l’agent : listes d’autorisation, et appairage des messages privés. Quoi peut s’exécuter : une commande qui correspond à un motif jugé dangereux demande une approbation explicite, sauf si vous avez coupé ce contrôle.
Le mode par défaut s’appelle smart. L’attente d’une réponse est de 300 secondes. Trois contextes sans personne devant l’écran refusent, par défaut, la commande dangereuse au lieu de l’approuver : les tâches planifiées, la commande unique hermes chat -q, et les sessions sans opérateur, webhooks compris. Passer ces trois réglages à approve, c’est autoriser l’agent à franchir le contrôle quand vous n’êtes pas là.
D’autres couches existent, et il ne faut pas les prendre pour une clôture déjà posée. Une liste d’interdictions et un bac à sable optionnel limitent l’écriture de fichiers. L’isolation par conteneur se configure. Les sessions ne lisent pas l’état les unes des autres. Un fichier de projet est scruté pour des injections de consignes. Rien de cela ne remplace la question précédente : qui peut écrire au bot, et le bot a-t-il un terminal.
Ce qui part, et ce qui reste
Les clés d’API vont dans un fichier .env, pas dans le fichier de réglages. Le dossier habituel est ~/.hermes, ou le dossier du profil. Un profil isole configuration, sessions, compétences et mémoire. Ce cloisonnement ne remplace pas un compte Unix séparé si plusieurs personnes partagent la même session de connexion.
Chaque question envoyée à un modèle quitte la machine vers le fournisseur choisi, sauf si ce fournisseur est un modèle local. Nous, OpenAI, Anthropic ou un autre hôte n’ont pas la même politique. Hermes ne devient pas privé parce qu’il est open source. Il devient privé dans la mesure où vous choisissez le modèle, le réseau, et ce que vous lui laissez lire.
Un agent avec un terminal n’est pas un chatbot. Une messagerie branchée dessus non plus. Quelqu’un qui écrit au bot peut déclencher des actions, dans la limite des outils activés et des approbations. Si la liste d’autorisation est vide, ou si l’appairage n’est pas fait, cette limite n’existe pas encore. Ce réglage fait partie du premier déploiement.
Ce qu’il ne faut pas lui demander
Le projet classe lui-même des plateformes en second rang, ou hors soutien. Termux n’est documenté que pour Android aarch64, et un téléphone peut tuer le processus. Les installations par l’AUR ne sont pas soutenues. macOS 32 bits ne l’est pas. Une distribution Linux sans glibc ou sans systemd peut passer. Le projet ne le promet pas.
Docker ne se met pas à jour avec hermes update. Nix non plus, à sa manière : Nix possède l’exécution. Confondre ces chemins, c’est chercher une commande qui n’existe pas sur cette installation.
Les garde-fous ne sont pas une preuve que l’agent ne peut rien casser. Ils demandent une approbation, ou ils refusent dans certains contextes sans opérateur. Une commande qui ne correspond pas au motif dangereux passe. Un fichier que l’agent a le droit de lire part dans le contexte envoyé au modèle. Cette lecture décrit les chemins publiés. Elle ne remplace pas l’installation sur votre machine, ni un contrôle de ce que votre fournisseur conserve.
Le choix
Choisissez Hermes Agent si vous voulez un agent installé chez vous, un modèle que vous pouvez changer, et, plus tard, une messagerie qui parle au même agent. Commencez par une conversation qui répond. Créez un profil si le rôle est distinct. Décidez qui peut écrire, et laissez les commandes dangereuses refusées quand vous n’êtes pas là, tant que vous n’avez pas une raison de faire autrement.
Regardez ailleurs si vous voulez un chat sans installation, ou si vous ne pouvez pas assumer un programme qui lit et exécute. Le guide lié rappelle ce qu’une intelligence artificielle générative fait de ce qu’on lui confie. Ce n’est pas le mode d’emploi de Hermes. C’est le cadre.
Vérifier, approfondir
Les sources de cet article
Les numéros relient chaque référence aux passages qui l’utilisent. La date indique quand la documentation a été consultée.
- Installation, Hermes Agent ↗hermes-agent.nousresearch.com ·
- Premiers pas, Hermes Agent ↗hermes-agent.nousresearch.com ·
- Plateformes prises en charge ↗hermes-agent.nousresearch.com ·
- Docker, Hermes Agent ↗hermes-agent.nousresearch.com ·
- Profils, Hermes Agent ↗hermes-agent.nousresearch.com ·
- Messagerie, Hermes Agent ↗hermes-agent.nousresearch.com ·
- Sécurité, Hermes Agent ↗hermes-agent.nousresearch.com ·
Cet article s’appuie sur les sources ci-dessus. Les exercices proposés sont à réaliser sur vos appareils ; SecuFocus ne les présente pas comme des essais menés par la rédaction. Les interfaces et les fonctions peuvent changer. Méthode et corrections.
Citer cet article
Pour retrouver cette lecture ou la partager avec sa référence.