Ligne de commande CLI de Hermes Agent
CLI (interface en ligne de commande) est la manière la plus native d'interagir avec Hermes Agent, et aussi le point d'entrée le plus complet en termes de fonctionnalités.
Ce chapitre présente systématiquement les trois modes de fonctionnement de la CLI, la gestion des sessions, les commandes slash, l'interface TUI, les opérations de raccourci et les techniques d'utilisation de scripts.
Trois modes d'exécution
La CLI Hermes propose trois modes de fonctionnement, de la simple question-réponse aux sessions interactives jusqu'à l'utilisation purement au clavier, couvrant différents scénarios d'utilisation.
Mode 1 : Session interactive (hermes chat)
C'est le mode le plus couramment utilisé — lancer une session de conversation continue à plusieurs tours.
Démarrer une session interactive (en utilisant le Profile par défaut) :
hermes chat
Après le démarrage, vous entrez dans l'interface de conversation, l'invite change en, et après avoir saisi un message, appuyez sur Entrée pour envoyer ; l'Agent commence à répondre :

Une fois dans une session interactive, vous pouvez envoyer plusieurs messages en continu, et l'Agent se souviendra du contexte de conversation précédent.
C'est la façon la plus naturelle de l'utiliser au quotidien en développement — comme discuter avec un collègue sur Slack.
Mode 2 : Requête unique (-q / --query)
Pas besoin d'entrer dans une session interactive ; posez directement une question et obtenez une réponse, adapté aux scripts et aux requêtes rapides.
Exemple
hermes chat -q Écrire une fonction quicksort en Python
# Utiliser en combinaison avec Profile
coder chat -q "Vérifier le style de code de src/main.py"
# Utilisation dans les scripts Shell
hermes chat -q "Extraire les lignes d'erreur du journal suivant" < error.log
-qCaractéristiques principales des modes :
- Non interactif ; l'agent quitte immédiatement après avoir terminé la réponse.
- Renvoie un code de sortie standard, permettant aux scripts de déterminer le succès ou l'échec.
- Prend en charge les pipes et la redirection
Mode 3 : interface terminal TUI (hermes --tui)
TUI (Terminal User Interface) fournit une interface terminal plein écran avec un fonctionnement purement au clavier.
Exemple
hermes --tui
# En mode TUI :
# Flèches haut/bas : parcourir l'historique de conversation
# Ctrl+N : Nouvelle session
# Ctrl+S : Afficher/masquer la barre latérale (fichiers, historique des outils, etc.)
# Ctrl+C : Interrompre l'opération en cours de l'Agent
# Commencer par / : saisir des commandes slash
Avantages uniques du mode TUI :
- La barre latérale peut afficher simultanément la conversation, les modifications de fichiers et l'historique des appels d'outils.
- Fonctionnement entièrement au clavier, aucune souris nécessaire
- Adapté aux scénarios de travail approfondi de longue durée
Comparaison des trois modes
| Mode | Commande | Mode d'interaction | Scénarios adaptés |
|---|---|---|---|
| Session interactive | hermes chat | Dialogue multi-tours, saisir un message puis attendre la réponse | Développement quotidien, tâches complexes |
| Requête ponctuelle | hermes chat -q "..." | Requête unique, quitte après la réponse | Scripting, requêtes rapides |
| TUI | hermes --tui | Utilisation plein écran au clavier, multi-panneaux | Travail approfondi, intensif en opérations sur fichiers |
Gestion des sessions
Une session est l'unité de base de conversation dans la CLI. Chaque session possède son propre contexte indépendant, son nombre de tokens et son ID de session.
Continuer et reprendre des sessions
Exemple
hermes --continue
hermes chat --continue
# Restaurer par titre de session (à condition qu'elle ait été nommée avec /title)
hermes -c Refactoriser le module d'authentification
# Restaurer exactement par ID de session
hermes -r 20260305_091234_abc12345
Lors de la reprise d'une session, l'Agent conserve l'intégralité du contexte de conversation, y compris les enregistrements des appels d'outils précédents et l'historique de raisonnement du LLM.
Démarrer une nouvelle session
Exemple
/nouveau
# ou
/réinitialiser
# Même effet : terminer la session en cours, démarrer une nouvelle session,
# L'Agent rechargera les prompts système et la mémoire persistante
Les nouvelles sessions ne conservent pas le contexte de conversation précédent, mais la mémoire persistante (MEMORY.md et USER.md) reste visible.
Gestion des titres de session
Hermes génère automatiquement un titre de session après le premier tour de conversation ; vous pouvez également le nommer manuellement :
Exemple
/title Discussion du plan de migration de base de données
# Afficher les informations de la session actuelle (ID, titre, utilisation des tokens, etc.)
/status
Compression du contexte
Lorsque l'historique de conversation devient trop long et s'approche de la limite de la fenêtre de contexte, vous pouvez déclencher manuellement la compression :
Exemple
/compress
# Après compression, l'ancien contenu est résumé pour libérer de l'espace,
# Vous pouvez continuer à envoyer de nouveaux messages.
# Lignée automatique de la création de session compressée :
# "Migration de base de données" → "Migration de base de données #2"
La compression automatique est déclenchée par Hermes lorsque le contexte s'approche de la limite. /compress vous permet simplement de la déclencher manuellement à l'avance. Les deux ont le même effet.
Commandes slash courantes
En session interactive et en mode TUI, avec/Une entrée commençant par / est reconnue comme une commande slash.
Voici les commandes CLI les plus couramment utilisées, regroupées par fonction.
Contrôle de session
| Commande | Fonctionnalités |
|---|---|
| /new ou /reset | Démarrer une nouvelle session |
| /title <name> | Définir le titre de la session actuelle |
| /status | Affiche l'ID de session, le titre et l'utilisation des jetons. |
| /usage | Affiche les détails de consommation de jetons pour la session actuelle. |
| /compress | Compresser manuellement le contexte de conversation |
| /resume [title] | Restaurer une session précédemment nommée |
Contrôle des tâches
| Commande | Fonctionnalités |
|---|---|
| /stop | Interrompt la tâche en cours d'exécution d'Agent. |
| /retry | Force Agent à régénérer la réponse précédente. |
| /undo | Annule le précédent tour de conversation (supprime la dernière paire Q&R). |
| /background <task> | Exécuter des tâches de façon asynchrone dans des sessions en arrière-plan |
/undo est une annulation au niveau de la conversation—elle supprime le dernier tour de Q&R de l'historique de session, ramenant le contexte d'Agent à l'état précédant la réponse précédente. Cela diffère de /retry (qui conserve la Q&R d'origine et demande à Agent de répondre à nouveau).
Modèles et configuration
| Commande | Fonctionnalités |
|---|---|
| /model | Afficher le modèle actuellement utilisé |
| /model <name> | Passer à un modèle spécifié |
| /model list | Lister tous les modèles disponibles |
| /reload-mcp | Recharger la configuration du serveur MCP |
Sécurité et approbation
| Commande | Fonctionnalités |
|---|---|
| /yolo | Active le mode YOLO, en approuvant automatiquement les commandes dangereuses dans la session en cours. |
| /yolo | Saisir à nouveau pour désactiver le mode YOLO |
| /approve | Approuver les opérations en attente d'approbation |
| /deny | Rejeter les opérations en attente d'approbation |
Mémoire et compétences
| Commande | Fonctionnalités |
|---|---|
| /memory | Afficher le contenu actuel de la mémoire |
| /memory pending | Afficher les écritures en mémoire en attente |
| /memory approve all | Approuver toutes les écritures en mémoire en attente |
| /skills | Lister toutes les compétences installées |
| /skills search <keyword> | Rechercher des compétences locales et du Hub |
| /skills install <id> | Installer des Skills |
| /<skill-name> [task] | Invoquer une compétence spécifiée pour exécuter des tâches |
| /learn <source> | Générer une nouvelle compétence à partir d'une documentation ou d'une description |
Autre
| Commande | Fonctionnalités |
|---|---|
| /checkpoint <tag> | Créer un point de contrôle du système de fichiers |
| /rollback [ID] | Lister ou restaurer vers un point de contrôle spécifié |
| /cron list | Afficher la liste des tâches planifiées |
| /cron pause/resume <name> | Mettre en pause ou reprendre les tâches planifiées |
| /suggestions | Affiche les suggestions d'automatisation de l'Agent. |
| /voice on/off/tts | Contrôler le mode vocal |
| /update | Mettre à jour Hermes vers la dernière version |
| /help | Afficher toutes les commandes disponibles |
Actions rapides et astuces
Raccourcis clavier
En session interactive, les raccourcis suivants peuvent améliorer l'efficacité opérationnelle :
| Raccourcis | Fonctionnalités |
|---|---|
| Ctrl+C | Interrompt la réponse actuelle de l'Agent ou l'exécution d'un outil. |
| Ctrl+D | Quitter la session interactive |
| Ctrl+L | Effacer l'écran |
| Ctrl+B (mode vocal) | Maintenir pour enregistrer, relâcher pour envoyer |
| flèche vers le haut | Récupérer la saisie précédente |
| Onglet | Autocomplétion des chemins de fichiers et des noms de compétences |
Saisie multiligne
Lorsque vous devez envoyer des messages contenant des sauts de ligne (comme des blocs de code) :
Exemple
hermes chat -q Examinez le code suivant :\n\ndef hello():\n print('world')"
# Méthode 2 : Utilisation de Heredoc (syntaxe shell)
hermes chat -q "$(cat << 'EOF'
Veuillez analyser cette pile d'erreurs :
Traceback (most recent call last):
File "app.py", line 42, in <module>
main()
File "app.py", line 38, in main
result = process(data)
TypeError: 'NoneType' object is not iterable
Veuillez fournir un correctif.
EOF
)"
Tubes et redirection
-qLe mode prend nativement en charge les tubes Unix standard :
Exemple
cat error.log | hermes chat -q "Analysez ces journaux d'erreurs et trouvez la cause racine"
# Enregistrer la réponse de l'Agent dans un fichier
hermes chat -q "Générer le README.md du projet" > README.md
# Utiliser l'Agent comme filtre dans le pipeline
cat data.csv | hermes chat -q "Extraire toutes les adresses e-mail, une par ligne" > emails.txt
Combiné avec les alias de commande de Profile
Chaque Profile génère automatiquement des alias de commande dédiés, pas besoin de-pl'option :
Exemple
coder chat -q Refactorisez cette fonction
researcher chat -q Recherchez les derniers articles sur les Transformers
admin gateway status
# Équivalent à
hermes -p coder chat -q Refactoriser cette fonction
hermes -p researcher chat -q Rechercher les derniers articles sur les Transformers
hermes -p admin gateway status
Approbations et contrôles de sécurité
Mode d'approbation
Lors de l'exécution de commandes dangereuses dans la CLI, Hermes affiche une demande d'approbation :
Agent 请求执行: rm -rf /tmp/build/* 原因: 清理构建缓存 [approve/deny]: _
Vous pouvez décider en temps réel dans la session d'approuver ou de rejeter.
Le mode d'approbation est configuré dans config.yaml :
Exemple
approvals:
mode: manual # manual (par défaut, chaque commande dangereuse nécessite une approbation)
# smart (jugement intelligent, faible risque approuvé automatiquement)
# off (désactiver l'approbation, non recommandé)
timeout: 60 # Nombre de secondes à attendre pour l'approbation ; rejet automatique en cas de délai dépassé
Mode YOLO
Lorsque vous êtes certain que ce que l'Agent s'apprête à faire est sans danger (comme des opérations dans un projet que vous connaissez bien), vous pouvez temporairement ignorer l'approbation :
Exemple
# Toutes les commandes de la session en cours sont approuvées automatiquement
/yolo
# L'Agent commence à exécuter des opérations, ne fait plus apparaître d'invites d'approbation...
# Saisissez à nouveau /yolo pour désactiver le mode YOLO et reprendre les approbations.
/yolo
Le mode YOLO ne prend effet que dans la session en cours ; les nouvelles sessions restaurent automatiquement le mode d'approbation configuré dans config.yaml. Cela garantit qu'un assouplissement temporaire ne devient pas une vulnérabilité permanente.
Utilisation scriptée
Utilisation de Hermes dans des scripts shell
-qLes codes de sortie et la sortie standard du mode permettent à Hermes de s'intégrer parfaitement dans des scripts shell :
Exemple
# Chemin du fichier : scripts/auto-review.sh
# Script de revue de code automatique — passe en revue un par un les fichiers modifiés par Git
# Récupérer tous les fichiers Python modifiés
changed_files=$(git diff --name-only HEAD~1 | grep '\.py$')
for file in $changed_files; do
echo === Revue :$file ==="
# Utiliser Hermes pour passer le code en revue et afficher directement les résultats dans le terminal
hermes chat -q "Passez en revue le style de code et les problèmes potentiels des fichiers Python suivants :
$(cat "$file")
Veuillez fournir les problèmes découverts et les suggestions sous forme de liste. 2>/dev/null
# Vérifier le code de sortie
if [ $? -ne 0 ]; then
echo "[Avertissement]$fileUne erreur s'est produite pendant le processus de vérification.
fi
echo ""
done
Intégrer avec les hooks Git
Voici un exemple de hook pre-commit Git—permettant à l'Agent de vérifier le code avant le commit.
Exemple
# Chemin du fichier : .git/hooks/pre-commit
# Hook pre-commit Git : l'Agent vérifie le code avant le commit
# Obtenir la liste des fichiers modifiés dans la zone de préparation
staged_files=$(git diff --cached --name-only)
if [ -z "$staged_files" ]; then
exit 0
fi
echo "Hermes Agent vérifie les modifications de code..."
# Demander à l'Agent de vérifier les modifications indexées
result=$(hermes chat -q "Passez en revue les modifications de code suivantes dans la zone de staging Git,\
Ne signalez que les problèmes critiques (vulnérabilités de sécurité, erreurs de logique, changements incompatibles).\
S'il n'y a pas de problèmes graves, répondez PASS.\
\
Fichiers modifiés :\n$staged_files\n\
Diff détaillé :\n$(git diff --cached)" 2>/dev/null)
echo "$result"
# Si l'Agent découvre un problème grave, bloquer le commit
if echo "$result" | grep -q "PASS"; then
echo "Approuvé"
exit 0
else
echo ""
echo "L'Agent a détecté des problèmes qui nécessitent une attention particulière."
echo Si cela est confirmé comme correct, utilisez git commit --no-verify pour ignorer cette vérification.
exit 1
fi
Exécution planifiée
Combiné avec le cron du système ou le système Cron intégré de Hermes, les tâches CLI peuvent être exécutées périodiquement—mais il est recommandé d'utiliser le Cron intégré de Hermes (viahermes cron create), car il peut transmettre directement les résultats à la plateforme de messagerie.