Hermes Agent est un agent sous licence MIT de Nous Research avec une boucle d'auto-amélioration : il crée des skills à partir de l'expérience, persiste la mémoire par nudges périodiques, recherche les sessions passées via FTS5 et modélise le contexte utilisateur avec Honcho. Sur macOS, il s'installe comme CLI native plus un gateway de messagerie optionnel—Telegram, Discord, Slack, WhatsApp, Signal et Email—depuis un seul processus hermes gateway.
Ce guide détaille la configuration macOS sur Apple Silicon ou Intel—installation, première configuration, branchement du gateway et maintien du gateway avec launchd. Il suppose macOS 15+ sur une machine que vous contrôlez (MacBook, Mac mini, Mac Studio ou Mac distant en SSH). Si vous exécutez déjà des agents dans le cloud, consultez notre Tutoriel Hermes Mac mini M4 distinct pour les hôtes headless ; les commandes ci-dessous sont identiques sur tout Mac.
Ce dont vous avez besoin avant l'installation
| Exigence | Notes |
|---|---|
| macOS | 15+ recommandé ; Apple Silicon (arm64) et Intel pris en charge par le script d'installation upstream |
| Shell | zsh (par défaut) ou bash ; l'installateur ajoute à ~/.zshrc ou ~/.bashrc |
| Network | HTTPS sortant pour les API de modèles, OAuth Nous Portal optionnel et webhooks des plateformes de messagerie |
| Disk | Prévoir 2–5 Go pour uv, Python 3.11, Node.js et l'état ~/.hermes/ ; plus si vous stockez des assets TTS ou de grandes bibliothèques de skills |
| RAM | 16 Go confortables pour CLI + gateway + un tour outillé ; 24 Go si vous exécutez des subagents ou serveurs MCP en parallèle |
L'installateur récupère uv, Python 3.11, Node.js, ripgrep et ffmpeg si manquants. Vérifiez ensuite avec hermes doctor.
Organisation de Hermes sur macOS
Après installation, l'état réside sous ~/.hermes/ :
~/.hermes/
├── config.toml # fournisseurs, outils, backend terminal, paramètres gateway
├── skills/ # skills utilisateur et auto-créées
│ └── openclaw-imports/ # après hermes claw migrate
├── memory/ # fichiers mémoire curatés
└── logs/ # logs gateway et CLI (chemins selon docs upstream)
Le binaire hermes est un lien symbolique vers ~/.local/bin/hermes. Trois interfaces comptent au quotidien :
- CLI (
hermes) — TUI interactive ; commandes slash (/model,/skills,/compress,/new). - Gateway (
hermes gateway) — Relie les plateformes de messagerie à la même boucle agent. - Backends terminaux — Où s'exécutent shell/outils fichier : local (défaut sur macOS), Docker, SSH, Singularity, Modal ou Daytona.
Le routage de modèles est agnostique du fournisseur : hermes model bascule entre Nous Portal, OpenRouter (200+ modèles), OpenAI, Anthropic et endpoints BYO sans changer le code.
Configuration macOS pas à pas
1. Installer Hermes
Relisez le script d'installation dans votre organisation avant de le piper au shell. One-liner upstream :
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.zshrc # or: source ~/.bashrc
hermes doctor
hermes doctor doit valider uv, Python 3.11, Node, ripgrep et ffmpeg. Corrigez toute dépendance signalée et relancez.
2. Lancer la configuration initiale
Assistant complet ou OAuth Portal :
hermes setup # interactif : fournisseur, outils, indices gateway
# OU
hermes setup --portal # OAuth Nous Portal + Tool Gateway (recherche, images, navigateur, TTS)
L'assistant détecte ~/.openclaw et propose une migration—ignorez sur une installation neuve.
3. Choisir modèle et outils
hermes model # choisir provider:model (ex. openrouter:anthropic/claude-sonnet-4)
hermes tools # activer/désactiver jeux d'outils (40+ outils upstream)
hermes config set KEY VALUE # surcharges fines
Confirmez avec une courte session CLI :
hermes
# dans le TUI : question, /usage, quitter avec Ctrl+D ou /quit
4. Migrer depuis OpenClaw (optionnel)
Si vous avez un workspace OpenClaw existant :
hermes claw migrate --dry-run
hermes claw migrate
L'import inclut typiquement la persona SOUL.md, les entrées MEMORY.md / USER.md, les skills utilisateur, listes d'autorisation de commandes, paramètres de messagerie et clés API autorisées dans ~/.hermes/. Voir hermes claw migrate --help pour les préréglages.
5. Configurer le gateway de messagerie
hermes gateway setup # jetons plateforme, appairage DM, utilisateurs autorisés
hermes gateway start # test au premier plan
Testez depuis Telegram (ou votre plateforme) : envoyez /new, puis un prompt. Si le bot semble en ligne mais muet, utilisez /status côté messagerie—souvent un problème d'appairage ou de liste blanche (docs Security upstream).
6. Persister le gateway avec launchd
Un hermes gateway start au premier plan s'arrête à la déconnexion. Pour un Mac toujours alimenté (Mac mini de bureau, machine studio ou hôte distant), créez un LaunchAgent utilisateur. Squelette plist exemple—ajustez les chemins après which hermes :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>com.hermes.gateway</string>
<key>ProgramArguments</key>
<array>
<string>/Users/YOU/.local/bin/hermes</string>
<string>gateway</string>
<string>start</string>
</array>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
<key>StandardOutPath</key><string>/Users/YOU/.hermes/logs/gateway.stdout.log</string>
<key>StandardErrorPath</key><string>/Users/YOU/.hermes/logs/gateway.stderr.log</string>
</dict>
</plist>
Chargez-le :
mkdir -p ~/.hermes/logs
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.hermes.gateway.plist
launchctl kickstart -k gui/$(id -u)/com.hermes.gateway
Stockez les jetons Telegram/Discord dans le dict EnvironmentVariables du plist ou un fichier env référencé au démarrage—évitez de ne les laisser que dans un export SSH.
7. Activer les automatisations type cron (optionnel)
Hermes inclut un planificateur cron intégré avec livraison vers les plateformes de messagerie. Définissez des tâches en langage naturel via CLI ou config selon les docs cron upstream. Sur macOS, les tâches cron exigent que le processus gateway (ou CLI) reste actif—une autre raison d'utiliser launchd sur un Mac qui ne dort pas.
8. Sauvegarder ~/.hermes/
tar -czf hermes-backup-$(date +%Y%m%d).tar.gz -C ~ .hermes
Les skills et la mémoire sont plus difficiles à régénérer que les journaux de chat. Snapshot avant grosses mises à jour :
hermes update
hermes doctor
Dépannage
hermes doctor échoue sur Python ou uv
Symptôme : Doctor signale uv manquant ou mauvaise version Python.
Correctif : Relancez le script d'installation. Hermes attend Python 3.11 via uv. Sur macOS avec Homebrew : brew install ripgrep ffmpeg node, puis hermes doctor à nouveau.
Le gateway démarre mais les bots ne répondent pas
Symptôme : hermes gateway start journalise "running" ; les DM restent sans réponse ni erreur dans le chat.
Correctif : Terminez l'appairage DM et les listes blanches via hermes gateway setup. Redémarrez le gateway après changement de jetons. Avec launchd, vérifiez que les variables d'environnement survivent au plist—launchctl print gui/$(id -u)/com.hermes.gateway affiche l'environnement injecté.
Les outils CLI échouent avec des erreurs de permission
Symptôme : Les outils fichier ou shell échouent sur des chemins macOS hors workspace.
Correctif : Revoyez les réglages d'approbation de commandes dans la config (Security upstream). Pour les chemins disque complets, macOS TCC peut demander l'accès Fichiers/Dossiers—accordez sur la machine où tourne le backend local.
Quand utiliser un Mac toujours actif
Un MacBook en veille interrompt la livraison gateway et le cron. Les équipes qui discutent sur Telegram pendant que l'agent tourne ailleurs dédient souvent un petit Mac toujours actif—Mac mini de bureau ou instance macOS hébergée—avec launchd gérant hermes gateway. Les étapes de ce guide ne changent pas ; seules la politique de veille et l'accessibilité réseau diffèrent. Pour les workflows backend SSH (CLI sur portable, outils sur Mac distant), pointez le backend terminal vers cet hôte dans config.toml selon la doc Tools upstream.
Après l'installation, essayez la
délégation subagents Hermes pour solopreneurs
—un boss, trois workers via delegate_task.
Après le gateway, reliez Telegram mobile et Discord via notre guide Gateway multi-appareils Hermes.
FAQ
Hermes remplace-t-il OpenClaw ou OpenHuman ?
Non—des designs différents. Hermes met l'accent sur skills + nudges mémoire + cron intégré ; OpenClaw est une automatisation gateway-first ; OpenHuman est une mémoire bureau avec récupération OAuth auto. Vous pouvez migrer les données OpenClaw vers Hermes avec hermes claw migrate. Les runbooks comparatifs sont dans nos Tutoriel Hermes Mac mini M4 et Guide d'installation OpenClaw macOS.
Ai-je besoin de Nous Portal ?
Non. Portal (hermes setup --portal) regroupe modèles et Tool Gateway sous une connexion OAuth. Vous pouvez fournir directement des clés OpenRouter, OpenAI ou Anthropic et activer les outils à la carte.
Où la config est-elle stockée sur macOS ?
Arborescence principale : ~/.hermes/ avec config.toml, skills, mémoire et logs. Le binaire hermes est dans ~/.local/bin/hermes. Utilisez les sous-commandes hermes config plutôt qu'une édition aveugle—les valeurs de l'assistant correspondent aux clés documentées.
Hermes peut-il tourner sur Mac mini Apple Silicon ?
Oui—le script d'installation prend en charge macOS sur Apple Silicon. Gateway et backend local tournent en natif ; pas de Rosetta pour la pile Python installée par uv.
Comment mettre à jour Hermes ?
hermes update
hermes doctor
Après mise à jour, redémarrez le gateway géré par launchd : launchctl kickstart -k gui/$(id -u)/com.hermes.gateway.