Hermes Agent CLI-Befehlszeile

CLI (Command Line Interface) ist die native Möglichkeit, mit Hermes Agent zu interagieren, und zugleich der funktionsvollständigste Einstiegspunkt.

Dieses Kapitel stellt systematisch die drei Betriebsmodi der CLI, die Sitzungsverwaltung, Slash-Befehle, die TUI-Oberfläche, Tastenkürzel und Techniken zur Skriptverwendung vor.


Drei Ausführungsmodi

Hermes CLI bietet drei Betriebsmodi – von einfacher Frage und Antwort über interaktive Sitzungen bis hin zur reinen Tastaturbedienung – und deckt verschiedene Anwendungsszenarien ab.

Modus 1: Interaktive Sitzung (hermes chat)

Dies ist der am häufigsten verwendete Modus – er startet eine fortlaufende Konversationssitzung mit mehreren Runden.

Starte eine interaktive Sitzung (mit dem Standardprofil):

hermes chat

Nach dem Start gelangst du in die Konversationsoberfläche, die Eingabeaufforderung ändert sich zu, und nachdem du eine Nachricht eingegeben hast, drücke Enter zum Senden; Agent beginnt zu antworten:

Sobald du dich in einer interaktiven Sitzung befindest, kannst du kontinuierlich mehrere Nachrichten senden, und der Agent merkt sich den vorherigen Gesprächskontext.

Dies ist die natürlichste Art, es bei der täglichen Entwicklung zu verwenden – genau wie das Chatten mit einem Kollegen auf Slack.

Modus 2: Einmalige Abfrage (-q / --query)

Du musst keine interaktive Sitzung starten; übergib eine Frage direkt und erhalte eine Antwort – geeignet für Skripting und schnelle Abfragen.

Beispiel

# Einmalige Abfrage: eine Frage senden, nach Erhalt einer Antwort beenden
hermes chat -q Schreibe eine Quicksort-Funktion in Python

# Verwendung in Kombination mit Profil
coder chat -q "Überprüfe den Code-Stil von src/main.py"

# Verwendung in Shell-Skripten
hermes chat -q "Extrahiere die Fehlerzeilen aus dem folgenden Log" < error.log

-qWesentliche Funktionen der Modi:

  • Nicht interaktiv; der Agent beendet sich sofort nach Abschluss der Antwort.
  • Gibt einen Standard-Exit-Code zurück, sodass Skripte Erfolg oder Fehler ermitteln können.
  • Unterstützt Pipes und Umleitung

Modus 3: TUI-Terminalschnittstelle (hermes --tui)

TUI (Terminal-Benutzeroberfläche) bietet eine Vollbild-Terminalschnittstelle mit reiner Tastaturbedienung.

Beispiel

# TUI-Modus starten
hermes --tui

# Im TUI-Modus:
# Pfeiltasten Auf/Ab: Konversationsverlauf durchsuchen
# Ctrl+N: Neue Sitzung
# Ctrl+S: Seitenleiste umschalten (Dateien, Tool-Verlauf usw.)
# Ctrl+C: Aktuellen Vorgang des Agenten unterbrechen
# Mit / starten: Slash-Befehle eingeben

Einzigartige Vorteile des TUI-Modus:

  • Die Seitenleiste kann gleichzeitig Konversation, Dateiänderungen und Tool-Aufrufverlauf anzeigen.
  • Reine Tastaturbedienung, keine Maus erforderlich
  • Geeignet für lang anhaltende Deep-Work-Szenarien

Vergleich der drei Modi

ModeBefehlInteraktionsmodusGeeignete Szenarien
Interaktive Sitzunghermes chatMehrrundendialog, eine Nachricht eingeben und dann auf die Antwort wartenTägliche Entwicklung, komplexe Aufgaben
Einmalige Abfragehermes chat -q "..."Einzelabfrage, beendet nach AntwortSkripting, schnelle Abfragen
TUIhermes --tuiVollbild-Tastaturbedienung, Multi-PanelKonzentrierte Arbeit, dateioperationsintensiv

Sitzungsverwaltung

Eine Sitzung ist die grundlegende Einheit der Konversation in der CLI. Jede Sitzung hat ihren eigenen unabhängigen Kontext, ihre eigene Token-Anzahl und ihre eigene Sitzungs-ID.

Sitzungen fortsetzen und wiederaufnehmen

Beispiel

