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

# Requête unique : envoyer une question, quitter après avoir reçu une réponse
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

# Démarrer le mode TUI
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

ModeCommandeMode d'interactionScénarios adaptés
Session interactivehermes chatDialogue multi-tours, saisir un message puis attendre la réponseDéveloppement quotidien, tâches complexes
Requête ponctuellehermes chat -q "..."Requête unique, quitte après la réponseScripting, requêtes rapides
TUIhermes --tuiUtilisation plein écran au clavier, multi-panneauxTravail 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

# Continuer la dernière session (reprendre après interruption)
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

# Utiliser les commandes slash dans les sessions interactives
/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

# Définir le titre dans la session (pour une restauration ultérieure par titre)
/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

# Compresser manuellement le contexte de conversation
/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

CommandeFonctionnalités
/new ou /resetDémarrer une nouvelle session
/title <name>Définir le titre de la session actuelle
/statusAffiche l'ID de session, le titre et l'utilisation des jetons.
/usageAffiche les détails de consommation de jetons pour la session actuelle.
/compressCompresser manuellement le contexte de conversation
/resume [title]Restaurer une session précédemment nommée

Contrôle des tâches

CommandeFonctionnalités
/stopInterrompt la tâche en cours d'exécution d'Agent.
/retryForce Agent à régénérer la réponse précédente.
/undoAnnule 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

CommandeFonctionnalités
/modelAfficher le modèle actuellement utilisé
/model <name>Passer à un modèle spécifié
/model listLister tous les modèles disponibles
/reload-mcpRecharger la configuration du serveur MCP

Sécurité et approbation

CommandeFonctionnalités
/yoloActive le mode YOLO, en approuvant automatiquement les commandes dangereuses dans la session en cours.
/yoloSaisir à nouveau pour désactiver le mode YOLO
/approveApprouver les opérations en attente d'approbation
/denyRejeter les opérations en attente d'approbation

Mémoire et compétences

CommandeFonctionnalités
/memoryAfficher le contenu actuel de la mémoire
/memory pendingAfficher les écritures en mémoire en attente
/memory approve allApprouver toutes les écritures en mémoire en attente
/skillsLister 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

CommandeFonctionnalité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 listAfficher la liste des tâches planifiées
/cron pause/resume <name>Mettre en pause ou reprendre les tâches planifiées
/suggestionsAffiche les suggestions d'automatisation de l'Agent.
/voice on/off/ttsContrôler le mode vocal
/updateMettre à jour Hermes vers la dernière version
/helpAfficher toutes les commandes disponibles

Actions rapides et astuces

Raccourcis clavier

En session interactive, les raccourcis suivants peuvent améliorer l'efficacité opérationnelle :

RaccourcisFonctionnalités
Ctrl+CInterrompt la réponse actuelle de l'Agent ou l'exécution d'un outil.
Ctrl+DQuitter la session interactive
Ctrl+LEffacer l'écran
Ctrl+B (mode vocal)Maintenir pour enregistrer, relâcher pour envoyer
flèche vers le hautRécupérer la saisie précédente
OngletAutocomplé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

# Méthode 1 : Utilisez \n pour représenter un saut de ligne
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

# Envoyer le contenu du fichier comme contexte à l'Agent
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

# Utiliser directement l'alias de Profile, concis et naturel
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

# Chemin du fichier : ~/.hermes/config.yaml
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

# Première entrée dans /yolo : activer le mode YOLO
# 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

#!/bin/bash
# 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

#!/bin/bash
# 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.

autres extensions