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
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
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
| Mode | Befehl | Interaktionsmodus | Geeignete Szenarien |
|---|---|---|---|
| Interaktive Sitzung | hermes chat | Mehrrundendialog, eine Nachricht eingeben und dann auf die Antwort warten | Tägliche Entwicklung, komplexe Aufgaben |
| Einmalige Abfrage | hermes chat -q "..." | Einzelabfrage, beendet nach Antwort | Skripting, schnelle Abfragen |
| TUI | hermes --tui | Vollbild-Tastaturbedienung, Multi-Panel | Konzentrierte 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
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
/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
/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
/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
| Befehl | Funktionen |
|---|---|
| /new oder /reset | Neue Sitzung starten |
| /title <name> | Legt den Titel der aktuellen Sitzung fest |
| /status | Zeigt Sitzungs-ID, Titel und Token-Nutzung an. |
| /usage | Zeigt Details zum Token-Verbrauch für die aktuelle Sitzung an. |
| /compress | Konversationskontext manuell komprimieren |
| /resume [title] | Stellt eine zuvor benannte Sitzung wieder her. |
Task-Steuerung
| Befehl | Funktionen |
|---|---|
| /stop | Unterbricht die Aufgabe, die Agent gerade ausführt. |
| /retry | Veranlasst Agent, die vorherige Antwort neu zu generieren. |
| /undo | Macht 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
| Befehl | Funktionen |
|---|---|
| /model | Aktuell verwendetes Modell anzeigen |
| /model <name> | Zu einem angegebenen Modell wechseln |
| /model list | Alle verfügbaren Modelle auflisten |
| /reload-mcp | MCP-Server-Konfiguration neu laden |
Sicherheit und Genehmigung
| Befehl | Funktionen |
|---|---|
| /yolo | Aktiviert den YOLO-Modus und genehmigt gefährliche Befehle in der aktuellen Sitzung automatisch. |
| /yolo | Erneut eingeben, um den YOLO-Modus zu deaktivieren |
| /approve | Operationen genehmigen, die derzeit auf Genehmigung warten |
| /deny | Operationen ablehnen, die derzeit auf Genehmigung warten |
Gedächtnis und Skills
| Befehl | Funktionen |
|---|---|
| /memory | Aktuellen Gedächtnisinhalt anzeigen |
| /memory pending | Ausstehende Gedächtnisschreibvorgänge anzeigen |
| /memory approve all | Alle ausstehenden Gedächtnisschreibvorgänge genehmigen |
| /skills | Alle 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
| Befehl | Funktionen |
|---|---|
| /checkpoint <tag> | Dateisystem-Checkpoint erstellen |
| /rollback [ID] | Auflisten oder auf einen angegebenen Checkpoint zurücksetzen |
| /cron list | Geplante Aufgabenliste anzeigen |
| /cron pause/resume <name> | Geplante Aufgaben pausieren oder fortsetzen |
| /suggestions | Zeigt die Automatisierungsvorschläge des Agenten an. |
| /voice on/off/tts | Sprachmodus steuern |
| /update | Hermes auf die neueste Version aktualisieren |
| /help | Alle verfügbaren Befehle anzeigen |
Schnellaktionen und Tipps
Tastaturkürzel
In interaktiver Sitzung können die folgenden Tastenkürzel die Betriebseffizienz verbessern:
| Tastenkürzel | Funktionen |
|---|---|
| Ctrl+C | Unterbricht die aktuelle Antwort des Agenten oder die Tool-Ausführung. |
| Ctrl+D | Interaktive Sitzung beenden |
| Ctrl+L | Bildschirm löschen |
| Ctrl+B (Sprachmodus) | Zum Aufnehmen halten, zum Senden loslassen |
| Pfeil nach oben | Vorherige Eingabe abrufen |
| Tab | Dateipfade und Skill-Namen automatisch vervollständigen |
Mehrzeilige Eingabe
Wenn Sie Nachrichten mit Zeilenumbrüchen senden müssen (z. B. Codeblöcke):
Beispiel
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
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
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
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
# 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
# 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
# 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.