# Letzte Sitzung fortsetzen (nach Unterbrechung wiederaufnehmen)
hermes --continue
hermes chat --continue

# Wiederherstellen nach Sitzungstitel (sofern er mit /title benannt wurde)
hermes -c Authentifizierungsmodul refaktorieren

# Exakt anhand der Sitzungs-ID wiederherstellen
hermes -r 20260305_091234_abc12345

Wenn eine Sitzung fortgesetzt wird, behält der Agent den vollständigen Gesprächskontext bei, einschließlich früherer Tool-Call-Aufzeichnungen und der LLM-Reasoning-Historie.

Neue Sitzung starten

Beispiel

# Slash-Befehle in interaktiven Sitzungen verwenden
/new

# oder
/Zurücksetzen

# Gleicher Effekt: aktuelle Sitzung beenden, neue Sitzung starten,
# Agent lädt System-Prompts und persistenten Speicher neu

Neue Sitzungen behalten den vorherigen Gesprächskontext nicht bei, aber der persistente Speicher (MEMORY.md und USER.md) bleibt sichtbar.

Sitzungstitel-Verwaltung

Hermes generiert nach der ersten Gesprächsrunde automatisch einen Sitzungstitel; du kannst ihn auch manuell benennen:

Beispiel

# Titel in der Sitzung festlegen (zur späteren Wiederherstellung anhand des Titels)
/title Diskussion über den Datenbankmigrationsplan

# Aktuelle Sitzungsinformationen anzeigen (ID, Titel, Token-Nutzung usw.)
/status

Kontextkomprimierung

Wenn der Gesprächsverlauf zu lang wird und sich dem Limit des Kontextfensters nähert, kannst du die Komprimierung manuell auslösen:

Beispiel

# Gesprächskontext manuell komprimieren
/compress

# Nach der Komprimierung werden alte Inhalte zusammengefasst, um Platz freizugeben,
# Du kannst weiterhin neue Nachrichten senden.
# Automatische Abstammung bei der Erstellung komprimierter Sitzungen:
# "Datenbankmigration" → "Datenbankmigration #2"

Die automatische Komprimierung wird von Hermes ausgelöst, wenn sich der Kontext dem Limit nähert. /compress ermöglicht es dir einfach, sie vorzeitig manuell auszulösen. Beide haben dieselbe Wirkung.


Gängige Slash-Befehle

In interaktiver Sitzung und im TUI-Modus, mit/Eingaben, die mit / beginnen, werden als Slash-Befehl erkannt.

Die folgenden sind die am häufigsten verwendeten CLI-Befehle, gruppiert nach Funktion.

Sitzungssteuerung

BefehlFunktionen
/new oder /resetNeue Sitzung starten
/title <name>Legt den Titel der aktuellen Sitzung fest
/statusZeigt Sitzungs-ID, Titel und Token-Nutzung an.
/usageZeigt Details zum Token-Verbrauch für die aktuelle Sitzung an.
/compressKonversationskontext manuell komprimieren
/resume [title]Stellt eine zuvor benannte Sitzung wieder her.

Task-Steuerung

BefehlFunktionen
/stopUnterbricht die Aufgabe, die Agent gerade ausführt.
/retryVeranlasst Agent, die vorherige Antwort neu zu generieren.
/undoMacht die vorherige Gesprächsrunde rückgängig (entfernt das letzte Frage-Antwort-Paar).
/background <task>Aufgaben asynchron in Hintergrundsitzungen ausführen

/undo ist ein Undo auf Gesprächsebene — es entfernt die letzte Frage-Antwort-Runde aus dem Sitzungsverlauf und setzt den Kontext von Agent auf den Zustand vor der vorherigen Antwort zurück. Dies unterscheidet sich von /retry (wobei das ursprüngliche Frage-Antwort-Paar beibehalten und Agent gebeten wird, erneut zu antworten).

Modelle und Konfiguration

BefehlFunktionen
/modelAktuell verwendetes Modell anzeigen
/model <name>Zu einem angegebenen Modell wechseln
/model listAlle verfügbaren Modelle auflisten
/reload-mcpMCP-Server-Konfiguration neu laden

Sicherheit und Genehmigung

BefehlFunktionen
/yoloAktiviert den YOLO-Modus und genehmigt gefährliche Befehle in der aktuellen Sitzung automatisch.
/yoloErneut eingeben, um den YOLO-Modus zu deaktivieren
/approveOperationen genehmigen, die derzeit auf Genehmigung warten
/denyOperationen ablehnen, die derzeit auf Genehmigung warten

Gedächtnis und Skills

BefehlFunktionen
/memoryAktuellen Gedächtnisinhalt anzeigen
/memory pendingAusstehende Gedächtnisschreibvorgänge anzeigen
/memory approve allAlle ausstehenden Gedächtnisschreibvorgänge genehmigen
/skillsAlle installierten Skills auflisten
/skills search <keyword>Lokale und Hub-Skills suchen
/skills install <id>Skills installieren
/<skill-name> [task]Einen angegebenen Skill aufrufen, um Aufgaben auszuführen
/learn <source>Neuen Skill aus Dokumentation oder Beschreibung generieren

Sonstiges

BefehlFunktionen
/checkpoint <tag>Dateisystem-Checkpoint erstellen
/rollback [ID]Auflisten oder auf einen angegebenen Checkpoint zurücksetzen
/cron listGeplante Aufgabenliste anzeigen
/cron pause/resume <name>Geplante Aufgaben pausieren oder fortsetzen
/suggestionsZeigt die Automatisierungsvorschläge des Agenten an.
/voice on/off/ttsSprachmodus steuern
/updateHermes auf die neueste Version aktualisieren
/helpAlle verfügbaren Befehle anzeigen

Schnellaktionen und Tipps

Tastaturkürzel

In interaktiver Sitzung können die folgenden Tastenkürzel die Betriebseffizienz verbessern:

TastenkürzelFunktionen
Ctrl+CUnterbricht die aktuelle Antwort des Agenten oder die Tool-Ausführung.
Ctrl+DInteraktive Sitzung beenden
Ctrl+LBildschirm löschen
Ctrl+B (Sprachmodus)Zum Aufnehmen halten, zum Senden loslassen
Pfeil nach obenVorherige Eingabe abrufen
TabDateipfade und Skill-Namen automatisch vervollständigen

Mehrzeilige Eingabe

Wenn Sie Nachrichten mit Zeilenumbrüchen senden müssen (z. B. Codeblöcke):

Beispiel

# Methode 1: Verwenden Sie \n, um einen Zeilenumbruch darzustellen
hermes chat -q Überprüfen Sie den folgenden Code:\n\ndef hello():\n    print('world')"

# Methode 2: Heredoc verwenden (Shell-Syntax)
hermes chat -q "$(cat << 'EOF'
Bitte analysieren Sie diesen Fehlerstapel:

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

Bitte geben Sie eine Korrektur an.
EOF
)"

Pipes und Umleitung

-qDer Modus unterstützt nativ Standard-Unix-Pipes:

Beispiel

# Sende den Dateiinhalt als Kontext an den Agenten
cat error.log | hermes chat -q "Analysiere diese Fehlerprotokolle und finde die Grundursache"

# Speichere die Antwort des Agenten in einer Datei
hermes chat -q "Generiere die README.md des Projekts" > README.md

# Verwende den Agenten als Filter in der Pipeline
cat data.csv | hermes chat -q "Extrahiere alle E-Mail-Adressen, eine pro Zeile" > emails.txt

Kombiniert mit Profile-Befehlsaliasen

Jedes Profile generiert automatisch dedizierte Befehls-Aliase, kein Bedarf-pflag:

Beispiel

# Verwende direkt den Profile-Alias, prägnant und natürlich
coder chat -q Refaktoriere diese Funktion
researcher chat -q Suche nach den neuesten Transformer-Papers
admin gateway status

# Entspricht
hermes -p coder chat -q Refaktoriere diese Funktion
hermes -p researcher chat -q Suche nach den neuesten Transformer-Artikeln
admin gateway status -p admin gateway status

Genehmigungen und Sicherheitskontrollen

Genehmigungsmodus

Wenn in der CLI gefährliche Befehle ausgeführt werden, zeigt Hermes eine Genehmigungsaufforderung an:

Agent 请求执行: rm -rf /tmp/build/*
原因: 清理构建缓存
[approve/deny]: _

Sie können innerhalb der Sitzung in Echtzeit entscheiden, ob Sie genehmigen oder ablehnen.

Der Genehmigungsmodus wird in config.yaml konfiguriert:

Beispiel

# Dateipfad: ~/.hermes/config.yaml
approvals
:
  mode
: manual        # manual (Standard, jeder gefährliche Befehl erfordert eine Genehmigung)
                      # smart (intelligente Beurteilung, Befehle mit geringem Risiko werden automatisch genehmigt)
                      # off (Genehmigung deaktivieren, nicht empfohlen)
  timeout
: 60         # Anzahl der Sekunden, die auf Genehmigung gewartet wird; bei Timeout automatisch ablehnen

YOLO-Modus

Wenn Sie sicher sind, dass das, was Agent gerade tun will, sicher ist (z. B. Vorgänge in einem Projekt, mit dem Sie vertraut sind), können Sie die Genehmigung vorübergehend überspringen:

Beispiel

# Beim ersten Eingeben von /yolo: YOLO-Modus aktivieren
# Alle Befehle in der aktuellen Sitzung werden automatisch genehmigt
/yolo

# Agent beginnt mit der Ausführung von Vorgängen, es werden keine Genehmigungsaufforderungen mehr eingeblendet...

# Erneut /yolo eingeben, um den YOLO-Modus zu deaktivieren und Genehmigungen wieder aufzunehmen.
/yolo

Der YOLO-Modus wirkt sich nur auf die aktuelle Sitzung aus; neue Sitzungen stellen automatisch den in config.yaml konfigurierten Genehmigungsmodus wieder her. Dies stellt sicher, dass eine vorübergehende Lockerung nicht zu einer dauerhaften Sicherheitslücke wird.


Skriptbasierte Nutzung

Hermes in Shell-Skripten verwenden

-qDie Exit-Codes und die Standardausgabe des Modus ermöglichen es Hermes, sich nahtlos in Shell-Skripte zu integrieren:

Beispiel

#!/bin/bash
# Dateipfad: scripts/auto-review.sh
# Automatisches Code-Review-Skript — überprüft von Git geänderte Dateien nacheinander

# Alle geänderten Python-Dateien ermitteln
changed_files=$(git diff --name-only HEAD~1 | grep '\.py$')

for file in $changed_files; do
    echo === Überprüfung:$file ==="

    # Hermes verwenden, um Code zu überprüfen und Ergebnisse direkt im Terminal auszugeben
    hermes chat -q "Überprüfe den Code-Stil und mögliche Probleme der folgenden Python-Dateien:
$(cat "$file")

Bitte geben Sie die entdeckten Probleme und Vorschläge in Listenform an.
2>/dev/null

    # Exit-Code prüfen
    if [ $? -ne 0 ]; then
        echo "[Warnung]$fileWährend des Überprüfungsprozesses ist ein Fehler aufgetreten.
    fi

    echo ""
done

Integration mit Git Hooks

Das Folgende ist ein Beispiel für einen Git-pre-commit-Hook—wodurch Agent den Code vor dem Commit überprüfen kann.

Beispiel

#!/bin/bash
# Dateipfad: .git/hooks/pre-commit
# Git-pre-commit-Hook: Agent prüft Code vor dem Commit

# Liste der im Staging-Bereich geänderten Dateien abrufen
staged_files=$(git diff --cached --name-only)

if [ -z "$staged_files" ]; then
    exit 0
fi

echo "Hermes Agent überprüft Codeänderungen..."

# Den Agent die vorgemerkten Änderungen überprüfen lassen
result=$(hermes chat -q "Überprüfen Sie die folgenden Codeänderungen im Git-Staging-Bereich,\
Nur kritische Probleme melden (Sicherheitslücken, Logikfehler, Breaking Changes).\
Wenn keine schwerwiegenden Probleme vorliegen, antworte PASS.\
\
Geänderte Dateien:\n$staged_files\n\
Detaillierter Diff:\n$(git diff --cached)"
2>/dev/null)

echo "$result"

# Wenn der Agent ein ernsthaftes Problem entdeckt, den Commit blockieren
if echo "$result" | grep -q "PASS"; then
    echo "Genehmigt"
    exit 0
else
    echo ""
    echo "Der Agent hat Probleme gefunden, die Aufmerksamkeit erfordern."
    echo Wenn als korrekt bestätigt, verwenden Sie git commit --no-verify, um diese Prüfung zu überspringen.
    exit 1
fi

Geplante Ausführung

In Kombination mit dem cron des Systems oder dem integrierten Cron-System von Hermes können CLI-Aufgaben periodisch ausgeführt werden – es wird jedoch empfohlen, das integrierte Cron von Hermes zu verwenden (überhermes cron create), weil es Ergebnisse direkt an die Nachrichtenplattform liefern kann.

Weitere Erweiterungen