hermes@agent:~/.hermes$ cat hermes.md

Hermes Agent: Das Praxishandbuch (2026)

# Ein Praxishandbuch zu Hermes Agent, dem selbstoptimierenden Open-Source-KI-Agenten von Nous Research: Anbieter-Authentifizierung, Konfigurationsdateien, das Skills-System und der Betrieb als plattformübergreifendes Messaging-Gateway.

author: words: 45551 read_time: 228m updated: 2026-09-25 11:30
$ less hermes.md

Kurzfassung: Hermes Agent ist ein selbstoptimierender Open-Source-KI-Agent von Nous Research. Er läuft sowohl als CLI als auch als plattformübergreifender Messaging-gateway, speichert eine dauerhafte Identität und einen persistenten Speicher auf der Festplatte, bündelt skills, die sich mit zunehmender Nutzung verbessern, und funktioniert mit jedem OpenAI-kompatiblen LLM-Anbieter — Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Qwen Cloud, Hugging Face, Google, xAI/SuperGrok oder Ihrem eigenen selbst gehosteten Endpunkt.1219 Die aktuelle Version ist v0.21.5 (Tag v2026.9.24, 24. September 2026), ein kumulativer Patch für die v0.21-Reihe; Neuerungen in v0.21.5 erläutert die Änderungen, anschließend sind die Versionen von der neuesten bis zur ältesten aufgeführt.52 Die größte Hürde für die meisten neuen Benutzer ist die Anbieterauthentifizierung: Beim Tag v2026.9.24 umfasst die statische Auswahlliste von Hermes 39 Anbieter und wird automatisch um Einträge aus 38 mitgelieferten Anbieter-Plugins sowie benutzerdefinierte Endpunkte ergänzt. Dazu kommen drei verschiedene Authentifizierungswege (API-Schlüssel in .env, OAuth über hermes model oder ein benutzerdefinierter Endpunkt in config.yaml).53 Mit dem Authentifizierungsmodell sollten Sie sich zuerst vertraut machen — alles Weitere hängt davon ab, welcher Anbieter aufgelöst wird.

Hermes Agent ist eine vollständige Agent-Laufzeitumgebung, kein bloßer Chat-Wrapper. Er liest Ihr Dateisystem, führt Befehle in Sandbox-Backends aus, extrahiert Inhalte aus dem Web, startet Subagenten, führt geplante cron-Jobs aus, kommuniziert über einen einzigen gateway-Prozess mit Telegram/Discord/Slack/WhatsApp/Signal/Email und erstellt aus seinen Erfahrungen eigene skills.1 Die CLI ist eine Terminaloberfläche, die auf einer Konversationsschleife in run_agent.py aufbaut; der gateway ist ein dauerhaft laufender Prozess, der Nachrichten von Messaging-Plattformen durch dieselbe Konversationsschleife leitet.3

Der Unterschied zwischen gelegentlicher und professioneller Hermes-Nutzung beruht auf fünf Systemen. Wenn Sie diese beherrschen, wird Hermes zum Kraftmultiplikator:

  1. Anbieterauflösung: wie Authentifizierungsabläufe API-Aufrufen zugeordnet werden
  2. Konfigurationshierarchie: config.yaml + .env + auth.json + SOUL.md + AGENTS.md
  3. Tool- und toolset-System: welche Aktionen der Agent ausführen kann, mit plattformspezifischen Einschränkungen
  4. Skillsystem: prozeduraler Speicher, den der Agent selbst erstellt und weiterentwickelt
  5. Gateway + cron + profiles: Hermes dort ausführen, wo Sie leben, statt nur dort, wo Sie sich gerade befinden

Das Wichtigste in Kürze

  • Für die Anbieterauthentifizierung gibt es drei Wege, nicht nur einen. API-Schlüssel in .env, OAuth über hermes model/hermes auth oder ein benutzerdefinierter Endpunkt in config.yaml. Wählen Sie den Weg, der zu Ihrem Anbieter passt — nicht den, der Ihnen am vertrautesten erscheint.
  • Zum Wechseln des Anbieters genügt ein einziger Befehl. hermes model führt Sie interaktiv durch alle unterstützten Anbieter, einschließlich OAuth-Anmeldungen, und mit /model provider:model können Sie während einer Sitzung wechseln, ohne den Verlauf zu verlieren.2
  • Zwei Dateien bilden die vom Benutzer bearbeitbare Konfigurationsoberfläche. ~/.hermes/config.yaml enthält die Einstellungen, ~/.hermes/.env die Geheimnisse. auth.json, SOUL.md, MEMORY.md und skills/ werden direkt von Hermes verwaltet — Sie können SOUL.md von Hand bearbeiten, die übrigen Elemente werden jedoch vom Agenten selbst verändert.4
  • Hermes ist der Nachfolger von OpenClaw. Wenn Sie migrieren, importiert hermes claw migrate automatisch mehr als 30 Kategorien gespeicherter Zustände.5
  • Hilfsaufgaben verwenden standardmäßig Ihr Hauptmodell. Bilderkennung, Genehmigungsklassifizierung, Komprimierung und Sitzungstitel werden als separate „Hilfsaufrufe“ an LLM ausgeführt. Beim genannten Tag leitet auto jeden davon an Ihr primäres Chatmodell weiter – Sie müssen nichts konfigurieren, bei kostspieligen Reasoning-Modellen verursachen diese Nebenaufgaben jedoch erhebliche Zusatzkosten. Weisen Sie einzelne auxiliary.<task>-Slots günstigen, schnellen Modellen zu, wenn dies relevant ist.434

Jeder der folgenden Abschnitte basiert auf der offiziellen Dokumentation unter hermes-agent.nousresearch.com/docs und dem Quellcode unter github.com/NousResearch/hermes-agent. Jede Tatsachenbehauptung ist mit einer Fußnote versehen, die auf die jeweilige Upstream-Seite verweist.

Wählen Sie Ihren Weg

Was Sie benötigen Hier geht es weiter
Hermes installieren Installation — Einzeilen-Installationsprogramm oder manuelle Schritte
Bei einem Anbieter anmelden Authentifizierung und Anbieter — der Abschnitt, dessentwegen Sie hier sind
Während einer Sitzung das Modell wechseln Der Befehl hermes auth und Benutzerdefinierte und selbst gehostete Endpunkte für die /model-Syntax
Ein lokales LLM ausführen Benutzerdefinierte und selbst gehostete Endpunkte — Ollama, vLLM, SGLang, llama.cpp, LM Studio
Messaging-Plattformen verbinden Messaging-gateway — Telegram, Discord, Slack, WhatsApp, Signal, Google Chat, LINE, SimpleX Chat, ntfy, Buzz (28 in der Vergleichstabelle der Dokumentation)
Einen skill schreiben oder installieren Skillsystem — progressive Offenlegung + skill-Hub
Ausführliche Referenz zu jedem CLI-Befehl Lesen Sie weiter — oder springen Sie direkt zu den CLI-Befehlen

Funktionsweise von Hermes: Das Denkmodell

Hermes basiert auf einer einzigen Konversationsschleife, die von jedem Einstiegspunkt aufgerufen werden kann. Zu den Einstiegspunkten gehören die CLI (cli.py), das Messaging-gateway (gateway/run.py), der ACP-Adapter für die Editorintegration, der Batch-Runner und ein API-Server.3 Sie alle rufen letztlich AIAgent.run_conversation() in run_agent.py auf. Diese Methode:

  1. Erstellt über agent/prompt_builder.py den System-Prompt aus SOUL.md, MEMORY.md, USER.md, skills, Kontextdateien und Tool-Hinweisen (bei der Neustrukturierung im September 2026 wurde die Logik in das neue agent/-Paket verschoben)3
  2. Ermittelt über runtime_provider.py den Laufzeit-Provider — in diesem Schritt werden Ihre Authentifizierung, die Basis-URL und der API-Modus ausgewählt3
  3. Ruft den Provider in einem von drei API-Modi auf: chat_completions, codex_responses oder anthropic_messages3
  4. Leitet alle zurückgegebenen Tool-Aufrufe über model_tools.py und die zentrale Tool-Registry (tools/registry.py) weiter3
  5. Wiederholt die Schleife, bis das Modell eine endgültige Antwort erzeugt, und speichert die Sitzung anschließend mit FTS5 in SQLite3

Diese Schleife zu verstehen, ist entscheidend, da jede Funktion — Persönlichkeiten, Speicher, skills, Komprimierung und Fallback — an eine dieser Phasen anknüpft. Wenn Sie einen Konfigurationsschlüssel sehen und sich fragen, was er bewirkt, lautet die Antwort meist: „Er steuert Phase 1, 2, 3 oder 4 der obigen Schleife.“

Plattformunabhängiger Kern. Eine einzige AIAgent-Klasse dient der CLI, dem gateway, ACP, Batch und dem API-Server. Plattformspezifische Unterschiede befinden sich im Einstiegspunkt, nicht im Agenten selbst.3 Deshalb funktionieren dieselben Slash-Befehle sowohl im Terminal als auch in Telegram — sie werden über eine gemeinsame COMMAND_REGISTRY in hermes_cli/commands.py weitergeleitet.6

Die Verzeichnisstruktur ist das System. Hermes speichert alles unter ~/.hermes/ (oder bei nicht standardmäßigen profiles unter $HERMES_HOME):4

~/.hermes/
├── config.yaml        # Settings (model, terminal, TTS, compression, etc.)
├── .env               # API keys and secrets
├── auth.json          # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md            # Primary agent identity (slot #1 in system prompt)
├── memories/          # Persistent memory (MEMORY.md, USER.md)
├── skills/            # Bundled + agent-created + hub-installed skills
├── cron/              # Scheduled jobs
├── sessions/          # Gateway session state
└── logs/              # agent.log, gateway.log, errors.log (secrets auto-redacted)

Jede der oben aufgeführten Dateien hat eine klar definierte Aufgabe; keine davon überschneidet sich mit einer anderen. Wenn Sie wissen möchten, wo Hermes etwas Bestimmtes speichert, finden Sie es an einer dieser Stellen.


Neuerungen in v0.21.5 (Das Rollup vom 24. September)

Hermes Agent v0.21.5 (Tag v2026.9.24, 24. September 2026) ist die aktuelle Version und das dritte schlanke Rollup der v0.21.x-Reihe: „Dieses Tag bündelt die rund 460 seit v0.21.4 zusammengeführten PRs zu einer stabilen, mit einem Tag versehenen Version für nachgelagerte Nutzer.“ Kuratierte Versionshinweise werden erneut auf v0.22.0 verschoben. Die für Betreiber relevanten Änderungen wurden anhand des Quellcodes dieses Tags geprüft:5253

  • Hindsight memory verlässt den Kerncode. Der gebündelte Hindsight-Provider und das pip-Extra hermes-agent[hindsight] wurden entfernt; Hindsight wird nun aus dem von Vectorize gepflegten Plugin-Katalog installiert. In den Versionshinweisen wird dies nicht erwähnt. Wenn Ihre Konfiguration memory.provider: hindsight festlegt, installiert hermes update das Katalog-Plugin in jedem profile-Verzeichnis, das diesen Provider verwendet. Fehlt es weiterhin, wird es beim ersten Start des Agenten installiert, sofern security.allow_lazy_installs nicht auf false gesetzt ist (führen Sie andernfalls hermes plugins install hindsight aus). Einstellungen, .env-Schlüssel und Speicherdaten bleiben unverändert. Siehe Externe Speicher-Provider.
  • gateway.multiplex_profiles: false wird nicht mehr unterstützt. Das gateway ändert den Wert direkt in true und zeigt einmalig einen eingerahmten Hinweis an. Ein benanntes profile, das ein eigenes gateway behalten muss, legt in seiner eigenen config.yaml den Wert gateway.standalone: true fest. Um ein bereitgestelltes profile offline zu nehmen, parkt hermes -p <name> gateway stop es nun, ohne den Host anzuhalten. Siehe Messaging-gateway.
  • Neue Modelle in den Auswahlmenüs von Nous und OpenRouter: GPT-6 Sol und GPT-6 Luna (jeweils auch als -pro-Variante) sowie Claude Opus 5.5.
  • Die Plugin-Kompatibilität bleibt unverändert: plugins.allow_deprecated_imports: true funktioniert weiterhin.

Aktualisierung: hermes update oder der einzeilige Installer-Befehl; Docker- und Hermes Cloud-Images werden aus nousresearch/hermes-agent:v2026.9.24 erstellt.52

Neuerungen in v0.21.4 (der zweite Rollup-Patch)

Hermes Agent v0.21.4 (Tag v2026.9.21, 21. September 2026) ist der zweite bewusst schlank gehaltene Rollup der v0.21.x-Reihe. Die eigene Einordnung lautet: „Patch-Release. Dieser Tag bündelt die seit v0.21.3 zusammengeführten rund 1.800 PRs in einem stabilen Release-Tag für nachgelagerte Nutzer (Docker-Images, Hermes Cloud, gehostete Bereitstellungen).“ Das Zeitfenster seit v0.21.3 umfasst „5.071 Nicht-Merge-Commits“ in „5.169 geänderten Dateien“, „1.812 zusammengeführte PRs“ und „2.116 geschlossene Issues“. Gemessen an der Commit-Anzahl ist dies das zweitgrößte Zeitfenster zwischen zwei Tags in der Geschichte des Projekts, nur übertroffen von den 5.139 Commits in v0.21.1; gemessen an den zusammengeführten PRs ist es das größte. Die kuratierte Darstellung wird erneut aufgeschoben, wörtlich: „Vollständige kuratierte Versionshinweise für dieses Zeitfenster erscheinen mit v0.22.0, das alles ab v0.21.0 dokumentieren wird“ und „Nichts in diesem Zeitfenster wird ausgelassen.“ Die Notiz führt allerdings auf, was sie undokumentiert lässt. Jeder der folgenden Punkte wurde im Quellcode des Tags überprüft; wenn ein Punkt einen bestehenden Abschnitt dieses Leitfadens betrifft, ist der Verweis direkt eingefügt.5051

  • Ein gateway pro Host, wobei Desktop eine Verbindung herstellt, statt einen neuen Prozess zu starten. Pro Host und Betriebssystembenutzer gilt jeweils genau ein hermes serve und ein hermes gateway run, die sämtliche profile multiplexen. Durchgesetzt wird dies mit einer neuen hostweiten Singleton-Schicht: einer Host-Sperre, die für die gesamte Lebensdauer des erfolgreichen Prozesses gehalten wird, sowie einem Rendezvous-Datensatz mit (pid, createTime). So kann ein zweiter Aufruf nachweisen, dass der Besitzer derselbe aktive Prozess ist, und sich mit ihm verbinden, statt einen zweiten Port zu binden. Ein veralteter Zustand wird nachgewiesen, niemals lediglich angenommen. Die Desktop-App folgt demselben Prinzip und verbindet sich mit dem laufenden Host-Backend, statt ein zweites zu starten. Unter Messaging-gateway finden Sie die technischen Einzelheiten.51
  • Connectors werden zu einem einzigen, vom Backend verwalteten Vorgang mit einer einheitlichen Einrichtungskarte. Ein manage_connections-tool-Aufruf steuert im Backend eine rein datenbasierte Zustandsmaschine für Verbindungen. Desktop, TUI und CLI stellen sie alle als dieselbe Einrichtungskarte dar: ein Feld pro fehlendem Zugangsdatenwert, wobei die Aktion der Karte erst freigegeben wird, wenn jedes Pflichtfeld Text enthält. Siehe den Unterabschnitt zum kostenlosen Nous-Tarif.51
  • --format stream-json: maschinenlesbare Einmalausführungen. hermes chat -q ... --format stream-json gibt für CI-Runner und Orchestratoren pro stdout-Zeile ein JSON-Objekt aus: zunächst ein system/init-Ereignis, danach text-Deltas sowie tool_use- und tool_result-Ereignisse und schließlich einen abschließenden result-Umschlag mit Exit-Code, endgültigem Text und Token-Statistiken. Diagnosemeldungen und die Sitzungs-ID verbleiben auf stderr, die Tool-Ausgabe ist pro Ereignis auf 5.000 Zeichen begrenzt, das Flag impliziert --quiet, erfordert -q oder --query-file (ohne eine dieser Optionen erfolgt ein Abbruch mit Exit-Code 2) und kann nicht mit --tui kombiniert werden. Das Flag ist in der Optionstabelle für hermes chat aufgeführt.51
  • skills.auto_load verankert skills in jeder Sitzung. Unter skills.auto_load in config.yaml aufgeführte Namen werden in jeder neuen Sitzung vollständig geladen – gleichermaßen in CLI, TUI, gateway, cron und API – und einmalig aufgelöst, wenn der Prompt erstmals erstellt wird. Das Skills-System erhält einen Unterabschnitt zu verankerten skills.51
  • Eine decline-Option für nicht autorisierte Direktnachrichten. unauthorized_dm_behavior erhält neben pair und ignore einen dritten Wert: decline sendet eine einmalige höfliche Ablehnung und bleibt diesem Absender gegenüber anschließend 24 Stunden lang stumm. Siehe Benutzerautorisierung und Kopplung.51
  • mcp.discovery_concurrency begrenzt gleichzeitige Verbindungen bei der MCP-Erkennung. Der Standardwert ist 4, 0 bedeutet unbegrenzt. Jeder konfigurierte Server wird weiterhin verbunden, die Verbindungen werden lediglich nicht mehr alle gleichzeitig hergestellt. Siehe MCP-Integration.51
  • session_search erhält Zeitgrenzen und einen erneuten Abrufversuch. Das Suchschema akzeptiert after-/before-Grenzen (ISO-Angaben oder relative Zeiträume wie 7d). Liefert eine aus mehreren Wörtern bestehende Abfrage keine Ergebnisse, wird sie erneut ausgeführt und sucht dabei nach einem beliebigen Begriff, statt alle Begriffe wie beim impliziten AND von FTS5 zu verlangen. Siehe Sitzungssuche.51
  • hermes sessions set-journal-mode delete|wal: der Offline-Konverter für den Journalmodus. Dies ist der eigenständig nutzbare Lösungsweg für eine state.db, die im falschen SQLite-Journalmodus feststeckt – zuvor musste dafür PRAGMA journal_mode=DELETE manuell ausgeführt werden. Beenden Sie zunächst gateway, dashboard und sämtliche CLI-Instanzen: Der Befehl verweigert die Ausführung, solange ein fremder Prozess die Datenbank geöffnet hält, wechselt den Modus, ohne auf geöffnete Zugriffe zu warten, und überprüft anschließend die Header-Bytes der SQLite-Datei. Unter Windows gibt es keine Suche nach Prozessen, welche die Datei geöffnet halten. Dort wird die Ausführung daher verweigert, bis Sie nach dem manuellen Beenden sämtlicher Hermes-Prozesse --force übergeben. hermes doctor verweist nun darauf. Der Befehl ist in der Zeile zu hermes sessions unter Befehle der obersten Ebene aufgeführt.51
  • Desktop: eine Schrifteinstellung, Engine-Aktualisierungen mit einem Klick und die Deinstallation von Plugins. Die Einstellungen erhalten ein pro profile unter desktop.font_family gespeichertes Feld für die Schriftfamilie. Es überschreibt die serifenlose Schrift des Themes im Chat und in der Benutzeroberfläche. Die Vorschlagsliste beginnt mit barrierearmen Schriften (OpenDyslexic, Atkinson Hyperlegible, Lexend); ein leeres Feld überlässt die Auswahl dem Theme. Für die verwaltete Laufzeitumgebung lokaler Modelle wird bei einer verfügbaren Aktualisierung die Schaltfläche „Engine aktualisieren“ angezeigt. Nach einer fehlgeschlagenen Aktualisierung bleibt sie sichtbar, sodass Sie es direkt erneut versuchen können. Außerdem lässt sich ein Plugin im Plugins-Hub nach Bestätigung in einem Dialogfeld deinstallieren.51
  • Videokataloge: LTX 2.5 und Kling O3. Das FAL-Video-Plugin ergänzt ltx-2.5 (das Open-Source-Audio-Video-Modell von Lightricks: natives Audio, Bild-zu-Video mit bis zu 20 s/4K, Voreinstellungen für Kamerabewegungen, günstiger Tarif – fal lehnt Clips mit mehr als 10 s bei 1440p/2160p ab) und kling-o3 (Kuaishous Spitzenmodellfamilie im Premium-Tarif: natives Storytelling mit mehreren Einstellungen, optionales Audio, 3–15 s).51
  • Der Plugin-Katalog wird zu einem mitgelieferten Verzeichnis und einer Website. Das Verzeichnis plugin-catalog/ des Repositorys ist von 9 Einträgen bei v2026.9.14 auf 228 bei diesem Tag angewachsen – ein geprüftes YAML pro Plugin, jeweils an eine exakte Commit-SHA gebunden. Die Dokumentationswebsite erstellt nun für jedes Plugin und jeden Autor eine eigene Seite, auf der die README-Datei des Plugins aus dem festgeschriebenen Commit dargestellt wird. Die zehn im Release genannten Community-Plugins sind beim Tag allesamt im Katalog enthalten. Einzelheiten finden Sie im Plugin-System.51
  • Hinzu kommt eine umfangreiche Reihe von Fehlerbehebungen in den Bereichen profile-/Multiplex-Isolation, cron, Kanban, Desktop und state.db, die das Release lediglich als Kategorie nennt. Die kuratierte Dokumentation dieser Korrekturen bleibt v0.22.0 vorbehalten.50

Die Rücknahme der Plugin-Kompatibilität ist auch in diesem Zeitfenster noch nicht erfolgt. COMPAT_MANIFEST.md, compat_manifest.json und die Kompatibilitäts-Shims sind bei v2026.9.21 weiterhin vorhanden. Die einzigen Änderungen an hermes_cli/plugin_compat.py in diesem Zeitfenster sind ein prozessweiter Scan-Cache (ein Multiplex-gateway erkennt Plugins einmal pro bereitgestelltem profile; das erneute Parsen des Quellcodes sämtlicher Plugins kostete im Startpfad rund 0,4 s pro profile) sowie POSIX-formatierte Trefferpfade unter Windows (#112576). Die Datumssperre und die Ausweichmöglichkeit über einen booleschen Literalwert sind unverändert, sodass plugins.allow_deprecated_imports: true betroffene Plugins weiterhin laden lässt. Der Kompatibilitätskasten im Plugin-System enthält den aktuellen Stand.42

Das Aktualisierungsverfahren bleibt unverändert: hermes update für Git-Installationen oder das Shell-Installationsprogramm für Neuinstallationen. Docker- und Hermes Cloud-Images werden aus diesem Tag erstellt (nousresearch/hermes-agent:v2026.9.21).50

Neuerungen in v0.21.3 (der Patch vom 14. September)

Hermes Agent v0.21.3 (Tag v2026.9.14, 14. September 2026) umfasst drei weitere Tage von main und erscheint mit einer aus zwei Punkten bestehenden Notiz. Der Anlass: Cloud-Agenten aktualisieren sich automatisch auf den neuesten Release-Tag, und die Korrekturen für die Anmeldung am entfernten gateway mussten sie erreichen. (1) Sitzungen des entfernten dashboards werden nicht mehr durch Häufungen von Aktualisierungsanfragen widerrufen: Beide Aktualisierungspfade im gateway (die Cookie-Schranke und die native Bearer-Route von Desktop) führen nun gleichzeitig eintreffende Anfragen mit demselben rotierenden Aktualisierungs-Token zu einem einzigen Vorgang zusammen. Dadurch kann eine Anfragenhäufung beim Aufwachen von Desktop nicht mehr ein bereits rotiertes Token erneut an die Wiederverwendungserkennung des Nous Portal senden und so die gesamte Sitzung widerrufen. Zudem läuft die Aktualisierung außerhalb der Ereignisschleife, sodass ein langsamer Identitätsanbieter /api/status nicht mehr einfriert. (2) Langlebige Prozesse erstellen keine doppelten Writer-Handles für state.db mehr: gateway, dashboard/Desktop-Backend, ACP und CLI-Reader greifen schreibgeschützt zu, während Writer innerhalb desselben Prozesses das Handle aus der Registry gemeinsam verwenden. Statistiken des Zeitfensters: „1.036 Nicht-Merge-Commits“ in „2.642 geänderten Dateien“ und „338 zusammengeführte PRs“. Alles Weitere wird bewusst aufgeschoben: Das Release benennt, was es nicht dokumentiert (Auswahlfelder für den Reasoning-Aufwand in jeder Modellauswahl, OpenRouter OAuth PKCE, HEIF-/HEIC-/AVIF-Dekodierung, eine Welle neuer FAL-Katalogeinträge, in Slack eingefügte Tabellen und API für Agent Sessions, die Verweigerung des WAL-Modus von state.db auf VM-übergreifenden Dateisystemen und mehr), und verpflichtet sich wörtlich zu einer kuratierten Dokumentation: „Vollständige kuratierte Versionshinweise für dieses Zeitfenster erscheinen mit v0.22.0, das alles ab v0.21.0 dokumentieren wird“ und „Nichts in diesem Zeitfenster wird ausgelassen.“49

Und die Frist für die Plugin-Kompatibilität trat planmäßig in Kraft. Die für den 14. September 2026 angekündigte Entfernung aus v0.21.1 wurde im ausgelieferten Code als Datumssperre umgesetzt, nicht als Rücknahme im Code: Beim Tag v2026.9.14 enthält hermes_cli/plugin_compat.py den Wert COMPAT_REMOVAL_DATE = 2026-09-14, und removal_in_effect() gibt ab diesem Datum „true“ zurück (oder bereits dann, wenn die Manifestdatei fehlt). Ein betroffenes externes Plugin wird daher nun beim Laden deaktiviert und mit einem roten Hinweis versehen. Was noch NICHT geschehen ist: die Rücknahme, durch die die alten Importpfade tatsächlich gelöscht werden. COMPAT_MANIFEST.md, compat_manifest.json und die Kompatibilitäts-Shims sind beim Tag weiterhin vorhanden – ebenso bei v2026.9.21 und mit Stand vom 22. September auf main. Deshalb funktioniert plugins.allow_deprecated_imports: true weiterhin als Ausweichmöglichkeit: Sobald der Loader fortfahren darf, lassen sich die alten Pfade noch auflösen. Dabei gibt es zwei Fallstricke: Der Schlüssel muss ein boolescher YAML-Literalwert sein (der Code akzeptiert ausschließlich den booleschen Wert True; eine Zeichenfolge in Anführungszeichen wie "true" oder "false" gilt gemäß dem Quellcodekommentar „Literal boolean only“ als nicht gesetzt), und diese Ausweichmöglichkeit entfällt, sobald die Rücknahme erfolgt, da die Pfade selbst dann verschwinden. Der Kompatibilitätskasten im Plugin-System enthält den aktuellen Stand.4249

Neuerungen in v0.21.2 (das state.db-Patch-Release)

Hermes Agent v0.21.2 (Tag v2026.9.11, 11. September 2026) dient in erster Linie dazu, die durch v0.21.0 verursachten Probleme zu beheben. Das Release bringt es auf den Punkt: „v0.21.0 enthielt eine umfassende Überarbeitung der Verbindungsverwaltung des Sitzungsspeichers, die state.db bei einigen Installationen instabil machte: Sekundäre Schreibprozesse hoben gegenseitig ihre Sperren auf, intakte Datenbanken wurden als beschädigt gemeldet und eine einzige fehlerhafte Zeile brachte sessions list zum Absturz. Dieses Release beseitigt diese gesamte Fehlerklasse und bündelt alles Weitere, was in den vier Tagen seit v0.21.1 auf main gelandet ist.“ Anders als die bewusst knappe Release-Notiz zu v0.21.1 dokumentiert diese Version ihre eigenen Highlights. Die Statistik für diesen Zeitraum umfasst „947 Non-Merge-Commits“ in „1.869 geänderten Dateien“ sowie „312 zusammengeführte PRs“ von „140 Mitwirkenden“; die kuratierte Gesamtdokumentation der gesamten v0.21.x-Reihe bleibt v0.22.0 vorbehalten.48

  • Die state.db-Zuverlässigkeitsoffensive: sechs PRs, 44 geschlossene Issues. Die Hinweise für Betreiber stehen im Release an erster Stelle – und auch Sie sollten sie beherzigen: Wenn Ihre state.db unter 0.21.0 oder 0.21.1 beschädigt wurde, führen Sie hermes doctor aus. Der Befehl unterscheidet nun zwischen strukturellen Schäden und Schäden am Volltextsuchindex, statt alles als „FTS-Schreibkorruption“ zu bezeichnen. Reicht ein Neuaufbau nicht aus, verweist er auf hermes sessions recover --inspect-only (offline, nicht destruktiv und an das jeweilige profile gebunden; prüft die Lesbarkeit der kanonischen Tabelle, ohne eine Ausgabedatenbank anzulegen). Die Behebung der Grundursache entfernt sämtliche sekundären Schreibprozesse aus dem Speicher: profile-gateways schrieben bislang alle 5 Sekunden den Status gehosteter Räume in die root-state.db. Diese Koordination erfolgt nun über eine eigene shared-state.db, sodass profile-gateways den zentralen Sitzungsspeicher nie mit Schreibzugriff öffnen. Das Dashboard öffnet ihn zunächst schreibgeschützt. Die Lebenszyklussicherung von cron nutzt nun die registrierte Verbindungsverwaltung statt eines direkten open() auf einer aktiven Datenbank, das die POSIX-Sperren des gateway aufhebt – das klassische Rezept für eine beschädigte SQLite-Datenbank. Außerdem verweigert doctor --fix einen checkpoint, dessen Sicherheit nicht nachweisbar ist. Weitere Verbesserungen betreffen nicht nur die Schreibprozesse: Schäden am FTS-Index beeinträchtigen jetzt lediglich die Suche, während der Index später neu aufgebaut wird, statt den gesamten Vorgang abzubrechen. Eine beschädigte Zeile bringt sessions list, den Export oder Insights nicht mehr zum Absturz; fehlerhafte Zeilen erscheinen als ?, begleitet von einer Warnung mit dem Namen der Sitzung. Sitzungen werden niemals an die Datenbank eines anderen profile gebunden und lesen auch nicht daraus. Zudem belegt ein schreibgeschützter Zugriff keine Schreibsperre mehr, wodurch ein einmaliger hermes-Aufruf hinter einem ausgelasteten gateway statt nach 4–20 Sekunden Wartezeit fehlzuschlagen nun nach 0,01 Sekunden abgeschlossen ist.48
  • Härtung der Isolation mehrerer profile. Seit v0.19.0 wiederholt dieser Leitfaden die Aussage des Projekts, dass das profile-Routing jedem profile „vollständig isolierte Konfigurationen, skills, Speicher und Geheimnisse“ bereitstellt. In v0.21.2 bestanden bei diesem Versprechen noch Lücken, die nun geschlossen sind: Bots sekundärer profile übernahmen die Zulassungslisten des Standard-profile, Adapter konnten Zugangsdaten an den Host des Standard-profile senden, stdio-MCP-Server erhielten die Vault-Geheimnisse des Standard-profile, über MEDIA: konnten .env/auth.json/state.db eines anderen profile angehängt werden, Webhook- und Feishu-Callbacks konnten vom gerouteten profile abweichen und sekundäre profile konnten aus prozessbezogenen Zwischenspeichern den Nous-Bearer eines benachbarten profile übernehmen (#107609-#107630). Wenn Sie mehrere profile über ein einziges gebündeltes gateway betreiben, ist dies das Release, ab dem das Isolationsversprechen tatsächlich eingehalten wird.48
  • Der passwortblinde Zugangsdaten-Vault. Der Agent kann sich nun im Browser anmelden, Zahlungen ausführen und Adressen eintragen, indem er 1Password, Bitwarden oder den lokalen Hermes-Vault verwendet, ohne jemals ein Geheimnis zu sehen. Zwei-Faktor-Codes stammen entweder aus einem gespeicherten Authentifizierungsschlüssel (TOTP: ein Base32-Seed oder eine otpauth://totp-URI; zählerbasiertes HOTP wird abgelehnt) oder werden über Ihre Benutzeroberfläche abgefragt. Jedes Backend stellt dem Agent dieselbe Struktur bereit – Anmeldemetadaten sowie einen undurchsichtigen, namensraumgebundenen Handle (vault_ lokal, op:, bw:), wobei das Passwort erst beim Ausfüllen aufgelöst wird. Externe Passwortmanager bleiben gesperrt, bis Sie sie für die Sitzung entsperren, und das Masterpasswort „ist niemals ein tool-Argument, niemals argv und wird niemals dauerhaft gespeichert“. Dies baut auf der in v0.19.0 eingeführten SecretSource-Arbeit auf, durch die API-Schlüssel der Anbieter aus .env-Dateien im Klartext entfernt wurden. Der Vault erreicht nun dasselbe für die Browserzugangsdaten des Agent.48
  • Ein kuratierter, per SHA fixierter Plugin-Katalog. hermes plugins browse listet „jeden Eintrag des kuratierten Plugin-Katalogs“ auf, hermes plugins search durchsucht den Katalog und hermes plugins install löst Katalognamen ebenso wie Git-URLs und owner/repo auf. hermes plugins pack ergänzt dies um „deklarative, gemeinsam nutzbare Plugin-Sets“: Eine einzige hermes-pack.yaml fixiert eine Gruppe von Plugins auf exakte Commit-SHAs, pack install verteilt sie auf gewöhnliche fixierte Installationen, wobei die Zustimmung zu Funktionen weiterhin für jedes Plugin einzeln erfolgt, pack export erzeugt ein pack der aktuellen Installation und pack show dient als Probelauf. Der Befehlsblock unter Plugin-System enthält die neuen Unterbefehle.48
  • Kostenloser Nous-Tarif und geführter Erststart. Neuinstallationen bieten sofort kostenlose Inferenz und Konnektoren, wobei für die Anmeldung nur ein Befehl erforderlich ist. /login funktioniert innerhalb eines Chats und Konnektor-tools für Gmail, Linear, Notion und weitere Dienste lassen sich über tool_search finden. Der geführte Erststart der Desktop-Anwendung wird mit HERMES_GUEST_ONBOARDING=1 aktiviert, wobei ausschließlich der exakte Wert 1 gilt: Der eigene Test der Desktop-Anwendung bestätigt, dass 'true', '0' und ein leerer Wert die Funktion deaktiviert lassen. Außerdem wird die Startentscheidung in die Umgebung des erzeugten Backend-Prozesses geschrieben, sodass ein geerbter Wert niemals übernommen wird. Weitere Informationen finden Sie unter Nous Tool Gateway.48
  • Backend-Spawn-Stürme in der Desktop-Anwendung gehören der Vergangenheit an. Bot Mode erzeugte oder kontaktierte bislang beim Start und bei jeder Aktualisierung der Liste für jedes profile ein eigenes Backend. Beim Bewegen des Mauszeigers über die Bots-Liste wurde für jede Zeile ein Backend gestartet, und ein profile-Wechsel konnte ein zweites primäres Backend erzeugen. Sämtliche dieser Probleme wurden in diesem Release-Zeitraum behoben.48

Der Aktualisierungsvorgang bleibt unverändert: Verwenden Sie bei einer bestehenden Installation hermes update und bei einer Neuinstallation das Shell-Installationsprogramm.48

Neu in v0.21.1 (The Rollup Patch)

Hermes Agent v0.21.1 (Tag v2026.9.7, 7. September 2026) ist bewusst schlank gehalten: ein „Patch-Release“, das „den aktuellen Stand von main seit v0.21.0 für getaggte Deployments und nachgelagerte Anwender bündelt“. Der Text nennt die Zahlen für diesen Zeitraum – „5.139 Nicht-Merge-Commits in 4.364 geänderten Dateien (+601.014 / -768.419)“ und „632 zusammengeführte PRs“ – und vertagt anschließend die eigentliche Darstellung: „Vollständige kuratierte Release Notes für diesen Zeitraum erscheinen mit v0.22.0.“ Damit ist dies das größte Tag-zu-Tag-Fenster in der Geschichte des Projekts (kein früheres Fenster zwischen benachbarten Tags überschreitet die 2.790 Nicht-Merge-Commits von v2026.7.20..v2026.7.30), veröffentlicht mit den kürzesten Release Notes. Bis v0.22.0 die kuratierte Dokumentation liefert, zeigen die folgenden sechs Bereiche, was sich beim Betrieb von Hermes mit diesem Tag ändert; alle Angaben wurden im Quellcode verifiziert.41

  • Die Codebasis wurde aufgeteilt, und am 14. September lief eine Frist für die Plugin-Kompatibilität ab. Bei der Aufteilung im September 2026 (PR #102117) wurden die großen Module des Repositorys in spezialisierte Dateien zerlegt: Ein neues Paket agent/ enthält die Interna der Konversationsschleife (214 Module auf oberster Ebene sowie sieben Unterpakete; prompt_builder.py befindet sich nun unter agent/prompt_builder.py, während run_agent.py weiterhin die Heimat von AIAgent ist), die Subcommand-Parser von CLI wurden in das Paket hermes_cli/subcommands/ verschoben (61 Module), die statische Liste CANONICAL_PROVIDERS wanderte von hermes_cli/models.py nach hermes_cli/models_catalog_static.py (die Liste selbst ist unverändert: 39 statische Einträge, die weiterhin automatisch anhand der 39 mitgelieferten Provider-Plugin-Ordner erweitert werden), und delegate_task wurde auf etwa ein Dutzend Module unter tools/delegate_tool_* verteilt. Interne Importpfade sind keine stabile API. Deshalb exportiert eine neue Datei COMPAT_MANIFEST.md im Stammverzeichnis des Repositorys 1.148 „moved-lazy“-öffentliche Namen erneut über ihre alten Modulpfade. Bei deren Auflösung wird für jeden Namen einmal pro Prozess eine HermesPluginCompatWarning ausgegeben. Die Kompatibilitätsschicht war nur vorübergehend vorgesehen und wurde planmäßig am 14.09.2026 wirksam entfernt, sechs Tage nach dem Tag – nicht durch eine Rücknahme im Code, sondern über eine bereits im ausgelieferten Code enthaltene Datumsschranke. Seit diesem Datum wird ein betroffenes Drittanbieter-Plugin nicht geladen: Das CLI-Banner, hermes doctor und hermes update zeigen einen roten Hinweis mit dem Namen des deaktivierten Plugins, die Desktop-Anwendung zeigt einmalig ein modales Fenster, und hermes plugins list nennt den Grund. Wenn Sie externe Plugins verwenden, prüfen Sie diese: hermes plugins compat <path> gibt für jeden veralteten Pfad file:line mit altem Pfad -> neuem Pfad aus und beendet sich mit Status 1, solange noch Fundstellen vorhanden sind (--json liefert eine maschinenlesbare Ausgabe; ohne Argument durchsucht der Befehl die gesamte installierte Plugin-Sammlung). Als Ausweichlösung für ein Plugin, dessen Autor die Umstellung noch nicht vollzogen hat, dient plugins.allow_deprecated_imports: true in config.yaml; diese Option funktioniert weiterhin: Die Änderung, welche die alten Importpfade tatsächlich löscht, war mit Stand vom 22. September noch nicht übernommen worden (verifiziert bis einschließlich Tag v2026.9.21 sowie auf main). Daher lassen sich die alten Pfade weiterhin auflösen, sobald der Loader fortfahren darf. Einzelheiten zu den Folgen finden Sie oben unter Neu in v0.21.2; der Abschnitt Plugin-System enthält den Kasten zum aktuellen Stand.42
  • Gateway-Konversationen werden überhaupt nicht mehr zeitgesteuert gewechselt. Die Dokumentation zum Sitzungslebenszyklus formuliert die Regel nun ausdrücklich: „Weder Inaktivität noch verstrichene Zeit führen jemals zum Wechsel einer Konversation. /new und /reset setzen eine explizite Grenze; lange Verläufe werden weiterhin durch Kontextkomprimierung verwaltet. Veraltete Timer-Konfigurationen werden ignoriert. Der vorhandene Datentyp SessionResetPolicy besteht als inaktive Kompatibilitätsinformation fort und ist keine Laufzeitrichtlinie.“ Grenzen werden ausdrücklich durch Benutzer gesetzt. Falls Sie über hermes claw migrate noch Sitzungs-Reset-Timer aus der OpenClaw-Ära übernommen haben, sind diese nun inaktive Daten. Siehe Messaging-Gateway.43
  • Die Autorisierung für MCP erhält einen Gerätecode-Ablauf. hermes mcp login <name> bekommt die Option --flow {browser,device}: browser bezeichnet den bestehenden PKCE-Ablauf, device eine Gerätecode-Anmeldung nach RFC 8628 für Rechner, auf denen ein Browser-Callback unpraktisch ist. Die Option überschreibt die Konfiguration oauth.flow des Servers. In diesem Zeitraum wurde auch die übrige Authentifizierungsoberfläche von MCP robuster gemacht: Die Eigentümerschaft von Profilen wird in allen OAuth-Sitzungen durchgesetzt, fehlerhafte OAuth-Metadaten-Caches werden ignoriert, statt einen Server zu blockieren, und die Desktop-Anwendung leitet MCP-OAuth über clientlokale Callbacks weiter. Ebenfalls relevant: -t/--toolsets filtert nun auch, welche konfigurierten MCP-Server überhaupt gestartet werden. Dadurch überspringt ein einmaliger Aufruf von hermes -z -t <toolsets> den Kaltstart nicht benötigter Server. Der Befehlsblock unter MCP-Integration enthält nun login und reauth [--all]. Beide Befehle gab es bereits vor diesem Zeitraum, sie waren hier jedoch noch nicht dokumentiert.44
  • Delegation bildet Hintergrundarbeit nun ehrlich ab. Sechs Zuverlässigkeitsverbesserungen an delegate_task, alle dem Quellcode des Delegate-Tools im betreffenden Tag entnommen. (1) Ein Hintergrund-Batch wird standardmäßig als EIN Abschluss zurückgegeben. Durch Aktivieren von delegation.independent_completions wird der Aufruf in Abschlusseinheiten aufgeteilt: Aufgaben mit demselben group-Wert werden zusammengefasst und gemeinsam gemeldet, während jede Aufgabe ohne Gruppe nach ihrer Fertigstellung einzeln gemeldet wird. Diese Standardeinstellung ist bewusst gewählt – laut Quellcode führte eine Flut einzelner Aufgabenabschlüsse zu „fragmentierten Orchestratoren, die darauf nicht vorbereitet waren“. (2) Die Hintergrundprozesse eines Childs werden bei dessen Abbau beendet, sofern das Child sie nicht mit process_manage(action="handoff") an das Parent übergibt. Nicht übergebene Überreste werden im Ergebnis als orphaned_processes aufgeführt; Child-Prozesse, die beendet wurden, ohne dass ihre Ausgabe jemals gelesen wurde, erscheinen als unread_completions einschließlich des Ausgabeendes. Die Haltung hinter diesem Design lautet gemäß dem Docstring im Quellcode: Das Parent „muss dies von der Laufzeit erfahren“, statt sich auf die Behauptung eines Childs zu verlassen, ein „Watcher laufe“. (3) delegation.fallback_providers wird zu einer echten Konfigurationsoberfläche: null übernimmt für nicht fest zugewiesene Childs die Kette des Parents, [] deaktiviert den Fallback, und ein über Provider, Endpunkt oder Modell festgelegtes Child erhält keinen Fallback, sofern diese Einstellung nicht ausdrücklich einen angibt. (4) Die Child-Fallback-Kette wird über den kanonischen Normalisierer aufgelöst, sodass fehlerhafte Einträge verworfen werden, statt das Starten zu verhindern. (5) Bei einem Absturz während einer Einheit gehen abgeschlossene Childs nicht mehr verloren: Jedes abgeschlossene Child einer Einheit mit mehreren Childs wird dauerhaft in der eigenen Zeile der Einheit gespeichert und bleibt im wiederhergestellten Ergebnis als Teilergebnis erhalten. (6) Subagents übernehmen niemals die einstündige Prompt-Cache-Stufe: Ein delegiertes Child wird auf die 5-Minuten-Stufe herabgesetzt, da die 1-Stunden-Stufe für eine Person ausgelegt und bepreist ist, die ihre Arbeit unterbricht, nicht für einen Schub paralleler Childs.45
  • Provider und Modelle. Die Kataloge erhalten OpenAIs GPT-6 Astra und Astra Pro mit den Geschwindigkeitsstufenvarianten -fast/-flex („doppelter Preis, Prioritätsstufe“ / „halber Preis, Flex-Stufe“) in den Katalogen von Nous Portal und OpenRouter. Auf der ChatGPT/Codex-OAuth-Route ist Astra an das Konto gebunden (nur die Live-Erkennung für das jeweilige Konto darf es anbieten) und erhält eine optionale -900k-Auswahlvariante, welche das angegebene Kontextfenster von 272K auf live verifizierte rund 900K erhöht; das Suffix wird nie übertragen. Hinzu kommen anthropic/claude-fable-5.1, google/gemini-3.7-flash und gemini-3.8-flash, qwen/qwen3.8-max-0902 und qwen3.8-flash sowie Metas Muse-Spark-1.3-Familie (1M Kontext, einschließlich Contributor-Varianten) und ein Meta-Provider-Plugin zur Bilderzeugung namens muse-image. Tavily kommt als Backend für Websuche und Extraktion hinzu (TAVILY_API_KEY; ohne Schlüssel funktioniert es, wenn Tavily über hermes tools ausgewählt wird). Eine verwaltete llama.cpp-Laufzeit macht lokale Modelle zu einem gleichwertigen Zugriffsweg (offizielle Binärdateien, ein überwachter llama-server, Einrichtung mit einem Klick in der Desktop-Anwendung), und externe, nicht im Repository enthaltene Prozess-Provider erhalten einen eigenen Auflösungszweig. Für den Betrieb gilt: Die Remote-Kataloge der Modellauswahl werden nun alle 20 Minuten aktualisiert (model_catalog.ttl_minutes, Standardwert 20); der alte Schlüssel ttl_hours wird nur berücksichtigt, wenn ein Benutzer ihn ausdrücklich gesetzt hatte.46
  • Desktop: Seite annotieren, Sitzung steuern. Der integrierte Browser erhält einen Kommentarmodus: Klicken Sie auf „Annotate“, anschließend auf ein beliebiges Element der Live-Seite (oder ziehen Sie einen Rahmen auf) und geben Sie eine Notiz ein. Gespeicherte Kommentare bleiben als nummerierte Markierungen sichtbar und senden selbstständig niemals einen Turn. Wenn Sie fertig sind, überträgt „Add N comments“ den gesamten Batch an den Composer, einschließlich eines zugeschnittenen Screenshots für jede Markierung. Jeder Elementkommentar enthält außerdem seinen CSS-Selektor, sein Markup und die für das Layout relevanten berechneten Stile. So findet der Agent das Element in Ihrem Quellcode, statt anhand eines Bildes raten zu müssen (Passwort- und ausgeblendete Werte sowie schlüsselartig benannte Attribute werden geschwärzt, bevor das Markup die Seite verlässt). Größere Batches werden nach Seitenbereich gruppiert. So werden aus etwas mehr als zwanzig Kommentaren einige wenige Arbeitspakete, die meist unterschiedliche Dateien betreffen – und genau deshalb können sie sicher auf parallele Worker verteilt werden. Ergänzend kommen strukturierte Sitzungssteuerungen sowie Steuerelemente für die Sitzungsautomatisierung, das Erstellen von Sitzungen per Ziehen, eine Sitzungsimportansicht für Transkripte fremder Coding-Agents, display.resume_last_session (standardmäßig true: Bei einem Kaltstart wird der letzte Chat oder die letzte Seite erneut geöffnet), eine beim ersten Öffnen angezeigte Einwilligungsabfrage, die browser.use_real_profile anbietet, wenn ein Browser-Fensterbereich bei deaktivierter Option geöffnet wird, ein integrierter Katalog optionaler Skills unter Capabilities -> Skills mit Installation per Klick und Russisch als neue Sprache für die Desktop-Benutzeroberfläche hinzu (die 17 Gebietsschema-Kataloge von CLI bleiben unverändert).47

Das Aktualisierungsverfahren bleibt unverändert: hermes update für eine bestehende Installation oder das Shell-Installationsprogramm für eine Neuinstallation. Die kuratierte Dokumentation dieses Zeitraums ist v0.22.0 vorbehalten; die oben beschriebenen Bereiche zeigen, was sich mit diesem Tag ändert.41

Neuerungen in v0.21.0 (The Pantheon Release)

Hermes Agent v0.21.0 (Tag v2026.8.31, 31. August 2026) ist das aktuelle Funktionsrelease und zugleich die kuratierte Dokumentation, auf die der gesamte v0.20.x-Rollup-Zyklus verwiesen hatte: „Dieses Release bündelt alles aus den Infrastruktur-Patch-Tags v0.20.1–v0.20.6 – diese Zeitfenster sind hier vollständig dokumentiert.“ Inhaltlich knüpft es an den Herald an: „Mit v0.20.0 wurde Hermes zum Herold – er sprach und überbrachte anderen Agenten Botschaften. In v0.21.0 versammeln sich die Götter.“ Die Statistikzeile im Wortlaut: „Seit v0.20.0: ~5.800 Commits · ~2.475 zusammengeführte PRs · ~5.680 geänderte Dateien · ~869.000 Einfügungen · ~135.000 Löschungen · ~2.100 geschlossene Issues · mehr als 760 Mitwirkende“.35

Das Release ist nach Funktionsbereichen gegliedert; diese Zusammenfassung folgt derselben Struktur. Wenn eine Funktion einen bestehenden Abschnitt dieses Leitfadens betrifft, finden Sie den Verweis direkt im jeweiligen Eintrag.

  • Bot Mode: Ihre Agenten werden zu einer integrierten Gemeinschaft. Bot Mode entwickelt sich vom gebündelten hermes-bots-Plugin des v0.20.3-Zeitfensters zu einem standardmäßig aktivierten Bestandteil der Desktop-App. Jedes Agenten-profile erhält einen Namen, ein deterministisches Avatar-Gesicht mit Steuerelementen zum Zufallsgenerieren und Sperren sowie einen Platz in einer gemeinsamen Übersicht. Sie erstellen Gruppenchats im Discord-Stil, in denen mehrere Bots und Sie sich in einem Raum unterhalten, erwähnen über den Eingabebereich beliebige Bots mit @ und versehen Räume mit Namen und Bildern. Zum Funktionsumfang gehören außerdem eindeutig zugeordnete Nachrichtenkarten für die Kommunikation zwischen Agenten, Zustellhinweise auf Absenderseite, Paint-first-Hydration für sofortiges Aufwachen, ein Routines-Bereich und eine Neuentwicklung auf Basis des App-Designsystems. Das Release selbst formuliert es so: „Früher bedeutete ‚Multi-Agent‘ vor allem technische Infrastruktur; heute sieht es aus wie eine Chat-App voller Kollegen.“35
  • hermes peer: Direktnachrichten zwischen Ihren Bots. Jeder Hermes-Agent kann jeden anderen anhand seines Handles kontaktieren – über profiles und gateways hinweg, aus der CLI oder innerhalb einer Unterhaltung. Bitten Sie etwa Ihren Recherche-Bot, Ergebnisse an Ihren Programmier-Bot weiterzugeben, und lesen Sie dessen Antwort dort, wo Sie sich gerade befinden. „Antworten gehen im kanonischen Bot Chat jedes Agenten ein. Unterhaltungen zwischen Agenten bleiben somit dauerhaft erhalten und nachvollziehbar, statt nach einmaligem Versand zu verschwinden.“ Der Befehl hermes peer (Peers hinzufügen, auflisten und entfernen sowie dm) ist in der Tabelle Befehle der obersten Ebene aufgeführt.35
  • Cron-Jobs mit Erinnerungsvermögen. Geplante Jobs leiden nicht länger unter Gedächtnisschwund: Cron-Agenten laden und aktualisieren wie jeder andere Agent einen dauerhaften Speicher. Mit continuity=true wird die Ausgabe jedes Durchlaufs in den nächsten übernommen, sodass ein Monitor bereits gemeldete Informationen erkennen und Duplikate vermeiden kann. Jeder Job erhält zudem einen dauerhaften Notizblock, Jobs im Monitor-Modus überspringen die LLM vollständig, wenn sich nichts geändert hat, der Reasoning-Aufwand lässt sich für jeden Job festlegen und Cron-Ausgaben können im kanonischen Bot Chat eines Bots landen, wo dieser tatsächlich darauf reagiert. Im Abschnitt Geplante Aufgaben (Cron) wird nun die genaue Funktionsweise dieser Elemente zum Zeitpunkt des Tags erläutert.3537
  • Live-Orchestrierung von Subagenten. delegate_task erhält Steuerungsaktionen: Sie können laufende untergeordnete Agenten auflisten, einem davon während der Ausführung eine Kurskorrektur übermitteln oder ihn vorzeitig stoppen und das Teilergebnis behalten. Ausgaben untergeordneter Agenten lassen sich anhand eines JSON-Schemas validieren, die Kosten jeder Delegierung werden in den Ergebnissen ausgewiesen und die Standardwerte steigen auf 250 Iterationen pro Subagent sowie 10 gleichzeitig aktive untergeordnete Agenten – die einheitlichen Obergrenzen, die in v0.19.0 max_async_children ersetzt haben.3538
  • Die MCP-Kommandozentrale. MCP-Server und Katalog werden auf einer einzigen Desktop-Seite zusammengeführt. Diese bietet einen „Beliebige Inhalte einfügen“-Import per Drag-and-drop, Hintergrundzustandsprüfungen, die Sie zur erneuten Authentifizierung auffordern, bevor ein Tool-Aufruf fehlschlägt, eine Kosten- und Nutzungsübersicht für die gesamte Flotte (Schätzungen der Schema-Token und 30-Tage-Nutzung pro Server) sowie hermes://-Deep-Links, über die sich ein MCP-Server nach ausdrücklicher Bestätigung installieren lässt. Siehe MCP-Integration.35
  • Eine neue Leistungswelle für die CLI. Mit Strg+P öffnen Sie eine unscharfe Befehlspalette, die auch über /palette erreichbar ist. Die /model-Auswahl filtert während der Eingabe, /status zeigt Reasoning-Modus, ausstehende Genehmigungen und Kontextnutzung an und die Statusleiste kann die aktuelle Cache-Trefferquote in Prozent, Latenz und Token pro Sekunde darstellen, wobei jedes Feld einzeln ein- oder ausgeblendet werden kann. Hinzu kommen ein globaler Not-Aus, das Anheften und Lösen von Sitzungen, wechselnde Platzhalter im Eingabebereich und Terminal-Haustiere. Ein Hinweis zur Benennung: Das Release bezeichnet eine Genehmigungsprüfung im Probelauf als hermes approval-check; beim Tag lautet diese Oberfläche hermes approvals test – einen Unterbefehl approval-check gibt es nicht.3540
  • Der Agent steuert den Browser der Desktop-App. Der integrierte Browser ist nicht länger nur ein Fenster, das der Agent betrachten kann: Hermes navigiert darin, klickt und liest Inhalte direkt. Seiten lassen sich außerdem mit vollständigen Link-Kontextmenüs in Ihrem Systembrowser öffnen.35
  • Sechs neue Anbieter und eine Welle neuer Modelle im Katalog. Meta Model API (Muse Spark), CommandCode, Tencent TokenPlan, Nebius Token Factory, Ramp Router und Actual Computer. Drei davon – Meta AI, CommandCode und Actual Computer – wurden bereits in früheren Rollup-Zeitfenstern eingeführt und waren schon in der Anbietermatrix enthalten. Nun ergänzt die Matrix Tencent TokenPlan, Nebius Token Factory und Ramp Router sowie die neue Alibaba Token Plan-SKU aus der Dokumentation. In die Kataloge kommen GLM-5.3-Flash, qwen3.8-max/flash, Gemini 3.7 Flash, MiniMax M3 free, Nemotron 3.5 Lightning und Muse Spark 1.2 hinzu. Damit gehen zwei strukturelle Änderungen einher: Mit model_overrides in config.yaml können Sie das Kontextfenster oder die Preisangaben eines beliebigen Modells anpassen, ohne auf ein Release warten zu müssen. Außerdem lassen sich Anbieter nun als über pip installierte Pakete bereitstellen, die über Einstiegspunkte erkannt werden. Eine einheitliche Auswahlprüfungsregistrierung warnt zudem in jeder Auswahloberfläche, wenn ein Modell mit Ihren Daten trainiert.3536
  • Umfassende Sicherheitshärtung. Schreibzugriffe auf geschützte Agentenanweisungsdateien (AGENTS.md, skills und Speicherablagen) erfordern jetzt immer eine Genehmigung, damit ein durch Prompt Injection manipulierter Agent seine eigenen dauerhaften Anweisungen nicht unbemerkt umschreiben kann. Eine umfassende Überarbeitung der Schwärzung schließt Lücken, durch die Geheimnisse über Terminalfehler, Lesezugriffe auf .env, checkpoints und ACP-Protokolle offengelegt werden konnten. Das Genehmigungssystem erkennt nun destruktive Windows-Befehle, macOS-Berechtigungen bleiben dank einer stabilen TCC-Signieridentität (hermes desktop --setup-tcc-identity) auch nach Aktualisierungen erhalten und der Blender-MCP-Katalogeintrag samt skill wurde nach einer Kompromittierung des vorgelagerten Projekts entfernt. Einzelheiten zum Stand dieses Tags finden Sie unter Sicherheitshärtung.3539
  • Weiterentwicklung des gateway. Slack erhält native Live-Karten mit tatsächlich gestreamten Antworten sowie optionalen Plan- und Aufgabenkarten und kann Vorschauen ausgehender Links unterdrücken. Telegram bekommt eine Inline-Auswahl, über die jeder Befehl und jeder skill mittels @botname durchsuchbar ist, womit die Begrenzung des Telegram-Befehlsmenüs umgangen wird. Der Relay-Kanal wird ausgebaut: native Plugin-Initialisierung, Live-Kartenoperationen mit Entwurfsstreaming, Segmentierung von Sitzungsspannen und wiederhergestellte Sprachnotiztranskription. Über einen gateway-Steuerungssocket können Flottenanwendungen das gateway abfragen, während Updater es geordnet pausieren können, anstatt den gesamten Prozessbaum zu beenden. Zudem erfasst der Turn-Reaper die Stacks blockierter Worker, wenn der Watchdog ausgelöst wird.35
  • Eine Welle neuer skills. Acht wiederhergestellte Produktivitäts-skills (document-to-action-items, meeting-action-items, email-inbox-triage, github-issue-to-pr, weekly-review-planning, competitor-news-monitor, product-price-monitor, social-media-content-calendar), aus HAR-Daten abgeleitete API-Clients („Beobachten Sie eine Website einmal und rufen Sie anschließend ihre verborgene API ohne Browser direkt auf“), publish-site, session-librarian, blocked-page-recovery, merge-reconciler, plan-interrogation sowie ein beratender SKILL.md-Linter beim Erstellen.35

In diesem Zeitfenster zurückgenommen (nicht enthalten): Sowohl der Model Council-Modus (/council) als auch die DCP-context engine wurden zunächst integriert und anschließend zurückgenommen. Der ausschließlich auf WS basierende gateway-Server (#94245) wurde zusammengeführt und später ebenfalls zurückgenommen (#96118), sodass FastAPI weiterhin Teil des Desktop-Startpfads bleibt – die mit Sequenznummern versehene Ereigniswiedergabe (#94219) und die verlustfreie erneute Desktop-Verbindung über WebSocket WURDEN jedoch ausgeliefert. Electron wurde auf 40.10.2 zurückgesetzt. Sollten Berichte aus der Community zu den v0.20.x-Zeitfenstern eine dieser Funktionen erwähnt haben, sind sie in diesem Release nicht enthalten.35

Das Aktualisierungsverfahren bleibt unverändert: hermes update bei einer bestehenden Installation oder das Shell-Installationsprogramm für Neuinstallationen. Der Rollup-Unterabschnitt unter dem nachfolgenden Herald-Release dokumentiert weiterhin für jeden einzelnen Tag, welche Änderungen in welchem Zeitfenster eingeführt wurden.35

Neu in v0.20.0 (The Herald Release)

Hermes Agent v0.20.0 (Tag v2026.8.3, 3. August 2026) war das Funktionsrelease, bevor v0.21.0 sämtliche Änderungen bündelte; v0.20.1 (13. August) und v0.20.2 (16. August) sind darauf aufbauende Stabilisierungstags, und v0.20.3 (Tag v2026.8.16.2, veröffentlicht am 17. August), v0.20.4 (Tag v2026.8.18, 18. August), v0.20.5 (Tag v2026.8.19, veröffentlicht am 21. August) und v0.20.6 (Tag v2026.8.27, 27. August) setzen die Rollup-Reihe mit eigenen Funktionsfenstern fort — siehe den Unterabschnitt weiter unten. Das Zeitfenster seit v0.19.0 umfasst etwa 3.650 Commits, 1.400 zusammengeführte PRs und 1.200 geschlossene Issues von mehr als 650 Mitwirkenden.55

Drei Änderungen machen frühere Anweisungen dieses Leitfadens hinfällig. Lesen Sie diese zuerst:

  • Node 26 ist jetzt erforderlich. Das Installationsprogramm legt NODE_VERSION="26" fest und lehnt ältere Laufzeitumgebungen mit „Node.js … is too old (Hermes requires Node >=26).“ ab. Installationsprogramme, heal und upgrade setzen diese Voraussetzung durch. Beachten Sie, dass die Installationsseite der Dokumentationswebsite noch Node v22 nennt — das Installationsskript und die Versionshinweise sind die neueren, maßgeblichen Quellen.55
  • pip und Homebrew wurden eingestellt, nicht bloß als veraltet markiert. Im Wortlaut: „brew + pip/PyPI wheel channels retired (shell installer / Docker / Nix are the supported channels).“ Wenn Sie Hermes noch über pip oder brew installiert haben, erhält dieser Installationsweg keine Releases mehr.55
  • Das standardmäßige Iterationslimit für Tool-Aufrufe wurde von 90 auf 500 erhöht. Lange autonome Durchläufe stoßen dadurch nicht mehr an eine künstliche Grenze, und alle weiter unten genannten Schwellenwerte für knappe Budgets werden anhand des neuen Limits berechnet. read_file verwendet nun außerdem standardmäßig 2.000 statt 500 Zeilen.55

Die weiteren Neuerungen des Releases:

  • Konversationsstimme. Streaming-TTS mit Unterbrechungsmöglichkeit und lokal auf dem Gerät erkannten Aktivierungswörtern.55
  • A2A v1.0. Ein Protokoll-Plugin für die Kommunikation zwischen Agents, das die langjährige Anforderung aus Issue #514 erfüllt.55
  • Signierte ausgehende Webhooks. hermes webhook unterstützte zuvor nur eingehende Webhooks; v0.20.0 ergänzt HMAC-signierte ausgehende Lebenszyklus-Webhooks für Sitzungs-, Turn- und Tool-Ereignisse.55
  • Quellengebundene Zitate. Ein neuer skill mit einem Modus zur Faktenprüfung.55
  • Eine Welle neuer Funktionen für CLI-Power-User. Mit !command führen Sie sofort einen Shell-Befehl aus, ohne einen Modell-Turn zu verbrauchen; /init durchsucht das Projekt und erstellt oder aktualisiert eine AGENTS.md; /diff zeigt über jede Oberfläche bereitgestellte, sämtliche oder sitzungsbezogene Änderungen an; /context schlüsselt auf, womit das Kontextfenster belegt ist; /focus bietet eine Ansicht mit reduzierter Ausgabe und der Möglichkeit, ausgeblendete Zeilen wiederherzustellen; Ctrl+S legt einen halbfertigen Prompt zurück. hermes import-agent migriert eine Claude Code- oder Codex-CLI-Einrichtung mit einem einzigen Befehl.55
  • Erweiterungen für die Verwaltung von Geheimnissen. Eine befehlsbasierte Hilfsquelle für Geheimnisse, die sich mit jedem Tresor kombinieren lässt, Token-Rotation mit einem einzigen Befehl und aussagekräftigen Startfehlern, ein optionaler verschlüsselter Notfall-Cache für Bitwarden, pro profile-Home abgegrenzte und vom Tresor eingespeiste Schlüssel sowie ${env:VAR}-SecretRef-Parität zwischen config.yaml und der MCP-Konfiguration. Das weiter unten beschriebene Authentifizierungsmodell mit drei Pfaden bleibt unverändert.55
  • Schnellerer Warmstart. Der Kaltstart von hermes -w wurde von etwa 14 s auf 1,8 s verkürzt.55
  • Desktop wurde zu einer Plattform. Artefakte mit versionierten Karten und isolierter Live-Vorschau, ein Plugin-SDK mit Kanban als erstem Desktop-Plugin, ein globaler Hotkey für die Schnelleingabe, mehrere GUI-Fenster, ein SSH-Remote-Backend-Modus und native Anmeldung nach RFC 8252.55

Die Rollups v0.20.3, v0.20.4, v0.20.5 und v0.20.6 (17.–27. August)

Nach v0.20.0 veröffentlichte das Projekt in hoher Frequenz getaggte Rollups, die weit mehr als bloße Stabilisierung brachten. Alle vier verschoben kuratierte Versionshinweise mit derselben Formulierung — jeweils hieß es, „full curated release notes for this window will ship with v0.21.0“ — und mit v0.21.0 liegen diese nun vor: Neu in v0.21.0 weiter oben ist die kuratierte Dokumentation dieses gesamten Zeitraums (das Release bestätigt, dass die Zeitfenster „are fully documented here“). Die folgenden Blöcke bleiben als zeitgenössische Aufzeichnung der einzelnen Tags erhalten — sie zeigen, welche Änderungen mit welchem Tag eingeführt wurden, während die kuratierten Hinweise sie zusammenfassen.54233035

v0.20.3 (~250 Commits, ~125 PRs seit v0.20.2):

  • Migration auf MCP 2.x SDK mit Unterstützung des zustandslosen Protokolls vom 28. Juli 2026. Hermes wechselt zur aktuellen Generation von MCP SDK und unterstützt die zustandslose Revision des Protokolls.54
  • Bot Mode wird als gebündeltes Plugin ausgeliefert (hermes-bots), das das zentrale Protokoll für Teammitglieder enthält.54
  • Ein CommandCode-Provider-Plugin ergänzt den Provider-Katalog.54
  • Cua Driver 0.20-Laufzeitverträge für die Computernutzung sowie eine gehärtete Besitzverwaltung der Python-Laufzeit für Unterprozesse (PYTHONHOME/PYTHONPATH-Isolierung).54
  • Zuverlässigkeit: Selbstheilung des cron-Schedulers (EMFILE-Wiederherstellung, Abgleich veralteter Beanspruchungen, erneute Aktivierung festgefahrener Jobs), Korrekturen gegen Datenverlust bei Sitzungsübergaben, selbstheilende Verbindungen zum Remote-gateway der Desktop-Anwendung und eine Reihe von Portierungen aus dem Ökosystem (Sicherheitsscans bei der Plugin-Installation, /worktree, Erhaltung manueller Änderungen durch /rollback, Lesen von UTF-16-Dateien).54

v0.20.4 (~146 Commits, ~74 PRs seit v0.20.3):

  • Die Glasoberfläche der Desktop-Anwendung: Arbeiten an mattem Glas und Transparenzeffekten mit einem Frost-Auswahlwerkzeug und Vorauswahl für macOS.54
  • Eine Seitenleiste mit den Tabs SESSIONS|BOTS und der Möglichkeit, einzelne Bots ein- oder auszublenden, außerdem Korrekturen für Gruppenchats im Bot Mode (lang laufende Turns von Mitgliedern, Markdown-Darstellung, maschinenübergreifendes Routing).54
  • Beratende NVIDIA SkillEvaluator-Tier-1-Prüfungen bei der Installation von skills — Lizenz- und Sicherheitsprüfungen werden ausgeführt, wenn Sie einen skill installieren.54
  • Härtung des Medienversands durch cron (konfigurierbares Zeitlimit, Anhänge bei manueller Ausführung, Anzeige verpasster Ausführungen), Korrekturen für den Event-Loop-Thread und Ressourcenkonflikte in SessionDB, ehrliche Angaben von hermes update zu geparkten Branches sowie native Betriebssystembenachrichtigungen für Kanban.54

v0.20.5 (~746 Commits, ~323 PRs seit v0.20.4):

  • Die schlüssellose Webebene: Die Websuche funktioniert bei Neuinstallationen ohne jegliche API-Schlüssel — mit einer kostenlosen Rotation über 5 Anbieter und Ring-Failover.23
  • Eine CLI-Überarbeitungswelle: eine unscharfe /model-Auswahl, eine Befehlspalette über Ctrl+P und ein informativeres /status.23
  • Bot Mode wird erwachsen: Threads in Gruppenräumen, einklappbare Gesprächszusammenfassungen, Blob-Face-Avatare sowie PDF-/Dateianhänge per Drag-and-drop.23
  • Werkzeuge für Flotten und Worktrees: Belege von hermes update, hermes update --plan (die Versionshinweise bezeichnen dies als „fleet --plan verification“; das Flag gehört zu hermes update, nicht zu einem fleet-Befehl, und laut Parser-Hilfe wird es „Show the update plan and exit without changing anything“) sowie hermes worktree list/prune.2327
  • cron-Jobs erhalten dauerhaften Speicher und einen individuellen Reasoning-Aufwand pro Job, außerdem von den Composio-Evaluierungsergebnissen abgeleitete Regeln für die Ausführungsdisziplin und Schutzmechanismen gegen Laufzeitstillstände, Klärung durch mehrere Fragen, den opencode-freien Provider ohne Authentifizierung sowie Leistungsverbesserungen für die Desktop-Anwendung (darstellungspriorisierte Initialisierung des Bot Mode, React Compiler in beiden Renderern).23

v0.20.6 (Tag v2026.8.27, 27. August — ~1.313 Commits, ~525 PRs seit v0.20.5):

Das Release bezeichnet sich ausdrücklich als „Patch release. This tag rolls up the ~525 PRs merged since v0.20.5 into a stable tagged release for downstream consumers“. Laut eigener Beschreibung umfasst dieses Zeitfenster etwa 1.313 Commits in rund 1.557 Dateien (+177.113/−21.682) und etwa 525 zusammengeführte PRs.30 Die wichtigsten Punkte aus dieser Beschreibung:

  • Zustimmungsabhängiges Browsen mit dem echten profile — lokales Browsen kann Ihr standardmäßiges Chromium-profile verwenden; unter Windows steht dafür ein Ablauf zum Schließen nach erfolgter Genehmigung zur Verfügung.30
  • Der Browser der Desktop-Anwendung erhält ein eigenes Betriebssystemfenster, außerdem eine verwaltete SSH-Engine für Remote-Aktualisierungen und eine profile-Leiste für Flotten.30
  • Erweiterung des Remote-MCP-Katalogs: mehr als 50 live verifizierte, von Anbietern gehostete Server, darunter Cloudflare, Grafana Cloud, Better Stack und Railway.30
  • Optionale Verschlüsselung gespeicherter Geheimnisse über den Betriebssystem-Schlüsselbund — keine macOS-Schlüsselbundabfragen mehr bei jedem Start.30
  • Neue Modelle in den Auswahlmenüs: GLM-5.3-Flash, MiniMax M3 free und MiniMax H3 Max video.30
  • TTL-Ergebnis-Caching für web_search/web_extract und tool_search für mehrere Abfragen mit Wortstammerkennung.30
  • Lean-Tail-Komprimierung ist jetzt der Standard — der Abschnitt Kontextkomprimierung weiter unten dokumentiert die Konfiguration zum Zeitpunkt des Tags.3031
  • Terminal-Backends sind jetzt austauschbar — siehe Terminal-Backends.3032
  • Ehrlichkeit bei Updater und Flotte: Updater pausieren gateways über den Kontroll-Socket, statt ihre Prozessbäume zu beenden, und über Images oder Pakete verwaltete Installationen verweigern unsichere direkte Aktualisierungen.30
  • Dauerhafte Bestätigungen von cron-Vorfällen mit verständlicheren Fehlern bei abweichenden Codeversionen, Steuerungsmöglichkeiten für die Link-Vorschau in Slack und gemeinsam verwendete Docker-Containeridentitäten.30

Der Aktualisierungsvorgang bleibt unverändert: hermes update für eine bestehende Installation oder das Shell-Installationsprogramm für eine Neuinstallation.542330

Neuerungen in v0.19.0 (The Quicksilver Release)

Hermes Agent v0.19.0 (Tag v2026.7.20, 20. Juli 2026) ist nach der Geschwindigkeit des Botengottes selbst benannt: Im Zentrum des Releases steht kompromisslose Reaktionsschnelligkeit, wobei die Zeit bis zum ersten Token beim ersten Durchlauf auf allen Plattformen um etwa 80 % verkürzt wurde. Hinzu kommen Abrechnungsfunktionen im Terminal, Passwortmanager als Quellen für Geheimnisse, standardmäßig intelligente Genehmigungen, beobachtbare Subagents und eine ausfallsichere Antwortzustellung. Seit v0.18.0 gab es so viele Änderungen wie nie zuvor im Projekt: etwa 2.245 Commits, rund 1.065 zusammengeführte PRs, circa 3.300 geschlossene Issues und mehr als 450 Mitwirkende aus der Community.56

  • Überall etwa 80 % schneller bis zum ersten Token. Die Zeit vom Kaltstart über das Absenden bis zur Verarbeitung sank im CLI, gateway, TUI, Desktop und cron gleichermaßen von etwa 4,3 s auf rund 0,9 s — die Discord-Funktionserkennung wurde aus dem kritischen Pfad entfernt, die Ollama-Prüfung wird bei bekannten Nicht-Ollama-Anbietern übersprungen und blockierende Arbeit aus der Agenteninitialisierung entfernt. Auch die wahrgenommene Latenz wurde optimiert: Reasoning-Modelle streamen ihre Gedankengänge nun standardmäßig live (display.show_reasoning ist aktiviert), und das Antwortfeld wird pro Token statt pro Zeile aktualisiert.56
  • Rendering-Optimierungen für Desktop und TUI. Die Desktop-App erhielt mit rund 20 PRs eine umfassende Geschwindigkeitsoptimierung: 14-mal weniger CPU-Auslastung im Streaming-Markdown-Splitter durch inkrementelle Blockanalyse, virtualisierte Diffs im Prüfbereich, schnelle Sitzungswechsel auch bei großen Transkripten sowie keine erneuten Renderings der Seitenleiste und Werkzeugzeilen mehr bei jedem Token. Die TUI rendert gestreamtes Markdown nun inkrementell blockweise.56
  • Installationen über pip und Homebrew sind veraltet. Beide Wege wurden als „nicht unterstützte Legacy-Installationen“ gekennzeichnet, deren Entfernung geplant war. Diese Entfernung ist inzwischen mit v0.20.0 erfolgt — die Kanäle brew und pip/PyPI-Wheel wurden eingestellt; unterstützt werden nur noch der Shell-Installer, Docker und Nix.5655
  • Geheimnisse können aus Ihrem Passwortmanager stammen. Eine neue austauschbare SecretSource-Schnittstelle ruft Geheimnisse beim Laden aus Bitwarden und 1Password (op://-Referenzen) ab. Mehrere Vaults lassen sich gleichzeitig verwenden, wobei eine deterministische Prioritätsreihenfolge, Konfliktwarnungen und Herkunftsinformationen für jede Variable unterstützt werden — API-Schlüssel müssen nicht mehr in einer unverschlüsselten .env-Datei liegen. Künftige Vault-Anbieter lassen sich als Plugins ergänzen.56
  • Intelligente Genehmigungen sind jetzt Standard. Wenn Hermes einen als kritisch eingestuften Befehl ausführen möchte, bewertet ihn ein unabhängiger LLM-Prüfer, statt Sie bei jedem einzelnen Befehl um Erlaubnis zu bitten — jede Entscheidung gilt ausschließlich für genau diesen Befehl. Benutzerdefinierte Ablehnungsregeln blockieren passende Befehle selbst im YOLO-Modus, /deny <reason> übermittelt den Grund Ihrer Ablehnung, damit der Agent seinen Kurs korrigieren kann, und die erneut eingeführte Genehmigungsaktion pre_tool_call des Plugins mit Regelschlüsseln übergibt einen Werkzeugaufruf zur menschlichen Freigabe.56
  • Abrechnung im Terminal: /subscription und /topup. Verwalten Sie Ihren Nous Portal-Tarif, ohne das Terminal zu verlassen — prüfen Sie Ihren Tarif und das verbleibende Kontingent, sehen Sie vorab genau, was ein Upgrade kostet oder wann ein Downgrade wirksam wird, und wenden Sie die Änderung mit Rückgängig-Option an. Die Desktop-App erhält eine entsprechende Registerkarte für Abrechnungseinstellungen.56
  • Verfolgen Sie die Arbeit von Subagents und verlieren Sie nie wieder eine fertige Antwort. delegate_task-Aufträge liefern Live-Transkriptdateien zurück, die Sie direkt nach dem Start der Subagents mit tail -f verfolgen können — jeder Werkzeugaufruf, jedes Ergebnis und jede gestreamte Antwort erscheint in einem menschenlesbaren Protokoll pro untergeordnetem Agenten. Abschlüsse von Delegierungen im Hintergrund bleiben über Neustarts hinweg erhalten. Abschließende gateway-Antworten werden zudem in einem Zustellungsverpflichtungsregister in state.db erfasst und beim nächsten Start erneut zugestellt, falls das gateway während des Sendens ausfällt. Die Konfigurationsoption max_async_children ist zugunsten einheitlicher Parallelitätsgrenzen für Delegierungen veraltet.56
  • Ein gateway, viele profiles. Ein einziges gemultiplextes gateway kann über ein gemeinsames Bot-Token bestimmte Guilds, Kanäle oder Threads an verschiedene profiles weiterleiten — jeweils mit vollständig isolierter Konfiguration, eigenen skills, eigenem Speicher und eigenen Geheimnissen — einschließlich einer Überschreibung durch GATEWAY_MULTIPLEX_PROFILES. Der Routingindex wurde nach state.db verschoben; sessions.json ist jetzt nur noch eine optionale Legacy-Spiegeldatei.56
  • Neue Anbieter und Modelle. Fireworks AI erhält erstklassige Unterstützung einschließlich Kostenschätzung und Platz 2 in der Anbieterauswahl; hinzu kommen DeepInfra und Upstage Solar. Die Kataloge werden um GPT-5.6 (Sol/Terra/Luna + Pro, durchgängig integriert), grok-4.5 (GA), kimi-k3 (kimi-k2.x wurde eingestellt) und das vollständig integrierte Claude Sonnet 5 ergänzt. Mit dem anbieterspezifischen Flag enabled: false und der Konfiguration excluded_providers lassen sich ungenutzte Anbieter aus den /model-Auswahllisten und der Auflösung entfernen.56
  • Der Reasoning-Aufwand wird regelbar. Die neuen Aufwandsstufen max und ultra stehen auf allen Oberflächen zur Verfügung, ergänzt durch modellspezifische Überschreibungen in der Konfiguration, einen eigenen Aufwand pro Slot in MoA-Voreinstellungen — Berater denken gründlich nach, während der Synthesizer schnell bleibt —, einen aufgabenspezifischen Aufwand für Hilfsmodelle und ein sitzungsbezogenes /reasoning im CLI.56
  • Neue Funktionen für CLI und MCP. hermes sessions export exportiert in die Formate Markdown, Quarto, HTML, „nur Prompt“ und Hugging Face Trace, optional mit einer Bereinigung durch --redact; /model --once überschreibt das Modell für einen Durchlauf; Aufrufe von Slash-skills lassen sich kombinieren (/skill-a /skill-b do XYZ); --safe-mode erleichtert die Fehlerbehebung; hermes config get/unset vervollständigen die Konfigurationsverwaltung; hermes serve wird zu einem echten Headless-Backend; und MCP-Werkzeuge übernehmen die Namenskonvention mcp__server__tool.56

Wenn Sie von v0.18.x aktualisieren, sollten Sie vor allem 2 Änderungen beachten: Eine Installation über pip oder Homebrew wird nun als nicht unterstützte Legacy-Installation gemeldet — wechseln Sie zum Einzeilen-Installer —, und max_async_children ist zugunsten einheitlicher Parallelitätsgrenzen für Delegierungen veraltet. Alle anderen Änderungen sind additiv — die wichtigsten Gründe für ein Upgrade sind die um etwa 80 % verringerte Latenz beim ersten Durchlauf, intelligente Genehmigungen und das Zustellungsregister, das fertige Antworten ausfallsicher macht.


Neuerungen in v0.18.0 (The Judgment Release)

Hermes Agent v0.18.0 (Tag v2026.7.1, 1. Juli 2026) steht im Zeichen des Urteilsvermögens: Der Agent überprüft seine eigene Arbeit, statt Erfolg lediglich zu behaupten, und ermöglicht Ensemble-Reasoning, das Sie tatsächlich nachvollziehen können. Zudem wird der gesamte P0/P1-Rückstand abgearbeitet — etwa 692 Aufgaben mit höchster Priorität wurden innerhalb von 12 Tagen gelöst.22

  • Mixture-of-Agents als vollwertiges Modell. MoA lässt sich nun in allen Oberflächen wie jedes andere Modell auswählen, und das Ensemble-Reasoning ist sichtbar: Die vollständige Ausgabe jedes Referenzmodells wird in einem eigenen beschrifteten Block dargestellt, während die Antworten live gestreamt werden — so können Sie dem Ensemble beim Denken zusehen, statt nur eine undurchsichtige zusammengeführte Antwort zu erhalten.22
  • Abschlussverträge für /goal. Bevor der Agent ein Ziel als abgeschlossen meldet, überprüft er seine eigene Arbeit, indem er die Prüfungen des Projekts ausführt, statt den Erfolg lediglich zu behaupten — Urteilsvermögen, auf sich selbst angewandt.22
  • /learn — beschreiben Sie einen beliebigen Ablauf und machen Sie daraus einen skill. Verwandeln Sie einen Arbeitsablauf durch dessen Beschreibung in einen wiederverwendbaren skill; generierte skills entsprechen automatisch den Konventionen in CONTRIBUTING.md des Repositorys.22
  • /journey-Zeitleiste. Eine visuelle, bearbeitbare Chronik von Speicher und skills im Zeitverlauf sowie ein Speichergraph auf dem Desktop.22
  • Auffächerung von Subagents im Hintergrund. Delegieren Sie mehrere Aufgaben, die gleichzeitig ausgeführt werden, ohne die Unterhaltung zu blockieren — aus dem einzelnen Subagent im Hintergrund von v0.17.0 wird eine ganze Flotte.22
  • Desktop Projects. Vollwertige Programmier-Projects mit einem Organisationsmodell aus Projekt, Repository und Lane.22
  • Scale-to-zero-gateway. Gateways können bei Inaktivität in den Ruhezustand wechseln und das kontrollierte Beenden laufender Aufgaben für nahtlose Bereitstellungen koordinieren — besonders relevant für alle, die Hermes als dauerhaft verfügbaren Dienst betreiben.22
  • Unterstützung für Google Vertex AI. Gemini-Zugriff über GCP-Dienstkonten mit automatischer Aktualisierung des OAuth2-Tokens als Ergänzung des Anbieterkatalogs.22
  • Editorbefehl /prompt. Öffnet $EDITOR, damit Sie mehrzeilige Prompts verfassen können, statt mit der Eingabezeile zu kämpfen.22

Wenn Sie von v0.17.x aktualisieren, gibt es hier keine inkompatiblen Änderungen am CLI. Die wichtigsten Gründe für ein Upgrade sind Abschlussverträge — Ziele, die sich selbst überprüfen —, ein vollwertiges MoA mit nachvollziehbaren Ensembles und /learn zur Erfassung von skills.


Neues in v0.17.0 (The Reach Release)

Hermes Agent v0.17.0 (Tag v2026.6.19, 19. Juni 2026) trägt seinen Namen aufgrund der inzwischen gewachsenen Reichweite des Agenten – neue Messaging-Kanäle, neue Modellanbieter sowie eine umfassendere Steuerung über Desktop und Dashboard. Die Version erweitert v0.16.x; die CLI-Oberfläche bleibt unverändert.21

  • Neue Messaging-Kanäle. iMessage funktioniert jetzt über Photon Spectrum ohne Mac-Relay (Gerätecode-OAuth, hermes photon login); die WhatsApp Business Cloud API ist ein offizieller Meta-Adapter, der den bisher erforderlichen Bridge-Prozess ersetzt; SimpleX unterstützt nun Gruppen, native Anhänge, Textbündelung und automatische Annahme; außerdem kommt Raft als gebündeltes Plattform-Plugin mit einem Wake-Channel-Design hinzu, dessen Datenschutz vertraglich zugesichert wird.21
  • Neue Modelle und Anbieter. Der Katalog enthält nun z-ai/glm-5.2 (1 Mio. Kontext), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra und grok-composer-2.5-fast (das Cursor-Modell über xAI OAuth, 200.000 Kontext). Der xAI-Standard wurde auf grok-build-0.1 umgestellt, und adaptive Anthropic-Modelle folgen nun dem modernen Thinking-Vertrag (sie senden niemals ein reasoning-Feld).21
  • Desktop und Dashboard. Die Desktop-App unterstützt jetzt Hintergrund-Subagenten mit live gestreamten „Beobachtungsfenstern“ für delegierte Aktivitäten (delegate_task(background=true)), eine Modellauswahl im Composer, frei belegbare Tastenkürzel, native Betriebssystembenachrichtigungen, eigene Composer-Entwürfe pro Thread, Themes aus dem VS Code Marketplace sowie eine japanische und traditionell-chinesische Benutzeroberfläche. Das Dashboard erhält einen vollständigen profile-Builder (Modelle/skills/MCPs ohne Bearbeitung von config.yaml), einen globalen profile-Umschalter, einen überarbeiteten Skills Hub mit Sicherheitsprüfung, Automation Blueprints (parametrisierte Vorlagen für Formulare, Slash-Befehle, Unterhaltungen und Dokumentation) sowie eine sichere Anmeldung, die hinter der OAuth-Zugriffskontrolle den Statuscode 401 zurückgibt.21
  • Skills und Tools. image_generate kann ein Quellbild nun bei allen unterstützten Bildanbietern bearbeiten und transformieren, statt nur neue Bilder zu erstellen; das memory-Tool unterstützt ein operations-Array, um Hinzufüge-, Ersetzungs- und Entfernungsvorgänge atomar in einem einzigen Aufruf auszuführen; ein neuer simplify-code-skill führt parallel eine Überprüfung und Bereinigung durch drei Agenten aus, deren Freigabe von einer auf Chestertons Zaun basierenden Risikostufe abhängt; außerdem ersetzt der boolesche Wert write_approval den dreistufigen Wert write_mode.21
  • Architektur. Hintergrund-Subagenten geben sofort ein Handle zurück und speisen ihr Ergebnis als neuen Turn wieder ein; ein MCP-Elicitation-Handler ermöglicht Bestätigungen während eines Tool-Aufrufs, und verspätet verbundene MCP-Tools werden zwischen Turns cache-sicher bereitgestellt; cron wird zu einem austauschbaren CronScheduler mit Chronos als Anbieter für verwaltete cron-Aufgaben; zudem können Administratoren über einen neuen Managed scope (/etc/hermes) für Benutzer unveränderliche Konfigurationen festschreiben. Hinzu kommt ein Gateway-Gateway-Relay für Topologien mit mehreren gateways.21
  • Neue Befehle. /version, /billing (interaktive Abrechnung im Terminal), hermes photon login (iMessage-Authentifizierung) und hermes curator run --consolidate – die Konsolidierung ist jetzt optional, sodass die routinemäßige Hintergrundkuratierung keine Tokens verbraucht.21
  • Sicherheit. v0.17.0 schließt eine Umgehungsmöglichkeit der Denylist für Shell-Escapes, verweigert bei fehlenden Freigabemodulen und Gateway-Adaptern mit eigener Richtlinie standardmäßig den Zugriff, bereinigt die Umgebung für Unterprozesse von cron-Aufgabenskripten, schwärzt Geheimnisse in Debug-Dumps von Anfragen, prüft MCP-stdio-Konfigurationen auf Exfiltrationsmuster und aktualisiert urllib3 sowie PyJWT, um CVEs zu beheben.21

Wenn Sie von v0.16.x aktualisieren, beeinträchtigt nichts davon die CLI; hinzu kommen lediglich neue Kanäle, Modelle und Oberflächen rund um denselben Agenten. Die wichtigsten Gründe für ein Upgrade sind iMessage ohne Relay, die offiziellen WhatsApp-Adapter und der administrative Managed scope.


Neues in v0.16.0 (The Surface Release)

Hermes Agent v0.16.0 (Tag v2026.6.5, 5. Juni 2026) ist nach den neuen Oberflächen benannt, die den CLI-zentrierten Agenten zugänglich machen. Die zentrale Neuerung: Hermes ist nicht mehr auf das Terminal beschränkt.20

  • Native Desktop-App. Hermes Desktop ist eine neue Electron-App für macOS, Linux und Windows mit Ein-Klick-Installation und integrierten automatischen Updates. Sie bietet Ihnen ein Chatfenster mit Streaming-Ausgabe, Drag-and-drop-Dateien, das Einfügen von Bildern aus der Zwischenablage, eine Cmd+K-Palette, eine Sitzungsliste mit Archivierung und Suche sowie eine Modellauswahl in der Statusleiste. Über eine sichere WebSocket kann sie sich mit einem entfernten Hermes gateway verbinden und sich per OAuth oder Benutzername und Passwort authentifizieren. Dabei werden entfernte Hosts pro profile sowie parallele Sitzungen in mehreren profiles unterstützt, die sich über profile-übergreifende @session-Verweise verknüpfen lassen. Die Desktop-Benutzeroberfläche enthält außerdem über eine typisierte i18n-Schicht (display.language; Englisch bleibt die Standardsprache) eine vollständige Übersetzung ins vereinfachte Chinesisch (简体中文).20
  • Browserbasiertes Administrationspanel. Das lokale Web-Dashboard wurde von einer Statusansicht zu einem vollständigen Administrationspanel ausgebaut: ein MCP-Katalog mit Schaltern zum Aktivieren und Deaktivieren, Anmeldedatenverwaltung, Erstellung von Webhooks und Hooks, Speicherkonfiguration, Gateway-Steuerung sowie eine Systemseite mit Prüfung vor Updates und Ein-Klick-Debug Share. Auf einer neuen Seite „Channels“ lassen sich sämtliche Messaging-Plattformen des gateways (Telegram, Discord, Slack und alle weiteren) im Browser konfigurieren. Die Authentifizierung ist jetzt austauschbar: Anmeldung mit Benutzername und Passwort, ein generischer selbst gehosteter OIDC-Anbieter, hermes dashboard register für einen selbst gehosteten OAuth-Client sowie die Rotation von Sitzungen mittels Aktualisierungstokens.20
  • Neue CLI- und Slash-Befehle. /undo [N] setzt die letzten N Benutzer-Turns mit vorausgefülltem Inhalt und Soft-Delete zurück und funktioniert in der CLI, der TUI sowie auf allen Messaging-Plattformen. Hinzu kommen eine konfigurierbare Standardschnittstelle (cli oder tui) mit einer --cli-Überschreibung sowie ein einheitlicher /model-Befehl und ein Sitzungs-Overlay für die TUI. hermes portal ist ein leicht verständlicher Alias für den Onboarding-Ablauf von Nous Portal, der nun beim ersten Start die Optionen „Quick Setup“ und „Full Setup“ bietet. Zwei neue Diagnosebefehle kommen ebenfalls hinzu: hermes prompt-size und hermes sessions optimize.20
  • Neue Modelle und Anbieter. Die Auswahl enthält nun deepseek-v4-flash, MiniMax-M3 (1 Mio. Kontext, native MiniMax-Anbieter), qwen3.7-plus (Nous + OpenRouter) und gemini-3.5-flash (Gemini OAuth + API-Schlüssel). Ein vollwertiger xAI Grok OAuth-Anbieter ergänzt den Desktop-Launcher, die Modellauswahl unterstützt jetzt auf jeder Oberfläche eine unscharfe Suche, Anbieter mit mehreren Endpunkten werden in einer Zeile gruppiert, und der Katalog wird statt täglich nun stündlich aktualisiert.20 (Seit v0.21.1 wurde das Intervall erneut geändert: Die Remote-Kataloge der Auswahl werden alle 20 Minuten aktualisiert, model_catalog.ttl_minutes.46)
  • Schlankere skills und progressive Offenlegung. Aus dem standardmäßigen skill-Set wurden redundante und nicht mehr verwendete skills entfernt (Spotify wechselte zu einem nativen Plugin, Linear zu hermes mcp install linear, und mehrere veraltete Einträge entfielen); weitere skills wurden optional, und eine neue Relevanzprüfung über environments: im Frontmatter (kanban/docker/s6) hält kontextspezifische skills aus dem Index heraus, bis sie angefordert werden. NVIDIA/skills ist neben OpenAI, Anthropic und HuggingFace nun standardmäßig eine vertrauenswürdige Skills Hub-Quelle. MCP- und Plugin-Tools unterstützen jetzt eine progressive, bereichsbezogene Tool-Offenlegung. Außerdem wurde ein MCP-Fehler behoben, der fälschlicherweise eine erfolgreiche OAuth-Authentifizierung meldete, obwohl kein Token abgerufen worden war.20
  • Sicherheit. v0.16.0 schreibt die gepatchte Starlette-Version (≥1.0.1) für CVE-2026-48710 (BadHost) fest, verlagert SSRF-URL-Prüfungen in asynchronen Pfaden aus der Ereignisschleife, entfernt das Bedrock-Inference-Bearer-Token aus der Umgebung von Unterprozessen, nimmt bws_cache.json in den Dateisicherheits-Leseschutz auf, ergänzt die Liste gefährlicher Muster um docker restart/stop/kill und bereinigt unsichtbare Unicode-Zeichen in überprüften skill-Inhalten. Mit dem Release wurden 2 P0- und 62 P1-Probleme behoben, davon 16 mit Sicherheitskennzeichnung.20

Wenn Sie von v0.15.x aktualisieren, stellt nichts davon eine inkompatible Änderung an der CLI selbst dar; vielmehr ergänzen neue Oberflächen und Anbieter denselben Agenten. Die Desktop-App und das Administrationspanel sind die entscheidenden Upgrade-Gründe, wenn Sie Hermes für Benutzer ohne Terminalkenntnisse bereitstellen oder ein entferntes gateway über den Browser verwalten möchten.

Neues in v0.14.0 (The Foundation Release)

Bei v0.14.0 steht weniger eine einzelne herausragende Funktion im Mittelpunkt als vielmehr ein reibungsloseres Setup bei gleichzeitig erweiterten Einsatzmöglichkeiten für Hermes.19 Die wichtigsten betrieblichen Änderungen:

  • Installation und Start sind schlanker. pip install hermes-agent funktioniert über PyPI, umfangreiche Adapter werden bei der ersten Verwendung nachinstalliert, und der Startpfad verzögert genügend Arbeitsschritte, um den Kaltstart um etwa 19 Sekunden zu verkürzen. (Seit v0.19.0 gelten pip-Installationen als veraltet – siehe Installation.)
  • Abonnements können als lokale API-Endpunkte dienen. hermes proxy verwandelt über OAuth authentifizierte Anbieter wie Claude Pro, ChatGPT Pro und SuperGrok in einen OpenAI-kompatiblen lokalen Endpunkt für Tools wie Codex, Aider, Cline und Continue.
  • Die Reichweite des gateways wächst. LINE und SimpleX Chat ergänzen das gateway (die Plattformvergleichstabelle der Dokumentation führt beim Tag v2026.8.31 28 Plattformen auf; der Abschnitt Messaging Gateway erläutert, was diese Zahl umfasst), Microsoft Teams ist vollständig integriert, das nachträgliche Laden des Discord-Verlaufs ist standardmäßig aktiviert, und clarify-Abfragen in Telegram und Discord verwenden jetzt native Schaltflächen.
  • Die Überprüfung nach Schreibvorgängen wird verbessert. Nach Bearbeitungen kann Hermes für jeden Turn Zusammenfassungen der Dateiänderungen und semantische Diagnosen des Sprachservers anzeigen, bevor der nächste Turn beginnt. Damit nähert sich Hermes einer evidenzbasierten Arbeitsweise für Agenten.
  • Desktop- und Medien-Tools werden vielseitiger. computer_use funktioniert über cua-driver auch mit Anbietern außerhalb von Anthropic, video_generate wird hinter austauschbaren Backends vereinheitlicht, und vision_analyze sendet Rohpixel an Modelle, die tatsächlich Bilder verarbeiten können.

Installation

Der Einzeilen-Installer ist der unterstützte Installationsweg. Er kümmert sich um Python, uv, Node.js, ripgrep, ffmpeg, das Klonen des Repositorys, die virtuelle Umgebung und den globalen Befehl hermes.7

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Installationen über pip und Homebrew gelten seit v0.19.0 als veraltet. Das mit v0.14.0 eingeführte PyPI-Paket (pip install hermes-agent) und die Homebrew-Formel werden inzwischen als „nicht unterstützte Legacy-Installationen“ gekennzeichnet. Erkennt Hermes eine solche Installation, erscheint an jeder relevanten Stelle eine Warnung, ohne die Ausführung zu blockieren. Die Veröffentlichung über PyPI und Homebrew soll künftig eingestellt werden. Falls Sie Hermes über pip oder brew installiert haben, wechseln Sie zum oben beschriebenen Installer.56

Funktioniert unter Linux, macOS, WSL2 und Android/Termux (der Installer erkennt Termux automatisch und verwendet ein getestetes Android-Paket).7 Native Windows-Unterstützung ist inzwischen eine Tier-1-Plattform und nicht mehr die frühe Beta, die mit v0.14.0 ausgeliefert wurde. Installieren Sie Hermes dort mit iex (irm https://hermes-agent.nousresearch.com/install.ps1). Auf eine Einschränkung weisen die Dokumente ausdrücklich hin: Unter macOS wird ausschließlich Apple Silicon unterstützt; Intel-Macs werden nicht unterstützt.55 Historisch betrachtet führte v0.14.0 die native Windows-Unterstützung als frühe Beta über einen PowerShell-Installer ein. Für den Produktiveinsatz bleibt WSL2 jedoch die sicherere Empfehlung, bis der Windows-Installationsweg ausgereifter ist.19

Nach Abschluss der Installation:

source ~/.bashrc    # or ~/.zshrc
hermes              # Start chatting

Die einzige Voraussetzung ist git. Der Installer stellt Python 3.11 automatisch über uv bereit (ohne sudo), außerdem Node.js 26 (für die Browserautomatisierung und die WhatsApp-Bridge), ripgrep und ffmpeg. Seit v0.20.0 ist Node 26 die verbindliche Mindestversion: Der Installer lehnt ältere Versionen ab und installiert stattdessen eine von Hermes verwaltete Node-Version.557

Installation überprüfen

hermes --version    # Check version (global flag; there is no `version` subcommand)
hermes doctor       # Diagnose config/dependency issues
hermes status       # Show current configuration + auth state
hermes dump         # Copy-pasteable setup summary for debugging

hermes doctor zeigt Ihnen genau, was fehlt und wie Sie das Problem beheben.7 Wenn Sie Hilfe benötigen, können Sie die Ausgabe des Diagnosebefehls hermes dump in ein GitHub-Issue oder einen Discord-Thread einfügen. Sie enthält eine Klartextzusammenfassung Ihrer gesamten Einrichtung, aus der Geheimnisse entfernt wurden.8

Manuelle Installation

Wenn Sie vollständige Kontrolle benötigen – etwa über eine benutzerdefinierte Python-Version, bestimmte Extras oder die Integration in Nix/NixOS –, finden Sie den manuellen Ablauf Schritt für Schritt in der Installationsanleitung des Upstream-Projekts.7 Folgende optionale Extras können Sie mit uv pip install -e ".[<extras>]" kombinieren:

Extra Enthaltene Funktionen
all Alles unten Aufgeführte
messaging Telegram- und Discord-gateway
cron Verarbeitung von Cron-Ausdrücken
cli Terminalmenü-Oberfläche für den Einrichtungsassistenten
modal Modal-Backend für die Cloud-Ausführung
voice CLI-Mikrofoneingabe und Audiowiedergabe
tts-premium Premium-Stimmen von ElevenLabs
honcho KI-nativer Speicher (Honcho-Integration)
mcp Unterstützung für das Model Context Protocol
homeassistant Home-Assistant-Integration
acp Unterstützung für die ACP-Editorintegration
slack Slack-Nachrichten
pty PTY-Terminalunterstützung (interaktive CLI-Tools)
dev pytest und Testwerkzeuge
termux Getestetes Android-Paket (enthält cron, cli, pty, mcp, honcho, acp)

Der Installationsbefehl für Termux unterscheidet sich – er verwendet pip mit einer Constraints-Datei statt uv pip:

python -m pip install -e ".[termux]" -c constraints-termux.txt

Der Grund dafür ist, dass .[all] unter Android über das Extra voice die Abhängigkeit faster-whisper einbindet. Diese wiederum benötigt ctranslate2-Wheels, die nicht für Android veröffentlicht werden.7


Authentifizierung & Provider

Beim Tag v2026.9.7 enthält hermes_cli/models_catalog_static.py in Zeile 311 39 statische CANONICAL_PROVIDERS-Einträge (durch die Aufteilung im September 2026 wurde die Liste aus hermes_cli/models.py ausgelagert; die Einträge selbst blieben unverändert, einschließlich tencent-tokenplan aus v0.21.0) und erweitert diese Liste automatisch anhand von plugins/model-providers/ (39 mitgelieferte Verzeichnisse; neun davon – actual, alibaba-coding-plan, commandcode, deepinfra, meta-ai, nebius-token-factory, opencode-free, router, upstage – besitzen keinen statischen Eintrag und werden von der automatischen Erweiterung erfasst, da sie den standardmäßigen Authentifizierungstyp api_key verwenden). Auf der Dokumentationsseite zu Providern werden 45 Cloud- und Abonnementprovider sowie ein Eintrag für benutzerdefinierte Endpunkte tabellarisch aufgeführt; lokale und selbst gehostete Server werden separat erläutert (Ollama, vLLM, SGLang, llama.cpp, LM Studio, LiteLLM, ClawRouter und jeder OpenAI-kompatible Endpunkt).26 Beim Tag v2026.9.24 enthält die statische Liste weiterhin 39 Einträge, plugins/model-providers/ jedoch nur noch 38 Verzeichnisse: Der schlüssellose Provider opencode-free wurde am 18. September entfernt, da die kostenlose Stufe von OpenCode inzwischen anonymen Datenverkehr außerhalb des eigenen Clients ablehnt.53 Hinzu kommen benutzerdefinierte Endpunkte und drei unterschiedliche Authentifizierungswege. Nachfolgend finden Sie die gesamte Authentifizierungsoberfläche, nach Wegen geordnet, damit Sie den zu Ihrer Ausgangslage passenden Weg schnell finden.

Die drei Authentifizierungswege

Jeder Provider in Hermes verwendet eines von drei Authentifizierungsmustern:

Weg 1 – API-Schlüssel in .env. Hinterlegen Sie Ihren Schlüssel in ~/.hermes/.env; Hermes liest ihn beim Start ein. Dieser Weg wird von OpenRouter, AI Gateway, z.ai/GLM, Kimi/Moonshot, MiniMax (und MiniMax China), Alibaba Cloud/DashScope, Kilo Code, OpenCode Zen, OpenCode Go, DeepSeek, Hugging Face, Google/Gemini und den meisten Drittanbietern verwendet.2 Seit v0.19.0 muss sich der Schlüssel nicht mehr in einer Klartextdatei befinden: Eine erweiterbare SecretSource-Schnittstelle kann Geheimnisse beim Laden aus Bitwarden oder 1Password (op://-Referenzen) abrufen. Dabei können mehrere Vaults gleichzeitig verwendet werden; außerdem stehen eine deterministische Rangfolge, Konfliktwarnungen und Herkunftsangaben für jede Variable zur Verfügung – .env bleibt die Ausweichlösung. (Dies unterscheidet sich vom Bootstrap-Token für Bitwarden Secrets Manager aus v0.15.0, mit dem Providerschlüssel hinter einem einzigen Token gebündelt wurden: SecretSource ersetzt die Klartextdatei selbst, und künftige Vault-Provider lassen sich als Plugins ergänzen.)56

Weg 2 – OAuth über hermes model oder hermes auth. Startet einen Gerätecode-Ablauf, öffnet einen Browser und speichert die Anmeldedaten in ~/.hermes/auth.json (bestehende Anmeldedaten aus Tools wie Claude Code oder Codex CLI lassen sich ebenfalls importieren). Dieser Weg wird von Nous Portal, OpenAI Codex (ChatGPT-Konto), GitHub Copilot und Anthropic (Claude Pro/Max) verwendet.2

Weg 3 – Benutzerdefinierter Endpunkt in config.yaml. Für jede OpenAI-kompatible API – Ollama, vLLM, SGLang, llama.cpp, LM Studio, LiteLLM-Proxy, Together AI, Groq, Azure OpenAI oder Ihren eigenen selbst gehosteten Server. Die Konfiguration erfolgt einmalig über hermes model → Custom endpoint und wird anschließend in config.yaml gespeichert.2

Die vollständige Providermatrix

Diese Matrix enthält die auf der Dokumentationsseite tabellarisch aufgeführten Provider samt dem jeweils genauen Einrichtungsablauf. Die Auswahl beim Tag umfasst mehr Provider als die Dokumentation (siehe Anzahl oben), und alles OpenAI-Kompatible lässt sich über den Eintrag für benutzerdefinierte Endpunkte anbinden.226

Provider Authentifizierungsweg Einrichtung
Nous Portal OAuth hermes model (OAuth-Anmeldung, abonnementbasiert)
OpenAI Codex OAuth hermes model (ChatGPT-Gerätecode, verwendet Codex-Modelle)
GitHub Copilot OAuth oder Token hermes model (OAuth-Gerätecode) oder COPILOT_GITHUB_TOKEN / GH_TOKEN / gh auth token
GitHub Copilot ACP Lokaler Unterprozess hermes model (erfordert copilot CLI im PATH sowie copilot login)
Anthropic OAuth oder API-Schlüssel hermes model (bevorzugt Anmeldedaten von Claude Code) oder ANTHROPIC_API_KEY beziehungsweise ANTHROPIC_TOKEN-Einrichtungstoken
OpenRouter API-Schlüssel OPENROUTER_API_KEY in ~/.hermes/.env
AI Gateway (Vercel) API-Schlüssel AI_GATEWAY_API_KEY in ~/.hermes/.env (Provider: ai-gateway)
z.ai / GLM (ZhipuAI) API-Schlüssel GLM_API_KEY in ~/.hermes/.env (Provider: zai)
Kimi / Moonshot API-Schlüssel KIMI_API_KEY in ~/.hermes/.env (Provider: kimi-coding). v0.19.0 ergänzt die Kataloge um kimi-k3 (kimi-k2.x wurde eingestellt).56
MiniMax (global) API-Schlüssel MINIMAX_API_KEY in ~/.hermes/.env (Provider: minimax)
MiniMax China API-Schlüssel MINIMAX_CN_API_KEY in ~/.hermes/.env (Provider: minimax-cn)
Alibaba Cloud (Qwen) API-Schlüssel DASHSCOPE_API_KEY in ~/.hermes/.env (Provider: alibaba, Aliasse: dashscope, qwen)
Kilo Code API-Schlüssel KILOCODE_API_KEY in ~/.hermes/.env (Provider: kilocode)
OpenCode Zen API-Schlüssel OPENCODE_ZEN_API_KEY in ~/.hermes/.env (Provider: opencode-zen)
OpenCode Go API-Schlüssel OPENCODE_GO_API_KEY in ~/.hermes/.env (Provider: opencode-go)
DeepSeek API-Schlüssel DEEPSEEK_API_KEY in ~/.hermes/.env (Provider: deepseek)
Hugging Face API-Schlüssel HF_TOKEN in ~/.hermes/.env (Provider: huggingface, Alias: hf)
Google / Gemini API-Schlüssel GOOGLE_API_KEY oder GEMINI_API_KEY in ~/.hermes/.env (Provider: gemini)
Fireworks AI API-Schlüssel Vollwertiger Provider mit Kostenschätzung und zwischengespeicherten Preisspalten in der Modellauswahl; in den Providerauswahlen auf Platz 2 vorgerückt. Neu in v0.19.0.56
DeepInfra API-Schlüssel Vollwertiger Provider mit robusterer Integration. Neu in v0.19.0.56
Upstage Solar API-Schlüssel Vollwertiger Provider. Neu in v0.19.0.56
xAI (Grok) Nativer Provider / SuperGrok OAuth Vollwertiger Provider mit direktem API-Zugriff und Modellkatalog (ab v0.9.0). v0.14.0 ergänzt SuperGrok OAuth und erweitert das Kontextfenster von grok-4.3 für berechtigte Konten auf 1 Mio. Token.21619 v0.17.0 ergänzt grok-composer-2.5-fast (das Modell von Cursor über xAI OAuth, Kontext mit 200.000 Token) und ändert die xAI-Standardeinstellung in grok-build-0.1.21 Mit v0.19.0 erreicht grok-4.5 im Katalog die allgemeine Verfügbarkeit.56
xAI Custom Voices API-Schlüssel TTS-Provider mit Stimmklonung. Neu in v0.13.0; konfigurieren Sie ihn unter tts: in config.yaml und hinterlegen Sie den xAI-Schlüssel in .env.18
Xiaomi MiMo Nativer Provider Vollwertiger Provider mit Einrichtungsassistent und Modellkatalog. Kostenloses MiMo v2 Pro auf Nous Portal für Hilfsaufgaben (ab v0.9.0).1615
Google AI Studio API-Schlüssel GOOGLE_API_KEY oder GEMINI_API_KEY in ~/.hermes/.env. Direkter Gemini-Zugriff mit automatisch erkannten Kontextlängen über die models.dev-Registry (ab v0.8.0).15
Qwen OAuth (Portal) OAuth hermes model → “Qwen OAuth (Portal)” (Provider: qwen-oauth; Browseranmeldung per PKCE, die eine lokale Qwen CLI-Anmeldung wiederverwendet). OAuth-Provider mit Unterstützung für Portal-Anfragen (ab v0.8.0). Der oben aufgeführte DashScope-Weg mit API-Schlüssel wurde in v0.14.0 von Alibaba Cloud in Qwen Cloud umbenannt; bestehende Konfigurationsschlüssel funktionieren weiterhin.151926
OpenCode Free (entfernt) Schlüssellos Am 18. September 2026 entfernt und in den Tags v2026.9.21 sowie v2026.9.24 nicht mehr vorhanden. Eine Konfiguration, die weiterhin opencode-free, free oder opencode_free angibt, löst eine Fehlermeldung aus, die auf die Entfernung hinweist; wechseln Sie über hermes model zu opencode-zen (nutzungsabhängige Abrechnung, OPENCODE_ZEN_API_KEY) oder opencode-go (Abonnement, OPENCODE_GO_API_KEY). Der Provider wurde im Zeitraum von v0.20.5 als „opencode-free zero-auth provider“ eingeführt.2353
OpenAI API (direkt) API-Schlüssel OPENAI_API_KEY in ~/.hermes/.env (Provider: openai-api, optional OPENAI_BASE_URL)26
Google Vertex AI OAuth2 / ADC hermes model → “Google Vertex AI” (Provider: vertex; OAuth2 über Dienstkonto-JSON oder Application Default Credentials, Abrechnung über Ihr GCP-Projekt)26
Azure AI Foundry Endpunkt + Schlüssel hermes model → “Azure AI Foundry” (Provider: azure-foundry; verwendet Ihren Azure OpenAI-/Foundry-Endpunkt und -Schlüssel; die Auswahl beschreibt ihn als „OpenAI-style or Anthropic-style endpoint“)26
AWS Bedrock AWS-Anmeldedaten hermes model → “AWS Bedrock” (Provider: bedrock; standardmäßige AWS-Anmeldedatenkette über boto3, IAM oder API-Schlüssel; Claude, Nova, Llama, DeepSeek)26
NVIDIA NIM / Build API-Schlüssel NVIDIA_API_KEY in ~/.hermes/.env (Provider: nvidia; von NIM gehostetes Nemotron und weitere Modelle auf build.nvidia.com oder ein lokaler NIM-Endpunkt über eine Überschreibung der Basis-URL)26
Ollama Cloud OAuth oder API-Schlüssel hermes model → “Ollama Cloud” (Provider: ollama-cloud; fügen Sie OLLAMA_API_KEY ein und wählen Sie eines der erkannten, in der Cloud gehosteten Modelle aus)26
StepFun Step Plan API-Schlüssel STEPFUN_API_KEY in ~/.hermes/.env (Provider: stepfun; Agenten- und Codingmodelle über die Step Plan API)26
MiniMax (OAuth) OAuth hermes model → “MiniMax (OAuth)” (Provider: minimax-oauth; Browseranmeldung per PKCE für den Coding Plan, globale oder CN-Region)26
Meta AI API-Schlüssel MODEL_API_KEY in ~/.hermes/.env (Provider: meta-ai; Meta Model API, Muse-Spark-Familie)26
NovitaAI API-Schlüssel NOVITA_API_KEY in ~/.hermes/.env (Provider: novita; mehr als 200 Modelle, Modell-API, Agent Sandbox, GPU Cloud)26
Arcee AI API-Schlüssel ARCEEAI_API_KEY in ~/.hermes/.env (Provider: arcee; Aliasse: arcee-ai, arceeai; Trinity-Modelle)26
GMI Cloud API-Schlüssel GMI_API_KEY in ~/.hermes/.env (Provider: gmi; Aliasse: gmi-cloud, gmicloud). Verwenden Sie die exakte Modell-ID, die vom /v1/models-Endpunkt von GMI zurückgegeben wird26
Actual Computer API-Schlüssel oder lokaler Daemon ACTUAL_API_KEY in ~/.hermes/.env für das gehostete Relay oder ACTUAL_BASE_URL=http://127.0.0.1:8080 für den lokalen Daemon ohne Schlüssel auf der Loopback-Schnittstelle (Provider: actual; Aliasse: actual-computer, actualcomputer, aci)26
Tencent TokenHub API-Schlüssel TOKENHUB_API_KEY in ~/.hermes/.env (Provider: tencent-tokenhub; Aliasse: tencent, tokenhub, tencentmaas; Hy3 Preview)26
CommandCode API-Schlüssel COMMANDCODE_API_KEY in ~/.hermes/.env (Provider: commandcode, Alias commandcode-chat; Claude-Modelle über commandcode-anthropic, Alias commandcode-claude). Funktioniert mit den Tarifen GOAT, Pro, Max und Provider, jedoch nicht mit dem 1-Dollar-Tarif Go, der keinen API-Zugriff bietet. Das Plugin wurde im Versionszeitraum von v0.20.3 eingeführt.5426
Alibaba Cloud (Coding Plan) API-Schlüssel DASHSCOPE_API_KEY (Provider: alibaba-coding-plan, Alias alibaba_coding); eine separate Abrechnungs-SKU mit einem anderen Endpunkt als der DashScope-Provider alibaba26
Tencent TokenPlan API-Schlüssel TOKENPLAN_API_KEY in ~/.hermes/.env (Provider: tencent-tokenplan, Aliasse: tokenplan, tencent-lkeap; Hy4 Preview über den Anthropic-Messages-Endpunkt unter api.lkeap.cloud.tencent.com). Neu in v0.21.0; die Auswahl fasst TokenHub und TokenPlan unter einer gemeinsamen, ausschließlich der Anzeige dienenden Zeile „Tencent Hy“ zusammen3536
Nebius Token Factory API-Schlüssel NEBIUS_API_KEY in ~/.hermes/.env (Provider: nebius-token-factory; Aliasse: nebius, nebius-tf, tokenfactory). Neu in v0.21.03536
Ramp Router API-Schlüssel RAMP_ROUTER_API_KEY in ~/.hermes/.env (Provider: router; Aliasse: ramp-router, ramp, router.com). Ramps nativer OpenAI-Responses-LLM-Gateway unter api.router.com verfügt über einen aktiven, kontobezogenen Katalog – gültig sind jeweils die Modell-IDs, die /v1/models für Ihren Schlüssel zurückgibt. Deshalb ruft die Auswahl sie ab, statt sie fest zu codieren. Neu in v0.21.03536
Alibaba Cloud (Token Plan) API-Schlüssel ALIBABA_TOKEN_PLAN_API_KEY in ~/.hermes/.env (Provider: alibaba-token-plan; Endpunkt für Festlandchina: alibaba-token-plan-cn) – der Pauschaltarif nach Token von Model Studio, eine dritte Alibaba-SKU neben alibaba und alibaba-coding-plan36
Benutzerdefinierter Endpunkt config.yaml hermes model → „Benutzerdefinierter Endpunkt“ (in config.yaml gespeichert). Die Liste OpenAI-kompatibler Dienste in der Dokumentation umfasst Together AI, Groq, Cerebras (https://api.cerebras.ai/v1), Mistral, Azure OpenAI, LocalAI und Jan26
Seit v0.19.0 können Sie außerdem nicht verwendete Provider ausblenden: Ein providerspezifisches Flag enabled: false und der Konfigurationsschlüssel excluded_providers entfernen sie aus den /model-Auswahlmenüs und der integrierten Provider-Auflösung.56

Anthropic: Drei Authentifizierungsmethoden

Anthropic erhält einen eigenen Abschnitt, weil Hermes drei verschiedene Zugangswege zu Claude unterstützt und die Wahl des richtigen entscheidend ist. Aus der Upstream-Dokumentation:2

# Method 1: API key (pay-per-token)
export ANTHROPIC_API_KEY=***
hermes chat --provider anthropic --model claude-sonnet-4-6

# Method 2: OAuth through hermes model (preferred)
# Uses Claude Code's credential store when available
hermes model

# Method 3: Manual setup-token (fallback/legacy)
export ANTHROPIC_TOKEN=***
hermes chat --provider anthropic

# Auto-detect Claude Code credentials
hermes chat --provider anthropic   # reads Claude Code files automatically

Wenn Sie Anthropic OAuth über hermes model auswählen, bevorzugt Hermes den eigenen Anmeldedatenspeicher von Claude Code, statt das Token in ~/.hermes/.env zu kopieren. Dadurch bleiben aktualisierbare Claude-Anmeldedaten weiterhin aktualisierbar.2 Wenn Sie Claude Code bereits auf demselben Computer verwenden, ist dies der sauberste Weg.

So legen Sie Anthropic dauerhaft in config.yaml fest:

model:
  provider: "anthropic"
  default: "claude-sonnet-4-6"

--provider claude und --provider claude-code funktionieren ebenfalls als Kurzformen für --provider anthropic.2

GitHub Copilot: Zwei Modi

Copilot wird in zwei Modi unterstützt: als direkte Copilot-API (empfohlen) und als Copilot ACP, bei dem die lokale Copilot-CLI als Unterprozess gestartet wird.2

# Direct Copilot API
hermes chat --provider copilot --model gpt-5.4

# Copilot ACP (requires the Copilot CLI in PATH + an existing copilot login)
hermes chat --provider copilot-acp --model copilot-acp

Laut Upstream-Dokumentation wird die Authentifizierung in dieser Reihenfolge geprüft:2 1. Umgebungsvariable COPILOT_GITHUB_TOKEN 2. Umgebungsvariable GH_TOKEN 3. Umgebungsvariable GITHUB_TOKEN 4. CLI-Fallback gh auth token 5. Anmeldung per OAuth-Gerätecode über hermes model

Der Token-Typ ist entscheidend. Die Copilot-API unterstützt keine klassischen Personal Access Tokens (ghp_*). Unterstützt werden OAuth-Tokens (gho_*), fein abgestufte PATs (github_pat_* mit der Berechtigung Copilot Requests) und GitHub-App-Tokens (ghu_*). Wenn gh auth token ein ghp_*-Token zurückgibt, authentifizieren Sie sich stattdessen über hermes model per OAuth.2

Chinesische AI-Provider (erstklassige Unterstützung)

Hermes bietet integrierte Unterstützung für z.ai/GLM, Kimi/Moonshot, MiniMax (globale und chinesische Endpunkte) sowie Alibaba Cloud mit dedizierten Provider-IDs.2

# z.ai / ZhipuAI GLM
hermes chat --provider zai --model glm-5                 # Requires: GLM_API_KEY

# Kimi / Moonshot AI
hermes chat --provider kimi-coding --model kimi-for-coding   # Requires: KIMI_API_KEY

# MiniMax (global)
hermes chat --provider minimax --model MiniMax-M2.7          # Requires: MINIMAX_API_KEY

# MiniMax (China)
hermes chat --provider minimax-cn --model MiniMax-M2.7       # Requires: MINIMAX_CN_API_KEY

# Alibaba Cloud / DashScope (Qwen)
hermes chat --provider alibaba --model qwen3.5-plus          # Requires: DASHSCOPE_API_KEY

Die Basis-URLs können mit den Umgebungsvariablen GLM_BASE_URL, KIMI_BASE_URL, MINIMAX_BASE_URL, MINIMAX_CN_BASE_URL oder DASHSCOPE_BASE_URL überschrieben werden.2

Z.AI erkennt den Endpunkt automatisch. Bei Verwendung des Providers z.ai/GLM testet Hermes mehrere Endpunkte (global, China und Coding-Varianten), um einen zu finden, der Ihren API-Schlüssel akzeptiert. Der funktionierende Endpunkt wird automatisch zwischengespeichert – für die meisten Benutzer ist kein GLM_BASE_URL erforderlich.2

xAI (Grok) aktiviert das Prompt-Caching automatisch. Wenn die Basis-URL x.ai enthält, sendet Hermes bei jeder Anfrage den Header x-grok-conv-id, damit Anfragen innerhalb einer Konversationssitzung an denselben Server weitergeleitet und zwischengespeicherte System-Prompts sowie der Verlauf wiederverwendet werden.2 Dies geschieht automatisch; eine Konfiguration ist nicht erforderlich.

Der Befehl hermes auth

hermes auth ist der Befehl zur Verwaltung von Anmeldedaten für Pools und OAuth-Anmeldedaten.6

hermes auth                              # Interactive wizard
hermes auth list                         # Show all credential pools
hermes auth list openrouter              # Show one provider's pool
hermes auth add openrouter --api-key sk-or-v1-xxx
hermes auth add anthropic --type oauth
hermes auth remove openrouter 2          # Remove by index
hermes auth reset openrouter             # Clear cooldowns

Mit Anmeldedaten-Pools können Sie mehrere API-Schlüssel oder OAuth-Tokens für denselben Provider rotieren. Das ist praktisch, um Ratenlimits auf mehrere Schlüssel zu verteilen, ohne den Code zu ändern.6 Die veralteten Befehle hermes login und hermes logout wurden entfernt; verwenden Sie stattdessen hermes auth.6

Benutzerdefinierte und selbst gehostete Endpunkte

Hermes funktioniert mit jedem OpenAI-kompatiblen API-Endpunkt. Wenn ein Server /v1/chat/completions implementiert, können Sie Hermes darauf verweisen.2

Interaktive Einrichtung (empfohlen):

hermes model
# Select "Custom endpoint (self-hosted / VLLM / etc.)"
# Enter: API base URL, API key, Model name

Manuelle config.yaml:

model:
  default: your-model-name
  provider: custom
  base_url: http://localhost:8000/v1
  api_key: your-key-or-leave-empty-for-local

Beide Ansätze speichern die Konfiguration dauerhaft in config.yaml, der zentralen Quelle für Hauptmodell, Provider und Basis-URL.2 Die veralteten Umgebungsvariablen OPENAI_BASE_URL und LLM_MODEL werden für die Konfiguration des Hauptmodells nicht mehr gelesen – verwenden Sie hermes model oder bearbeiten Sie config.yaml direkt.2 (OPENAI_BASE_URL und OPENAI_API_KEY werden weiterhin als Fallback für den zusätzlichen Routing-Pfad provider: "main" berücksichtigt. Löschen Sie sie daher nicht unbedacht, falls Sie sie dort verwenden.)4

Benutzerdefinierte Endpunkte während einer Sitzung wechseln:

/model custom:qwen-2.5             # Custom endpoint with explicit model
/model custom                      # Auto-detect the model from the endpoint
/model custom:local:qwen-2.5       # Named custom provider "local"
/model custom:work:llama3          # Named custom provider "work"
/model openrouter:claude-sonnet-4  # Back to a cloud provider

/model custom (allein, ohne Modellnamen) fragt /v1/models API Ihres Endpunkts ab und wählt das Modell automatisch aus, wenn genau eines geladen ist — praktisch für lokale Server, auf denen nur ein Modell läuft.2

Lokale LLM-Server (Einrichtungsvorlagen)

Die Upstream-Dokumentation enthält vollständige Einrichtungsanleitungen für Ollama, vLLM, SGLang, llama.cpp und LM Studio. Hier finden Sie die wichtigsten Befehle, die Sie tatsächlich ausführen werden. Jeder davon ist darauf ausgelegt, einen funktionsfähigen Endpunkt bereitzustellen, den Hermes verwenden kann.2

Ollama — einfachster lokaler Weg, ohne Konfiguration:

ollama pull qwen2.5-coder:32b
OLLAMA_CONTEXT_LENGTH=32768 ollama serve   # Raise from 4k default
hermes model   # Custom endpoint → http://localhost:11434/v1 → qwen2.5-coder:32b

Kritischer Stolperstein bei Ollama: Ollama verwendet standardmäßig sehr kurze Kontextlängen (4.096 Token bei weniger als 24 GB VRAM). Sie müssen sie über OLLAMA_CONTEXT_LENGTH oder ein Modelfile erhöhen — das OpenAI-kompatible API akzeptiert die Kontextlänge nicht vom Client, sodass Hermes sie nicht für Sie festlegen kann.2 Für die Agentennutzung sollten Sie mindestens 16k–32k einstellen.

vLLM — leistungsstarke Bereitstellung von GPU:

pip install vllm
vllm serve meta-llama/Llama-3.1-70B-Instruct \
  --port 8000 \
  --max-model-len 65536 \
  --tensor-parallel-size 2 \
  --enable-auto-tool-choice \
  --tool-call-parser hermes

Tool-Aufrufe erfordern --enable-auto-tool-choice und --tool-call-parser <name>. Unterstützte Parser: hermes (Qwen 2.5, Hermes 2/3), llama3_json, mistral, deepseek_v3, deepseek_v31, xlam, pythonic. Ohne diese Flags werden Tool-Aufrufe als Klartext zurückgegeben.2

SGLang — schnelle Bereitstellung mit RadixAttention zur Wiederverwendung des KV-Caches:

pip install "sglang[all]"
python -m sglang.launch_server \
  --model meta-llama/Llama-3.1-70B-Instruct \
  --port 30000 \
  --context-length 65536 \
  --tp 2 \
  --tool-call-parser qwen

Stolperstein bei SGLang: Der Standardwert für max_tokens beträgt 128. Legen Sie auf dem Server --default-max-tokens fest oder konfigurieren Sie model.max_tokens in config.yaml, falls Antworten abgeschnitten werden.2

llama.cpp / llama-server — CPU und Apple Silicon Metal:

./build/bin/llama-server \
  --jinja -fa \
  -c 32768 \
  -ngl 99 \
  -m models/qwen2.5-coder-32b-instruct-Q4_K_M.gguf \
  --port 8080 --host 0.0.0.0

--jinja ist für Tool-Aufrufe erforderlich. Ohne diese Option ignoriert llama-server den Parameter tools vollständig, und das Modell versucht, Tools aufzurufen, indem es JSON in seinen Antworttext schreibt — Hermes kann dies jedoch nicht als tatsächliche Tool-Aufrufe parsen.2

LM Studio — Desktop-Anwendung mit GUI:

Starten Sie den Server in der LM Studio-Anwendung (Registerkarte „Developer“ → „Start Server“) oder über CLI: lms server start (startet auf Port 1234) und lms load qwen2.5-coder --context-length 32768.2 Richten Sie hermes model anschließend auf http://localhost:1234/v1.

Kritischer Stolperstein bei LM Studio: LM Studio liest die Kontextlänge aus den Modellmetadaten, doch viele GGUF-Modelle melden Standardwerte von 2048 oder 4096. Legen Sie die Kontextlänge in den LM Studio-Modelleinstellungen immer ausdrücklich fest — klicken Sie neben der Modellauswahl auf das Zahnradsymbol, stellen Sie „Context Length“ auf mindestens 16384 (vorzugsweise 32768) und laden Sie das Modell neu.2

Benannte benutzerdefinierte Provider

Wenn Sie mit mehreren benutzerdefinierten Endpunkten arbeiten (beispielsweise einem lokalen Entwicklungsserver und einem entfernten GPU-Server), definieren Sie diese in config.yaml als benannte benutzerdefinierte Provider:2

custom_providers:
  - name: local
    base_url: http://localhost:8080/v1
    # api_key omitted — Hermes uses "no-key-required" for keyless local servers
  - name: work
    base_url: https://gpu-server.internal.corp/v1
    api_key: corp-api-key
    api_mode: chat_completions      # optional, auto-detected from URL
  - name: anthropic-proxy
    base_url: https://proxy.example.com/anthropic
    api_key: proxy-key
    api_mode: anthropic_messages    # for Anthropic-compatible proxies

Anschließend können Sie während einer Sitzung mit der dreiteiligen Syntax zwischen ihnen wechseln:

/model custom:local:qwen-2.5
/model custom:work:llama3-70b
/model custom:anthropic-proxy:claude-sonnet-4

Benannte benutzerdefinierte Provider lassen sich außerdem im interaktiven Menü von hermes model auswählen.2

Erweiterbare Provider-Architektur (v0.13.0+)

v0.13.0 enthält eine ProviderProfile ABC sowie ein Verzeichnis plugins/model-providers/, über das sich Inferenz-Provider von Drittanbietern ohne Änderungen am Kern integrieren lassen.18 Wenn ein Provider einen OpenAI-, Anthropic- oder Codex-kompatiblen API-Modus unterstützt, können Sie eine Unterklasse von ProviderProfile implementieren, die den Authentifizierungspfad, die Basis-URL, den Modellkatalog und die Caching-Header deklariert; Hermes löst sie über denselben runtime_provider.py-Pfad auf, den auch die integrierten Provider verwenden. Diese Architekturänderung bildet die Grundlage für die Provider-Erweiterung in v0.13.0: Statt den Kerncode zu bearbeiten, um einen Provider hinzuzufügen, liefern Sie ein Plugin aus.

OpenAI-kompatibler lokaler Proxy (v0.14.0+)

hermes proxy stellt einen OpenAI-kompatiblen lokalen Endpunkt bereit, der den OAuth-Provider verwendet, bei dem Hermes bereits angemeldet ist — Claude Pro, ChatGPT Pro, SuperGrok oder einen anderen kompatiblen konfigurierten Provider.19 Dadurch können Tools, die ein OpenAI-artiges API erwarten, darunter Codex CLI, Aider, Cline, Continue oder benutzerdefinierte Skripte, Ihre abonnementbasierte Hermes-Authentifizierung ohne separaten API-Schlüssel verwenden. Behandeln Sie den Proxy als lokale Entwicklungsinfrastruktur: Binden Sie ihn gezielt ein, machen Sie ihn nicht allgemein zugänglich und beachten Sie die providerspezifischen Bedingungen.

Erkennung der Kontextlänge

Laut Upstream-Dokumentation werden zwei Einstellungen häufig verwechselt:2

  • context_length — das gesamte Kontextfenster (kombiniertes Token-Budget für Eingabe und Ausgabe, z. B. 1.000.000 für Claude Opus 4.7 oder 200.000 für Sonnet 4.6). Hermes entscheidet anhand dieses Werts, wann der Verlauf komprimiert werden muss.
  • model.max_tokens — die Ausgabeobergrenze (maximale Anzahl an Token, die das Modell in einer einzelnen Antwort generieren darf). Sie ist unabhängig von der Verlaufslänge.

Legen Sie context_length fest, wenn die automatische Erkennung die Größe des Kontextfensters falsch bestimmt:

model:
  default: "qwen3.5:9b"
  base_url: "http://localhost:8080/v1"
  context_length: 131072      # tokens

Hermes ermittelt Kontextfenster über eine mehrstufige Auflösungskette: Konfigurationsüberschreibung → benutzerdefinierter Provider pro Modell → persistenter Cache → Endpunkt /models → Anthropic /v1/models → OpenRouter API → Nous Portal → models.dev (von der Community gepflegtes Register für mehr als 3800 Modelle) → Standardausweichwerte (128K).2 Das System berücksichtigt den jeweiligen Provider, sodass dasselbe Modell je nach bereitstellendem Anbieter unterschiedliche Kontextgrenzen haben kann (z. B. verfügt claude-opus-4.6 direkt über Anthropic über 1M, bei GitHub Copilot jedoch über 128K).2

Intelligentes Modellrouting: Provider-Rotation und Fallback

Hermes bindet Sie nicht an ein Modell bei einem einzigen Provider. Intelligentes Modellrouting umfasst alle Mechanismen, die entscheiden, welcher Provider und welches Modell eine bestimmte Anfrage tatsächlich verarbeitet: Credential- Pools verteilen die Last auf mehrere Schlüssel, ein konfigurierter Fallback übernimmt bei einem Ausfall des primären Modells und die nachfolgenden zusätzlichen Slots leiten Nebenaufgaben unabhängig von Ihrem Hauptmodell an günstigere Modelle weiter.26 Konfigurieren Sie diese drei Komponenten gemeinsam – sie entscheiden darüber, ob ein Agent bei einer Ratenbegrenzung zum Stillstand kommt oder weiterarbeitet.

Credential-Pools. Wenn Sie mehrere API-Schlüssel für denselben Provider besitzen, konfigurieren Sie über hermes auth eine Rotationsstrategie. So verteilen Sie Ratenbegrenzungen auf mehrere Schlüssel.6

Fallback-Modell. Konfigurieren Sie einen Ersatz im Format provider:model, zu dem Hermes automatisch wechselt, wenn Ihr primäres Modell ausfällt (Ratenbegrenzungen, Serverfehler, Authentifizierungsfehler):2

fallback_model:
  provider: openrouter            # required
  model: anthropic/claude-sonnet-4  # required
  # base_url: http://localhost:8000/v1    # optional, for custom endpoints
  # api_key_env: MY_CUSTOM_KEY           # optional, env var name

Der Fallback wechselt während der Sitzung Modell und Provider, ohne dass Ihre Unterhaltung verloren geht. Er wird höchstens einmal pro Sitzung ausgelöst.2 Für den Fallback unterstützte Provider: openrouter, nous, openai-codex, copilot, copilot-acp, anthropic, huggingface, zai, kimi-coding, minimax, minimax-cn, deepseek, ai-gateway, opencode-zen, opencode-go, kilocode, alibaba, custom.2

Zusätzliche Modelle

Hermes verwendet „zusätzliche“ Modelle für Nebenaufgaben: Bildanalyse (Vision), Klassifizierung zur Genehmigung gefährlicher Befehle, Kontextkomprimierung, Generierung von Sitzungstiteln, Einfügung von TTS-Audio-Tags, skill-Abgleich, MCP-Tool-Dispatch sowie die Kanban-Familie für Spezifikation und Zerlegung.434 Standardmäßig (auxiliary.*.provider: "auto") wird jede zusätzliche Aufgabe von Ihrem Haupt-Chatmodell ausgeführt – also demselben Provider und Modell, das Sie in hermes model ausgewählt haben. Die Dokumentation weist ausdrücklich darauf hin, dass dies die frühere automatische Erkennung günstiger Provider ersetzt: „Frühere Builds wiesen Benutzern von Aggregatoren (OpenRouter, Nous Portal) automatisch ein günstiges Provider-Standardmodell zu. Das war unerwartet … auto verwendet nun für alle das Hauptmodell, während aufgabenspezifische Überschreibungen in config.yaml weiterhin Vorrang haben.“34 Für den Einstieg ist keine Konfiguration erforderlich; der Nachteil sind die Kosten – bei teuren Reasoning-Modellen können zusätzliche Aufgaben spürbare Ausgaben verursachen. Weisen Sie einzelne Aufgaben daher bei Bedarf günstigen, schnellen Modellen zu. Zwei frühere Hilfsaufgaben verwenden überhaupt kein LLM mehr: Webextraktion („web_extract und Browser-Snapshots kürzen lange Inhalte deterministisch und speichern den vollständigen Text zum seitenweisen Abruf mit read_file – ohne Beteiligung von LLM“) und Sitzungssuche (das Tool mit einheitlicher Rückgabeform liefert Datenbankinhalte direkt zurück). Ihre früheren Blöcke auxiliary.web_extract.* und auxiliary.session_search.* sind nicht mehr in den Standardeinstellungen enthalten – verbliebene Werte in einer vorhandenen config.yaml sind „harmlose Überbleibsel und werden ignoriert“ – und auch der Slot flush_memories fehlt in den Standardeinstellungen dieses Tags.34

Sie können konfigurieren, welches Modell und welcher Anbieter für die jeweilige Hilfsaufgabe verwendet wird. Jeder Hilfsslot verwendet dieselben Optionen: provider, model, base_url (sowie api_key, timeout, extra_body und ein aufgabenspezifisches reasoning_effort).434

auxiliary:
  vision:                          # vision_analyze + browser screenshots
    provider: "auto"               # "auto" (= main model), "openrouter", "nous", "main", etc.
    model: ""                      # e.g. "openai/gpt-4o", "google/gemini-2.5-flash"
    base_url: ""                   # Custom OpenAI-compatible endpoint
    api_key: ""                    # Falls back to OPENAI_API_KEY
    timeout: 120
    download_timeout: 30
  approval:                        # dangerous-command approval classifier
    provider: "auto"
    model: ""
    timeout: 30
  compression:                     # summarizer -- legacy compression.summary_* keys migrate here (config v17)
    provider: "auto"
    model: ""
    base_url: ""
    timeout: 120
  title_generation:                # auto-generated session titles after the first exchange
    enabled: true                  # set false to disable auto-titles
    provider: "auto"
    model: ""
    language: ""                   # empty follows the conversation; e.g. "English" pins titles to one language
  tts_audio_tags:    { provider: "auto", model: "" }  # Gemini 3.1 TTS hidden audio-tag insertion
  skills_hub:        { provider: "auto", model: "" }  # skill matching and search
  mcp:               { provider: "auto", model: "" }  # MCP tool dispatch
  triage_specifier:  { provider: "auto", model: "" }  # hermes kanban specify: rough one-liner into a concrete spec, promoted to todo
  kanban_decomposer: { provider: "auto", model: "" }  # hermes kanban decompose: triage task into a graph of child tasks routed to specialist profiles
  profile_describer: { provider: "auto", model: "" }  # hermes profile describe --auto: 1-2 sentence profile descriptions

Weitere spezialisierte Slots folgen demselben Schema: goal_judge (bewertet, ob der /goal-Vertrag erfüllt ist), curator (der Fork zur Überprüfung der skill-Nutzung), background_review (der Fork zur Selbstverbesserung nach einem Durchlauf), review (der Reviewer-Subagent für /review), moa_reference und moa_aggregator (Mixture-of-Agents), memory_query_rewrite sowie monitor. Sie müssen YAML dafür überhaupt nicht manuell bearbeiten: Führen Sie hermes model aus und wählen Sie „Configure auxiliary models“, um für jede Aufgabe eine interaktive Auswahl zu treffen.34

Die Anbieteroption "main" bedeutet „denselben Anbieter verwenden wie mein Hauptagent“ und ist nur innerhalb von auxiliary:, compression: und primären Fallback-Einträgen (fallback_providers: oder dem veralteten fallback_model:) gültig. Für Ihre Einstellung model.provider auf oberster Ebene ist sie nicht zulässig. Wenn Sie einen benutzerdefinierten OpenAI-kompatiblen Endpunkt als Hauptmodell verwenden, legen Sie in Ihrem Abschnitt model: den Wert provider: custom fest.4

Warum das wichtig ist: Da auto bereits Ihr Hauptmodell verwendet, gibt es den früheren Fallstrick „OpenRouter konfigurieren, sonst verschlechtert sich die Leistung der Hilfsaufgaben unbemerkt“ nicht mehr – nun müssen Sie stattdessen die Kosten abwägen. Wenn Ihr Hauptmodell ein teures Reasoning-Modell ist, leiten Sie die kommunikationsintensiven Nebenaufgaben an ein günstiges und schnelles Modell weiter:

auxiliary:
  vision:
    provider: "openrouter"
    model: "google/gemini-2.5-flash"
  compression:
    provider: "openrouter"
    model: "google/gemini-2.5-flash"

Konfigurationssystem

Hermes verfügt über ein mehrstufiges Konfigurationssystem. Die Rangfolge zu verstehen, ist entscheidend, da höhere Ebenen niedrigere überschreiben und eine dieser Ebenen eine globale Provider-Registry ist, die in config.yaml nicht sichtbar ist.

Aufbau der Konfigurationsdateien

Laut der Upstream-Dokumentation besteht eine Hermes-Konfiguration aus folgenden Dateien:4

~/.hermes/
├── config.yaml       # All settings (model, terminal, TTS, compression, memory, toolsets, ...)
├── .env              # Secrets (API keys, bot tokens, passwords)
├── auth.json         # OAuth provider credentials (Nous Portal, Codex, Anthropic)
├── SOUL.md           # Primary agent identity (slot #1 in system prompt)
├── memories/         # Persistent memory (MEMORY.md, USER.md)
├── skills/           # Bundled + agent-created + hub-installed skills
├── cron/             # Scheduled jobs
├── sessions/         # Gateway session state
└── logs/             # agent.log, gateway.log, errors.log (secrets auto-redacted)

config.yaml im Vergleich zu .env: Sind Einstellungen in beiden Dateien festgelegt, hat config.yaml bei nicht geheimen Einstellungen Vorrang.4 Dabei gilt: - Geheimnisse (API-Schlüssel, Bot-Tokens, Passwörter) → .env - Alles andere (Modell, Terminal-Backend, Komprimierungseinstellungen, Speicherlimits, toolsets) → config.yaml

Auf Geheimnisse kann in config.yaml mittels Shell-artiger Interpolation verwiesen werden:4

auxiliary:
  vision:
    api_key: ${GOOGLE_API_KEY}
    base_url: ${CUSTOM_VISION_URL}
  delegation:
    api_key: ${DELEGATION_KEY}

Konfiguration verwalten

hermes config                # View current configuration
hermes config show           # Same as above
hermes config edit           # Open config.yaml in your editor
hermes config set KEY VAL    # Set a specific value
hermes config get KEY        # Print a single value (v0.19.0+)
hermes config unset KEY      # Remove a key so the default applies again (v0.19.0+)
hermes config path           # Print the config file path
hermes config env-path       # Print the .env file path
hermes config check          # Check for missing options (after updates)
hermes config migrate        # Interactively add missing options

Beispiele:4

hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config set OPENROUTER_API_KEY sk-or-...   # Saves to .env

hermes config check und hermes config migrate sollten Sie nach jedem hermes update ausführen. Damit werden neu hinzugefügte Konfigurationsoptionen erkannt, die in Ihrer Datei noch fehlen.6

Konfigurationsrangfolge

Hermes lädt die Konfiguration aus mehreren Quellen. Legen mehrere Quellen denselben Wert fest, hat die Quelle mit der höheren Priorität Vorrang:4

  1. CLI-Argumente — hermes chat --model anthropic/claude-sonnet-4 (Überschreibung für einen einzelnen Aufruf)
  2. Umgebungsvariablen — werden beim Prozessstart angewendet
  3. config.yaml — die primäre Einstellungsdatei
  4. .env — ausschließlich für Geheimnisse
  5. Integrierte Standardwerte — werden angewendet, wenn der Wert aus keiner anderen Quelle stammt

CLI-Flags haben für den jeweiligen Aufruf immer Vorrang. config.yaml ist langfristig die maßgebliche Quelle.

Lokalisierung (v0.13.0+)

Mit v0.13.0 wurden 7 Gebietsschemata für CLI- und gateway-Nachrichten eingeführt: Chinesisch (vereinfacht), Japanisch, Deutsch, Spanisch, Französisch, Ukrainisch und Türkisch.18 v0.14.0 lokalisiert sämtliche gateway-Befehle und das Web-Dashboard, ergänzt 8 weitere Gebietsschemata und erhöht deren Gesamtzahl auf 16.19 Beim Tag v2026.8.31 enthält die Verzeichnisstruktur locales/ 17 Nachrichtenkataloge – Englisch sowie 16 Übersetzungen (af, ar, de, es, fr, ga, hu, it, ja, ko, pt, ru, tr, uk, zh-hant, zh).33 Die Dokumentation ist derzeit nur in zh-Hans lokalisiert. Das Gebietsschema wird anhand der Umgebungsvariablen LC_ALL / LANG oder eines expliziten locale:-Schlüssels in config.yaml bestimmt. Englisch bleibt die Standardsprache und die maßgebliche Quelle für alle Zeichenfolgen, die von einer Übersetzung noch nicht abgedeckt werden.

Profiles – mehrere isolierte Hermes-Instanzen

Profiles ermöglichen mehrere isolierte Hermes-Instanzen, die jeweils über eine eigene Konfiguration, eigene Sitzungen, skills, einen eigenen Speicher und eine eigene gateway-PID verfügen. So können Sie „Hermes für die Arbeit“ und „Hermes für den privaten Gebrauch“ parallel ausführen, ohne dass eine Instanz auf den Zustand der anderen zugreifen kann.6

hermes profile list
hermes profile create work --clone                  # Clone from current profile
hermes profile use work                             # Set sticky default
hermes profile alias work --name h-work             # Create wrapper script
hermes profile export work -o work-backup.tar.gz
hermes profile import work-backup.tar.gz --name restored
hermes -p work chat -q "Hello from work profile"    # One-off without switching

Jedes profile erhält ein eigenes HERMES_HOME (standardmäßig ~/.hermes-<name>/), sodass mehrere profiles den gateway gleichzeitig ausführen können, ohne sich gegenseitig zu beeinträchtigen.63

Seit v0.21.2 wird diese Isolationsgrenze strenger durchgesetzt: Eine Reihe von Korrekturen schloss tatsächliche profile-übergreifende Lecks in Setups mit gebündelten gateways. Dabei konnten sekundäre profiles die Zulassungslisten des Standard-profiles übernehmen, Anmeldedaten an dessen Host senden, Geheimnisse aus dessen Vault an stdio-MCP-Server weitergeben oder .env/auth.json/state.db eines anderen profiles an eine MEDIA:-Übermittlung anhängen (#107609-#107630). Wenn Sie mehrere profiles bündeln, ist v0.21.2 der Tag, ab dem die zugesicherte Isolation tatsächlich gewährleistet ist – siehe Neuerungen in v0.21.2.48


CLI-Befehle

Dieser Abschnitt dient als Praxisreferenz für CLI-Befehle der obersten Ebene. Die maßgebliche, aus dem Code abgeleitete Referenz finden Sie in der upstream verfügbaren Referenz zu CLI-Befehlen.6

Globale Optionen

hermes [global-options] <command> [subcommand/options]
Option Beschreibung
--version, -V Version anzeigen und beenden
--profile <name>, -p <name> Zu verwendendes Hermes-profile auswählen
--resume <session>, -r <session> Eine Sitzung anhand ihrer ID oder ihres Titels fortsetzen
--continue [name], -c [name] Die neueste Sitzung fortsetzen (oder einen passenden Titel suchen)
--worktree, -w In einem isolierten git-worktree starten
--in <dir> Vor dem Starten oder Fortsetzen in DIR wechseln. In Kombination mit --resume latest oder -c wird die neueste Sitzung für den Arbeitsbereich von DIR ausgewählt und die Sitzung verbleibt in DIR (die Wiederherstellung des aufgezeichneten Arbeitsverzeichnisses wird übersprungen)27
--ignore-user-config ~/.hermes/config.yaml ignorieren und auf integrierte Standardwerte zurückgreifen (Anmeldedaten aus .env werden weiterhin geladen)27
--ignore-rules Die automatische Einbindung von AGENTS.md, SOUL.md, .cursorrules, memory und vorgeladenen skills überspringen27
--tui Die moderne TUI anstelle der klassischen REPL starten27
--cli Die klassische prompt_toolkit-REPL erzwingen (überschreibt display.interface=tui)27
--dev Mit --tui: TypeScript-Quelldateien über tsx ausführen (dist-Build überspringen)27
--yolo Bestätigungsabfragen für gefährliche Befehle umgehen
--safe-mode Option zur Fehlerbehebung — Hermes in einem minimalen abgesicherten Modus starten, um Startprobleme einzugrenzen (ab v0.19.0)56
--pass-session-id Die Sitzungs-ID in den System-Prompt des Agenten aufnehmen

Befehle der obersten Ebene

Befehl Zweck
hermes chat Interaktiver Chat oder einmalige Anfrage
hermes model Standardanbieter und -modell interaktiv auswählen
hermes gateway Messaging-gateway ausführen oder verwalten
hermes setup Interaktiver Einrichtungsassistent
hermes auth Anmeldedaten verwalten — hinzufügen, auflisten, entfernen, zurücksetzen und Strategie festlegen
hermes status Status von Agent, Authentifizierung und Plattform anzeigen
hermes cron cron-Scheduler prüfen und einen Tick auslösen
hermes webhook Dynamische webhook-Abonnements verwalten
hermes doctor Konfigurations- und Abhängigkeitsprobleme diagnostizieren
hermes dump Kopierbare Einrichtungsübersicht für Support und Fehlerbehebung
hermes logs Agent-, gateway- und Fehlerprotokolle anzeigen, fortlaufend verfolgen und filtern
hermes config Konfiguration anzeigen, bearbeiten, migrieren und abfragen
hermes pairing Messaging-Kopplungscodes genehmigen oder widerrufen
hermes skills skills durchsuchen, installieren, veröffentlichen und prüfen
hermes honcho Sitzungsübergreifende memory von Honcho verwalten. Abhängig vom Plugin: Laut Dokumentation werden „Plugin-spezifische Unterbefehle (z. B. hermes honcho) automatisch registriert, wenn ihr Anbieter aktiv ist“. Deshalb erscheint der Befehl nur dann in hermes --help, wenn Honcho als memory-Anbieter aktiv ist6
hermes memory Externen memory-Anbieter konfigurieren
hermes acp Hermes als ACP-Server ausführen (Editor-Integration)
hermes mcp Konfiguration des MCP-Servers verwalten; Hermes als MCP-Server ausführen
hermes plugins Plugins verwalten
hermes tools Aktivierte Tools je Plattform konfigurieren
hermes sessions Sitzungen durchsuchen, exportieren, bereinigen und löschen. In v0.19.0 wird hermes sessions export um die Formate Markdown, Quarto, HTML, Nur-Prompt und Hugging-Face-Trace erweitert; hinzu kommen eine optionale Bereinigung von Geheimnissen mit --redact sowie Filter nach Alter, Arbeitsbereich und Plattform56. hermes sessions recover rekonstruiert kanonische Sitzungsdaten aus einer beschädigten state.db offline und zerstörungsfrei in einer separaten NEUEN Datenbank. Mit --inspect-only wird gemeldet, ob die kanonische Tabelle lesbar ist, ohne eine Datenbank anzulegen (der für v0.21.2 vorgesehene Wiederherstellungspfad)48. hermes sessions set-journal-mode delete\|wal (im Zeitraum von v0.21.4) konvertiert einen Speicher offline zwischen WAL und Rollback-Journal. Der Befehl verweigert die Ausführung, solange ein fremder Prozess die Datenbank oder eine Sidecar-Datei geöffnet hält, nimmt die Umstellung ohne Warten auf das Schließen offener Zugriffe vor, überprüft anschließend die SQLite-Header-Bytes 18/19 und akzeptiert --db für einen vom Standard abweichenden Speicher. Beenden Sie zuerst das gateway, das dashboard und jeden CLI-Prozess. Unter Windows, wo keine Suche nach zugreifenden Prozessen möglich ist, wird die Ausführung verweigert, bis Sie nach dem manuellen Beenden aller Hermes-Prozesse --force angeben. Die Ausführung erfolgt bewusst offline, sodass der Befehl den zu konvertierenden Speicher nie öffnet; hermes doctor verweist nun ebenfalls darauf51
hermes insights Analysen zu Token-Nutzung, Kosten und Aktivität anzeigen
hermes claw Migrationshilfen für OpenClaw
hermes profile profiles verwalten (mehrere isolierte Instanzen)
hermes completion Skripte zur Shell-Vervollständigung ausgeben (bash/zsh)
hermes whatsapp WhatsApp-Bridge konfigurieren und koppeln
hermes --version (-V) Versionsinformationen ausgeben. Dies ist eine globale Option und kein Unterbefehl: Beim Tag v2026.8.31 enthält die Gruppe _BUILTIN_SUBCOMMANDS keinen Eintrag version, und der schnelle Startpfad erkennt ausschließlich --version / -V27
hermes update Neuesten Code abrufen und Abhängigkeiten neu installieren
hermes uninstall Hermes vom System entfernen (--full löscht außerdem Konfiguration und Daten)
hermes backup Vollständige Sicherung von Konfiguration, Sitzungen, skills und memory (ab v0.9.0)16
hermes import Daten aus einem Sicherungsarchiv wiederherstellen — zur Migration zwischen Computern oder für ein Rollback (ab v0.9.0)16
hermes dashboard Lokales Web-dashboard zur browserbasierten Agentenverwaltung starten (ab v0.9.0)16
hermes serve Backend-API-Server ohne Benutzeroberfläche ausführen — seit v0.19.0 wird die Weboberfläche weder gebaut noch eingebunden56
hermes debug share Einen vollständigen Debug-Bericht auf einen Pastebin-Dienst hochladen, um ihn bei der Fehlerbehebung zu teilen (ab v0.9.0)16
hermes approvals Tools für Bestätigungsabfragen: suggest leitet aus dem Bestätigungsverlauf Vorschläge für command_allowlist ab; test simuliert die Bestätigungsentscheidung für einen Befehl, ohne ihn auszuführen („führt ihn niemals aus“, mit --backend und --json). In den Versionshinweisen zu v0.21.0 wird dieser Testlauf als hermes approval-check bezeichnet, beim Tag v2026.8.31 existiert jedoch kein Unterbefehl approval-check — die verfügbare Schnittstelle lautet hermes approvals test2740
hermes bundles skill-Bundles erstellen, auflisten und verwalten (Aliasse für mehrere skills unter einem gemeinsamen Slash-Befehl /<name>)27
hermes checkpoints ~/.hermes/checkpoints/, den Shadow-Speicher hinter /rollback, prüfen, bereinigen oder leeren; ohne Argumente ausführen, um eine Statusübersicht zu erhalten27
hermes computer-use Das Backend Computer Use (cua-driver) verwalten (macOS/Windows/Linux)27
hermes console Die sichere Hermes-Befehlskonsole öffnen27
hermes curator skill-Wartung im Hintergrund (curator): Status anzeigen, ausführen, pausieren und anheften27
hermes egress Die Firewall iron-proxy zur Einschleusung ausgehender Anmeldedaten für entfernte Terminal-Sandboxes verwalten (standardmäßig deaktiviert)27
hermes fallback Fallback-Anbieter verwalten, die ausprobiert werden, wenn das primäre Modell ausfällt27
hermes hooks Shell-Skript-hooks prüfen und verwalten: list, test <event>, revoke und doctor (Ausführungsbit, Positivliste, Abweichung der Änderungszeit, Gültigkeit von JSON, Dauer eines synthetischen Testlaufs)27
hermes import-agent Eine Claude Code- (~/.claude) oder Codex-CLI-Einrichtung (~/.codex) in Hermes importieren27
hermes desktop (Alias gui) Native Electron-Desktop-App bauen und starten27
hermes kanban Profilübergreifendes Board für die Zusammenarbeit (Aufgaben, Links, Kommentare) mit Boards, einem swarm-Diagramm (swarm: parallele Worker → Prüfer → Synthesizer) und einem Dispatcher27
hermes login / hermes logout Veraltet. Verwenden Sie hermes auth zur Verwaltung von Anmeldedaten, hermes model zur Auswahl eines Anbieters oder hermes setup für die vollständige Einrichtung27
hermes lsp Verwaltung des Language Server Protocol: status, list, install <server>, install-all und restart (laufende LSP-Clients beenden; bei der nächsten Bearbeitung werden sie neu gestartet)27
hermes migrate Konfiguration für eingestellte Modelle oder veraltete Einstellungen migrieren27
hermes moa Anbieter- und Modell-Slots für Mixture of Agents konfigurieren (benannte Voreinstellungen, die in der Modellauswahl verfügbar sind)27
hermes journey (Aliasse learning, memory-graph) Zeitlicher Verlauf der erlernten skills und memories27
hermes monitoring gateway-Monitoring prüfen (Export von Zustand und Diagnosedaten); status zeigt Einstellungen, Exportstatus und den Stand der Schwärzung an27
hermes pause / hermes resume Not-Aus: pause hält die cron-/Kanban-Ausführung sowie neue gateway-Durchläufe an; resume hebt die Unterbrechung auf27
hermes peer Bot-zu-Bot-Direktnachrichten über mehrere Computer hinweg: Peer-Hermes-gateways mit add, list und remove verwalten und mit dm einem darauf ausgeführten Agenten eine Nachricht senden sowie dessen Antwort ausgeben27
hermes pets Animierte petdex-Haustiere durchsuchen, installieren und auswählen27
hermes portal Nous Portal einrichten (Anmeldung, Modellauswahl, Tool Gateway): login (Standard), info, open, tools; siehe Nous Tool Gateway2728
hermes project Projekte verwalten (benannte Arbeitsbereiche mit mehreren Ordnern): erstellen, auflisten, anzeigen, Ordner hinzufügen/entfernen, umbenennen, Primärordner festlegen, verwenden, archivieren, wiederherstellen und mit einem Kanban-Board verknüpfen27
hermes proxy Lokaler OpenAI-kompatibler Proxy zu OAuth-Anbietern: start, status, providers27
hermes prompt-size Aufschlüsselung der Byte-Größe des System-Prompts und der Tool-Schemas anzeigen; wird offline ausgeführt27
hermes send Ohne Agentenschleife und ohne LLM eine Nachricht an eine konfigurierte Plattform senden (Skripte, cron-Jobs, CI)27
hermes skin Skins auflisten, wechseln und anpassen (list, use, set)27
hermes slack Hilfsfunktionen für die Slack-Integration: manifest gibt ein Slack-App-Manifest aus oder schreibt es in eine Datei, wobei jeder gateway-Befehl als nativer Slash-Befehl registriert ist27
hermes sync Skill Sync geräteübergreifend und im Team: status, pull, push, now, enable, disable, device, propose27
hermes whatsapp-cloud Die WhatsApp-Business-Cloud-API-Integration einrichten (nicht zu verwechseln mit der Baileys-Bridge hermes whatsapp für persönliche Konten)27
hermes worktree Angesammelte git-worktrees und zusammengeführte Branches prüfen und bereinigen. list (Aliasse ls, audit; Standard) klassifiziert jeden worktree nach Alter, Größe, Bewertung und Begründung; prune entfernt gefahrlos löschbare worktrees und vollständig zusammengeführte lokale Branches. Beide akzeptieren --repo <root>; prune unterstützt zusätzlich --dry-run (Plan anzeigen, ohne Änderungen vorzunehmen), --trees-only und --branches-only. Nicht committete Änderungen an versionierten Dateien, einzigartige noch nicht gepushte Commits oder verwendete worktrees werden niemals gelöscht; ausschließlich nicht versionierter Arbeitsinhalt wird vor dem Entfernen unter ~/.hermes/archive/worktree-prune/ archiviert27
hermes secrets Externe Quellen für Geheimnisse (Bitwarden, 1Password) verwalten, aus denen beim Prozessstart API-Schlüssel abgerufen werden27
hermes security Lieferkettenprüfung (OSV.dev) für venv, Plugins und MCP-Server (audit)27
hermes verify Ausführungsrezept eines Projekts erkennen und mit einem Smoke-Test prüfen27

hermes chat — Der zentrale Einstiegspunkt

Wenn Sie hermes ohne Argumente ausführen, gelangen Sie in den interaktiven Chat. hermes chat ist die explizite Variante mit Optionen:6

hermes chat -q "Summarize the latest PRs" --oneshot # Answer and exit (without --oneshot, a TTY seeds an interactive session)
hermes chat --provider openrouter --model anthropic/claude-sonnet-4.6
hermes chat --toolsets web,terminal,skills          # Enable specific toolsets
hermes chat --quiet -q "Return only JSON"           # Programmatic mode
hermes chat --worktree -q "Review repo and open a PR"

Wichtige Optionen:

Option Beschreibung
-q, --query "..." Auszuführende Anfrage. Geändert in v0.21.0: Auf einem echten TTY startet die Option nun eine interaktive Sitzung, in der die Anfrage unverändert als erster Durchlauf übermittelt wird. In Kombination mit --oneshot oder -Q sowie auf einem Nicht-TTY wird die Anfrage wie früher einmalig beantwortet und das Programm anschließend beendet40
--query-file PATH Die einzelne Anfrage aus einer Datei statt aus der Befehlszeile lesen (- liest stdin). Es findet keine Shell-Interpretation statt, sodass Anführungszeichen, $(...) und Backticks unverändert übergeben werden; kann nicht zusammen mit -q verwendet werden51
--oneshot Mit -q/--query-file: Anfrage beantworten und anschließend beenden (bisheriges Verhalten für Einzelanfragen). Wird bei Nicht-TTY-stdio sowie durch -Q/--quiet impliziert40
-m, --model <model> Modell für diesen Durchlauf überschreiben
-t, --toolsets <csv> Eine durch Kommas getrennte Gruppe von toolsets aktivieren
--provider <provider> Einen Anbieter erzwingen (siehe vollständige Liste)
-s, --skills <name> Einen oder mehrere skills für diese Sitzung vorladen
-v, --verbose Ausführliche Ausgabe
-Q, --quiet Programmatischer Modus (kein Banner, Spinner oder keine Vorschauen)
--format <fmt> Ausgabeformat für den Modus mit einer einzelnen Anfrage (-q oder --query-file): text (Standard) gibt die endgültige Antwort als Klartext aus; stream-json erzeugt durch Zeilenumbrüche getrennte JSON-Ereignisse (JSONL) — ein system/init-Ereignis, text-Deltas, tool_use-/tool_result-Ereignisse und abschließend einen einzelnen result-Umschlag mit Exit-Code, endgültigem Text und Token-Statistik. stream-json impliziert --quiet, erfordert -q oder --query-file (Exit-Code 2 ohne eine dieser Optionen) und kann nicht mit --tui kombiniert werden. Diagnosedaten und die Sitzungs-ID verbleiben auf stderr, während die Tool-Ausgabe pro Ereignis auf 5.000 Zeichen begrenzt ist (im Zeitraum von v0.21.4)51
--resume <session> Eine Sitzung direkt aus chat fortsetzen
--worktree Einen isolierten git-worktree erstellen
--checkpoints Dateisystem-checkpoints vor destruktiven Änderungen aktivieren
--yolo Bestätigungsabfragen überspringen
--source <tag> Quellen-Tag der Sitzung (Standard: cli; für Integrationen tool verwenden)
--max-turns <N> Maximale Anzahl der Iterationen mit Tool-Aufrufen pro Gesprächsdurchlauf (seit v0.20.0 standardmäßig 500 oder der Wert von agent.max_turns in der Konfiguration)40

hermes setup — Vollständiger Assistent

Führt den vollständigen Einrichtungsassistenten aus oder wechselt direkt zu einem bestimmten Abschnitt:6

hermes setup                 # Full wizard
hermes setup model           # Provider and model only
hermes setup terminal        # Terminal backend only
hermes setup gateway         # Messaging platforms only
hermes setup tools           # Tool enable/disable per platform
hermes setup agent           # Agent behavior only
hermes setup --non-interactive
hermes setup --reset         # Reset config to defaults before setup

hermes logs — Strukturierte Protokollabfragen

hermes logs bietet mehr Möglichkeiten als tail -f für die Protokolldateien, da gleichzeitig nach Protokollstufe, Sitzungs-ID und Zeitraum gefiltert werden kann.6

hermes logs                          # Last 50 lines of agent.log
hermes logs -f                       # Follow in real time
hermes logs gateway -n 100           # Last 100 lines of gateway.log
hermes logs --level WARNING --since 1h   # Warnings from the last hour
hermes logs --session abc123         # Filter by session ID substring
hermes logs errors --since 30m -f    # Follow errors.log from 30m ago
hermes logs list                     # List all log files with sizes

Die Protokolldateien befinden sich unter ~/.hermes/logs/:6 - agent.log — sämtliche Agentenaktivitäten (API-Aufrufe, Tool-Weiterleitung, Sitzungslebenszyklus, INFO+) - errors.log — ausschließlich Warnungen und Fehler (eine gefilterte Teilmenge von agent.log) - gateway.log — Aktivitäten des Messaging-gateway (Plattformverbindungen, Weiterleitung, webhooks)

Die Rotation erfolgt automatisch über den RotatingFileHandler von Python — suchen Sie nach agent.log.1, agent.log.2 usw.6

hermes doctor — Diagnose

hermes doctor [--fix] ist der erste Befehl, den Sie bei einem Problem ausführen sollten. Er prüft die Gültigkeit der Konfiguration, das Vorhandensein von Abhängigkeiten, die Verfügbarkeit von API-Schlüsseln sowie den Dienststatus und kann mit --fix versuchen, Probleme automatisch zu beheben.6

Um Diagnosedaten mit anderen zu teilen, verwenden Sie hermes dump. Der Befehl erzeugt eine kompakte Klartextübersicht mit geschwärzten API-Schlüsseln, die direkt in ein GitHub-Issue oder einen Discord-Thread eingefügt werden kann.6


Slash Commands

Slash Commands werden innerhalb einer aktiven Chatsitzung (CLI oder Messaging-Plattform) ausgeführt. Sie werden über eine gemeinsame COMMAND_REGISTRY in hermes_cli/commands.py verteilt, weshalb die meisten Befehle auf allen Oberflächen identisch funktionieren.9

Sitzungssteuerung

Befehl Beschreibung
/new (Alias /reset) Neue Sitzung starten
/clear Bildschirm leeren und neue Sitzung starten
/history Gesprächsverlauf anzeigen
/save Aktuelles Gespräch speichern
/retry Letzte Nachricht erneut versuchen
/undo Letzten Austausch zwischen Benutzer und Assistent entfernen
/title <name> Titel für die aktuelle Sitzung festlegen
/compress Gesprächskontext manuell komprimieren
/rollback [number] Dateisystem-checkpoints auflisten oder wiederherstellen
/stop Alle laufenden Hintergrundprozesse beenden
/status Informationen zu Sitzung, Modell, Token und Kontext anzeigen – seit dem v0.20.5-Zeitfenster außerdem Reasoning-Modus, ausstehende Genehmigungen und Kontextnutzung4035
/queue <prompt> Einen Prompt für den nächsten Turn in die Warteschlange stellen. Achtung: Sowohl /queue als auch /quit beanspruchen /q; die letzte Registrierung gewinnt, sodass /q in der Praxis zu /quit aufgelöst wird – geben Sie stets ausdrücklich /queue ein.9
/resume [name] Eine zuvor benannte Sitzung fortsetzen
/statusbar (Alias /sb) Kontext-/Modellstatusleiste ein- oder ausblenden
/background <prompt> (Alias /bg) Einen Prompt in einer separaten Hintergrundsitzung ausführen
/btw <question> Flüchtige Nebenfrage (keine Tools, wird nicht gespeichert)
/plan [request] Das mitgelieferte plan-skill laden, um einen Plan zu erstellen, statt ihn auszuführen
/branch [name] (Alias /fork) Von der aktuellen Sitzung abzweigen
/goal <target> Den Agenten auf ein Ziel festlegen, damit er über mehrere Turns hinweg bei der Aufgabe bleibt. Ralph-Loop-Muster als erstklassiges Grundelement. Konfigurierbares Turn-Budget. Neu in v0.13.0.18
/subgoal <criterion> Erfolgskriterien zu einem aktiven /goal hinzufügen, ohne den Loop neu zu starten. Neu in v0.14.0.19
/handoff <target> Die laufende Sitzung – Nachrichten, Tool-Aufrufe und Kontext – an ein anderes Modell, eine andere Persona oder ein anderes profile übertragen. Neu in v0.14.0.19
/worktree [new [name]\|list\|prune [--dry-run]] Isolierte git-worktrees prüfen, erstellen oder zurückgewinnen, ohne die Sitzung zu verlassen. new erstellt einen worktree unter .worktrees/ des Repositorys und verschiebt die Sitzung dorthin; list listet sie auf; prune entspricht derselben beaufsichtigten Rückgewinnung wie hermes worktree prune und „greift niemals auf den Baum zu, in dem die Sitzung ausgeführt wird“27

Konfiguration und Modell

Befehl Beschreibung
/config Aktuelle Konfiguration anzeigen
/model [model-name] Aktuelles Modell anzeigen oder ändern
/provider Verfügbare Provider und den aktuellen Provider anzeigen
/personality [name] Ein Persona-Overlay festlegen
/verbose Durch die Anzeigen für den Tool-Fortschritt wechseln
/reasoning Reasoning-Aufwand und -Anzeige verwalten. v0.19.0 ergänzt die Aufwandsstufen max und ultra und beschränkt /reasoning auf die Sitzung; hinzu kommen Aufwandsüberschreibungen pro Modell und pro MoA-Slot in der Konfiguration56
/skin Darstellungs-Skin/-Theme anzeigen oder ändern
/voice [on\|off\|tts\|status] Sprachmodus von CLI ein- oder ausschalten
/yolo YOLO-Modus ein- oder ausschalten (Genehmigungsabfragen überspringen). Seit v0.19.0 blockieren benutzerdefinierte Ablehnungsregeln passende Befehle auch im YOLO-Modus56
/fast Fast Mode ein- oder ausschalten – priorisierte Verarbeitung für Modelle von OpenAI und Anthropic (ab v0.9.0)16
/debug Schnelldiagnose auf allen Plattformen (ab v0.9.0)16
/subscription Ihren Nous Portal-Tarif über das Terminal verwalten – Tarif und verbleibendes Kontingent anzeigen, Kosten einer Hoch- oder Herabstufung in der Vorschau prüfen und Änderungen mit Rückgängig-Option anwenden (ab v0.19.0)56
/topup Ihrem Nous Portal-Guthaben Geld hinzufügen, ohne das Terminal zu verlassen (ab v0.19.0)56

Der Befehl /model ist das zentrale Werkzeug, um während einer Sitzung zwischen Providern zu wechseln:9

/model                              # Show current model and options
/model claude-sonnet-4              # Switch model (auto-detect provider)
/model zai:glm-5                    # Switch provider:model
/model custom:qwen-2.5              # Use model on custom endpoint
/model custom                       # Auto-detect model from custom endpoint
/model custom:local:qwen-2.5        # Named custom provider
/model openrouter:anthropic/claude-sonnet-4   # Back to cloud

v0.19.0 ergänzt /model --once – eine Modellüberschreibung für einen Turn, die nach der Antwort automatisch zum vorherigen Modell zurückkehrt.56 Seit dem v0.20.5-Zeitfenster unterstützt die /model-Auswahl außerdem Fuzzy-Suche: Die Ergebnisse werden während Ihrer Eingabe gefiltert.2335

Tools, Skills und Informationen

Befehl Beschreibung
/tools [list\|disable\|enable] [name...] Tools für die aktuelle Sitzung verwalten
/toolsets Verfügbare toolsets auflisten
/browser [connect\|disconnect\|status] Lokale Chrome-CDP-Verbindung verwalten
/skills skills suchen, installieren, prüfen oder verwalten
/cron Geplante Aufgaben verwalten
/reload-mcp MCP-Server aus config.yaml neu laden
/plugins Installierte Plugins auflisten
/help Alle Befehle anzeigen
/usage Tokennutzung, Kosten und Dauer anzeigen
/insights Nutzungsanalysen der letzten 30 Tage anzeigen
/platforms Status der Messaging-Plattformen anzeigen
/profile Namen und Home-Verzeichnis des aktiven profile anzeigen
/palette Fuzzy-Befehlspalette öffnen (auch mit Strg+P) – sämtliche Befehle und skills per Fuzzy-Suche durchsuchen. Im v0.20.5-Zeitfenster eingeführt4035

Dynamische Skill-Slash-Commands

Jedes installierte skill wird automatisch als Slash Command bereitgestellt:9

/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor
/excalidraw       # Just the skill name loads it and lets the agent ask what you need

Seit v0.19.0 lassen sich Slash-skill-Aufrufe stapeln: /skill-a /skill-b do XYZ lädt beide skills in der angegebenen Reihenfolge innerhalb eines einzigen Turns, einschließlich Autovervollständigung und Ghost Text für die verketteten Namen.56

Sie können in config.yaml außerdem Schnellbefehle definieren, die einen kurzen Namen als Alias für einen längeren Prompt verwenden:9

quick_commands:
  review: "Review my latest git diff and suggest improvements"
  deploy: "Run the deployment script at scripts/deploy.sh and verify the output"
  morning: "Check my calendar, unread emails, and summarize today's priorities"

Geben Sie anschließend /review, /deploy oder /morning in CLI ein.

Präfixabgleich

Befehle unterstützen Präfixabgleich: Die Eingabe /h wird zu /help, /mod zu /model aufgelöst. Ist ein Präfix mehrdeutig, gewinnt die erste Registrierung gemäß der Reihenfolge in der Registry. Vollständige Befehlsnamen und registrierte Aliasse haben stets Vorrang vor Präfixübereinstimmungen.9

Messaging-spezifische Befehle

Einige Befehle funktionieren nur auf Messaging-Plattformen (Telegram, Discord, Slack, WhatsApp, Signal, E-Mail, Home Assistant):9

  • /status — Sitzungsinformationen anzeigen (nicht mehr ausschließlich für Messaging; siehe Sitzungssteuerung)
  • /sethome (Alias /set-home) — den aktuellen Chat als Plattform-Home festlegen
  • /approve [session|always] — einen ausstehenden gefährlichen Befehl genehmigen
  • /deny [reason] — einen ausstehenden gefährlichen Befehl ablehnen. Seit v0.19.0 übermittelt /deny <reason> dem Agenten den Grund Ihrer Ablehnung, damit er seinen Kurs korrigiert, statt denselben Versuch blind zu wiederholen56
  • /update — Hermes Agent auf die neueste Version aktualisieren
  • /commands [page] — alle Befehle und skills seitenweise durchsuchen

Einige andere funktionieren ausschließlich in CLI: /skin, /tools, /toolsets, /browser, /config, /cron, /skills, /platforms, /paste, /statusbar, /plugins.9


Tools und Toolsets

Hermes umfasst eine umfangreiche integrierte Tool-Registry für Websuche, Browserautomatisierung, Terminalausführung, Dateibearbeitung, Speicher, Delegation, RL-Training, Nachrichtenzustellung, Home-Assistant-Integration und mehr.10 Tools sind in logischen toolsets organisiert, die für jede Plattform aktiviert oder deaktiviert werden können.

Übergeordnete Kategorien

Kategorie Beispiele Beschreibung
Web web_search, web_extract Das Web durchsuchen und Seiteninhalte extrahieren
Terminal und Dateien terminal, process, read_file, patch Befehle ausführen und Dateien bearbeiten
Browser browser_navigate, browser_snapshot, browser_vision Interaktive Browserautomatisierung mit Text und visueller Erkennung
Medien vision_analyze, video_analyze, video_generate, image_generate, text_to_speech Multimodale Analyse und Generierung. video_analyze setzt vorrangig auf Gemini und bietet erweiterbare Unterstützung für kompatible multimodale Anbieter (ab v0.13.0). v0.14.0 ergänzt das einheitliche video_generate mit austauschbaren Anbieter-Backends und leitet Rohpixel über vision_analyze weiter, wenn das aktive Modell visuelle Eingaben unterstützt.1819
Agentenorchestrierung todo, clarify, execute_code, delegate_task Planung, Klärung, Codeausführung und Delegation an Unteragenten
Computersteuerung computer_use Desktopsteuerung über das cua-driver-Backend; seit v0.14.0 funktioniert dies auch mit anderen visuell leistungsfähigen Anbietern als Anthropic.19
Speicher und Abruf memory, session_search Dauerhafter Speicher und Sitzungssuche
Automatisierung und Zustellung cronjob, send_message Geplante Aufgaben und ausgehende Nachrichten
Integrationen ha_*, MCP tools, rl_* Home Assistant, MCP und RL-Training

Zu den gebräuchlichen toolset-Namen gehören web, terminal, file, browser, vision, image_gen, moa, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant und rl.10

Tools verwalten

hermes chat --toolsets "web,terminal"       # Use specific toolsets
hermes tools                                # Interactive per-platform tool config
hermes tools --summary                      # Print enabled-tools summary

Tools lassen sich außerdem während einer Sitzung über /tools disable <name> und /tools enable <name> umschalten. Dabei wird die Sitzung zurückgesetzt, damit die neue Toolauswahl wirksam wird.9

Terminal-Backends

Das Terminal-Tool umfasst sieben integrierte Ausführungs-Backends – und seit v0.20.6 lässt sich diese Auswahl ebenso wie die Anbieterauswahl durch Plugins erweitern (siehe unten):1024

Backend Anwendungsfall
local Ausführung auf Ihrem Rechner (Standard) – Entwicklung und vertrauenswürdige Aufgaben
docker Isolierte Container – Sicherheit und Reproduzierbarkeit
ssh Remote-Server – Sandbox, damit der Agent nicht auf seinen eigenen Code zugreifen kann
singularity HPC-Container – Cluster-Computing ohne Root-Rechte
modal Serverlose Cloud-Ausführung
daytona Cloud-Sandbox-Arbeitsbereich – dauerhafte Remote-Entwicklungsumgebung
vercel_sandbox Vercel-Sandbox-Cloud-microVM – Cloud-Ausführung mit Snapshot-basierter Dateisystempersistenz. Installieren Sie hermes-agent[vercel], legen Sie terminal.vercel_runtime (node24, node22 oder python3.13) fest und authentifizieren Sie sich mit VERCEL_TOKEN, VERCEL_PROJECT_ID und VERCEL_TEAM_ID; das Stammverzeichnis des Remote-Arbeitsbereichs ist standardmäßig /vercel/sandbox24

Wechseln Sie das Backend mit hermes config set terminal.backend <name> oder in config.yaml:

terminal:
  backend: docker      # or: local, ssh, singularity, modal, daytona, vercel_sandbox
  cwd: "."             # Working directory
  timeout: 180         # Command timeout in seconds

Plugin-Backends (ab v0.20.6). Drittanbieter von Sandboxes müssen nicht mehr in das Kern-Repository aufgenommen werden: Ein Plugin registriert beim Laden über PluginContext.register_terminal_environment_provider einen TerminalEnvironmentProvider, woraufhin der registrierte Name genau wie bei einem integrierten Backend über terminal.backend ausgewählt werden kann. Die Namen integrierter Backends sind reserviert – die Registry lehnt Anbieter ab, deren Name mit einem Backend im Repository kollidiert. Ein registriertes Backend wird automatisch in alle zentralen Oberflächen eingebunden (Backendauswahl in hermes setup, Prüfstatus im Dashboard, Überprüfungen durch hermes doctor, Behandlung von Containerpfaden und Arbeitsverzeichnissen sowie Entfernung von Geheimnissen), da der Kern an jeder Klassifizierungsstelle die Registry abfragt, statt eine fest codierte Namensliste zu verwenden.32

SSH-Backend (aus Sicherheitsgründen empfohlen – der Agent kann seinen eigenen Code nicht ändern):10

terminal:
  backend: ssh
# In ~/.hermes/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa

Docker-Backend:

terminal:
  backend: docker
  docker_image: python:3.11-slim

Containerressourcen (gilt für docker, singularity, modal und daytona):10

terminal:
  container_cpu: 1
  container_memory: 5120          # MB (default 5GB)
  container_disk: 51200           # MB (default 50GB)
  container_persistent: true      # Persist filesystem across sessions

Mit container_persistent: true bleiben installierte Pakete, Dateien und Konfigurationen sitzungsübergreifend erhalten.10

Alle Container-Backends werden mit Sicherheitsvorkehrungen ausgeführt: schreibgeschütztes Root-Dateisystem (Docker), Entfernung aller Linux-Capabilities außer DAC_OVERRIDE, CHOWN und FOWNER, keine Rechteausweitung, PID-Begrenzung (256 Prozesse), vollständige Namespace-Isolierung und dauerhafter Arbeitsbereich über Volumes.10

Hintergrundprozesse

Das Terminal-Tool unterstützt die Ausführung im Hintergrund mit expliziter Prozessverwaltung:10

terminal(command="pytest -v tests/", background=true)
# Returns: {"session_id": "proc_abc123", "pid": 12345}

process(action="list")                            # Show all running processes
process(action="poll", session_id="proc_abc123")  # Check status
process(action="wait", session_id="proc_abc123")  # Block until done
process(action="log", session_id="proc_abc123")   # Full output
process(action="kill", session_id="proc_abc123")  # Terminate
process(action="write", session_id="proc_abc123", data="y")  # Send input

Der PTY-Modus (pty=true) ermöglicht interaktive CLI-Tools wie Codex und Claude Code.10

Sudo

Benötigt ein Befehl sudo, fordert Hermes Sie zur Eingabe Ihres Passworts auf, das für die Sitzung zwischengespeichert wird. Alternativ können Sie SUDO_PASSWORD in ~/.hermes/.env festlegen.10


Multi-Agent-Kanban (ab v0.13.0)

Mit v0.13.0 wird die Zusammenarbeit mehrerer Agenten zu einem grundlegenden Bestandteil: einem dauerhaften Kanban-Board, das Aufgaben, Status und Mitarbeiteridentitäten agenten- und neustartübergreifend erfasst.18 Das Board sorgt dafür, dass ein Schwarm von Hermes-Mitarbeitern seine Arbeit tatsächlich abschließt, statt wegen ins Leere laufender Übergaben zum Stillstand zu kommen.

Mechanismus Funktionsweise
Heartbeats Jeder Mitarbeiter sendet regelmäßig ein Lebenszeichen, solange er für eine Aufgabe zuständig ist. Bleibt ein Heartbeat aus, gilt der Mitarbeiter als verdächtig und die Aufgabe wird zur erneuten Übernahme freigegeben.
Rückübernahme Ein anderer Mitarbeiter kann eine aufgegebene Aufgabe mitsamt vollständigem Aufgabenstatus und bisherigen Teilergebnissen übernehmen.
Zombie-Erkennung Mitarbeiter, die beendet werden, ohne eine Aufgabe als abgeschlossen zu markieren, werden automatisch für die Übernahme neuer Arbeit gesperrt. So sammeln sich im Schwarm keine verwaisten Identitäten an.
Halluzinationskontrolle Ergebnisse, die die Kontrolle nicht bestehen, werden mit einer Begründung an das Board zurückgegeben, statt als abgeschlossen markiert zu werden.
Aufgabenspezifisches max_retries Überschreibt das standardmäßige Wiederholungsbudget für eine bekanntermaßen fehleranfällige Aufgabe.
Projektübergreifende Boards Ein einziges Hermes-Home kann mehrere unabhängige Boards beherbergen.

Das Kanban-Board lässt sich auf der Zielseite gut mit /goal (Ralph-Schleife mit festgeschriebenem Ziel) und für die Erzeugungssemantik mit dem vorhandenen Tool delegate_task kombinieren. So entsteht ein Schwarmmuster, bei dem alle Agenten eine gemeinsame verlässliche Quelle dafür nutzen, was als Nächstes zu tun ist, wer daran arbeitet und wo es Probleme gibt.

Was ist ein Hermes-Schwarm?

Ein Schwarm besteht aus mehreren Hermes-Mitarbeitern, die parallel an einem gemeinsamen Kanban-Board arbeiten. Es handelt sich nicht um ein separates Subsystem, das Sie aktivieren müssen – vielmehr wird ein Schwarm durch das Board ermöglicht. Das Board liefert das eine Element, das parallele Agenten nicht selbst bereitstellen können: eine einzige maßgebliche Antwort auf die Frage: Welche Aufgabe sollte ich als Nächstes übernehmen, und arbeitet bereits jemand daran?

Mit v0.15.0 wurde dieses Muster zu einer unterstützten Topologie weiterentwickelt. Hinzu kamen eine Schwarmtopologie zur Koordination paralleler Mitarbeiter, die automatische Zerlegung eines übergeordneten Ziels in Teilaufgaben, aufgabenspezifische Modellüberschreibungen, geplante Aufgaben und eine Worktree-Verwaltung, damit parallele Mitarbeiter nicht im selben Checkout miteinander in Konflikt geraten.59

Problem bei einer einfachen Multi-Agent-Konfiguration Lösung des Boards
Zwei Mitarbeiter übernehmen dieselbe Aufgabe Die Aufgabenzuständigkeit wird unter Angabe der Mitarbeiteridentität beansprucht
Ein Mitarbeiter fällt während einer Aufgabe aus und die Arbeit geht verloren Der Heartbeat läuft ab und die Aufgabe wird mit den bisherigen Teilergebnissen erneut übernommen
Ein abgestürzter Mitarbeiter „blockiert“ Aufgaben für immer Die Zombie-Erkennung hindert ihn daran, neue Arbeit zu übernehmen
Ein teures Modell für jede Teilaufgabe Aufgabenspezifische Modellüberschreibungen – günstige Modelle für mechanische Teilaufgaben
Parallele Mitarbeiter bearbeiten dieselben Dateien Die Worktree-Verwaltung isoliert den Checkout jedes Mitarbeiters

In der Praxis geben Sie dem Schwarm ein Ziel, lassen es durch die automatische Zerlegung in Board-Aufgaben aufteilen und überlassen den Mitarbeitern das Beanspruchen, Ausführen und Zurückgeben der Ergebnisse. Das Wiederholungsbudget gilt pro Aufgabe (max_retries), sodass eine einzige fehleranfällige Teilaufgabe nicht die Fehlertoleranz des gesamten Durchlaufs aufbraucht. Da das Board dauerhaft ist, übersteht ein Schwarm Neustarts – die Mitarbeiter verbinden sich erneut und setzen ihre Arbeit mit demselben Status fort.

Ein Schwarm ist nur so gut wie seine Zerlegung. Das Board koordiniert Mitarbeiter, kann jedoch ein schlecht aufgeteiltes Ziel nicht in ein gutes verwandeln. Aufgaben mit verborgenem gemeinsamem Status geraten weiterhin aneinander – mit oder ohne Worktrees.


Skills-System

Skills sind Wissensdokumente, die bei Bedarf geladen werden, wenn der Agent sie benötigt. Sie folgen dem Prinzip der schrittweisen Offenlegung, um den Token-Verbrauch zu minimieren, und sind mit dem offenen Standard von agentskills.io kompatibel.11

Alle Skills befinden sich in ~/.hermes/skills/ — dem primären Verzeichnis und der maßgeblichen Quelle. Bei einer Neuinstallation werden die mitgelieferten Skills aus dem Repository kopiert. Über den Hub installierte und vom Agenten erstellte Skills werden ebenfalls hier abgelegt.11

Schrittweise Offenlegung

Level 0: skills_list()           → [{name, description, category}, ...]   (~3k tokens)
Level 1: skill_view(name)        → Full content + metadata                 (varies)
Level 2: skill_view(name, path)  → Specific reference file                 (varies)

Der Agent lädt den vollständigen Inhalt eines Skill erst dann, wenn er ihn tatsächlich benötigt.11

SKILL.md-Format

---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
platforms: [macos, linux]      # Optional — restrict to OS platforms
metadata:
  hermes:
    tags: [python, automation]
    category: devops
    fallback_for_toolsets: [web]     # Conditional activation
    requires_toolsets: [terminal]    # Conditional activation
    config:                          # Config.yaml settings
      - key: my.setting
        description: "What this controls"
        default: "value"
        prompt: "Prompt for setup"
---

# Skill Title

## When to Use
Trigger conditions for this skill.

## Procedure
1. Step one
2. Step two

## Pitfalls
- Known failure modes and fixes

## Verification
How to confirm it worked.

Bedingte Aktivierung

Skills können sich abhängig von den verfügbaren Tools ein- oder ausblenden. Dies eignet sich besonders für Fallback-Skills — kostenlose oder lokale Alternativen, die nur angezeigt werden sollen, wenn ein Premium-Tool nicht verfügbar ist:11

Feld Verhalten
fallback_for_toolsets Skill wird ausgeblendet, wenn die aufgeführten toolsets verfügbar sind
fallback_for_tools Wie oben, prüft jedoch einzelne Tools
requires_toolsets Skill wird ausgeblendet, wenn die aufgeführten toolsets nicht verfügbar sind
requires_tools Wie oben, prüft jedoch einzelne Tools

Beispiel: Der integrierte Skill duckduckgo-search verwendet fallback_for_toolsets: [web]. Wenn FIRECRAWL_API_KEY gesetzt ist, steht das Web-toolset zur Verfügung und der Agent verwendet web_search — der DuckDuckGo-Skill bleibt ausgeblendet. Ohne den API-Schlüssel erscheint der DuckDuckGo-Skill automatisch als Fallback.11

Vom Agenten verwaltete Skills

Der Agent kann seine eigenen Skills über das Tool skill_manage erstellen, aktualisieren und löschen. Dies ist das prozedurale Gedächtnis des Agenten — wenn er einen nicht trivialen Arbeitsablauf ermittelt, speichert er die Vorgehensweise als Skill zur späteren Wiederverwendung.11

Wann der Agent Skills erstellt:11 - Nachdem er eine komplexe Aufgabe (mindestens 5 Tool-Aufrufe) erfolgreich abgeschlossen hat - Wenn Fehler oder Sackgassen auftraten und er den funktionierenden Lösungsweg gefunden hat - Wenn der Benutzer seine Vorgehensweise korrigiert hat - Wenn er einen nicht trivialen Arbeitsablauf entdeckt hat

Aktionen:11

Aktion Verwendung
create Neuen Skill von Grund auf erstellen
patch Gezielte Korrekturen (bevorzugt — am Token-effizientesten)
edit Umfassende strukturelle Überarbeitungen
delete Einen Skill vollständig entfernen
write_file Unterstützende Dateien hinzufügen oder aktualisieren
remove_file Eine unterstützende Datei entfernen

Skill Hub

Durchsuchen, suchen, installieren und verwalten Sie Skills aus Online-Registern:611

hermes skills browse                          # Browse all hub skills
hermes skills browse --source official        # Browse official optional skills
hermes skills search kubernetes               # Search all sources
hermes skills search react --source skills-sh # Search skills.sh directory
hermes skills inspect openai/skills/k8s       # Preview before installing
hermes skills install openai/skills/k8s       # Install with security scan
hermes skills install skills-sh/anthropics/skills/pdf --force
hermes skills check                           # Check for upstream updates
hermes skills update                          # Reinstall changed hub skills
hermes skills audit                           # Re-scan installed hub skills
hermes skills uninstall k8s
hermes skills publish skills/my-skill --to github --repo owner/repo
hermes skills tap add myorg/skills-repo       # Add custom GitHub source

Integrierte Hub-Quellen:11

Quelle Beispiel Hinweise
official official/security/1password Optionale, mit Hermes ausgelieferte Skills (integriertes Vertrauen)
skills-sh skills-sh/vercel-labs/agent-skills/vercel-react-best-practices Öffentliches Skills-Verzeichnis von Vercel
well-known well-known:https://mintlify.com/docs/.well-known/skills/mintlify URL-basierte Erkennung auf Websites, die /.well-known/skills/index.json veröffentlichen
github openai/skills/k8s Direkte Installationen aus GitHub-Repositorys oder -Pfaden
clawhub — Skills-Marktplatz eines Drittanbieters
lobehub — Konvertierung des LobeHub-Agentenkatalogs
browse-sh — Skills-Quelle von Browserbase

Standardmäßige GitHub-taps (ohne Einrichtung durchsuchbar): openai/skills, anthropics/skills, huggingface/skills, NVIDIA/skills, garrytan/gstack. Die Quelle claude-marketplace wurde in v0.20.0 entfernt; browse-sh hat sie in der Quellenliste ersetzt.1155

Sicherheitsprüfung

Alle über den Hub installierten Skills durchlaufen eine Sicherheitsprüfung auf Datenexfiltration, Prompt-Injection, destruktive Befehle, Hinweise auf Angriffe über die Lieferkette und weitere Bedrohungen.11

Vertrauensstufen:11

Stufe Quelle Richtlinie
builtin Wird mit Hermes ausgeliefert Immer vertrauenswürdig
official optional-skills/ im Repository Integriertes Vertrauen, keine Drittanbieterwarnung
trusted Vertrauenswürdige Register (openai/skills, anthropics/skills) Weniger restriktive Richtlinie
community Alles andere Nicht gefährliche Befunde können mit --force übergangen werden; Einstufungen als dangerous bleiben blockiert

--force kann nicht gefährliche Richtlinienblockierungen für Community-Skills übergehen. Eine Einstufung der Sicherheitsprüfung als dangerous wird dadurch nicht außer Kraft gesetzt.11

Externe Skill-Verzeichnisse

Sie können Hermes auf zusätzliche Skill-Verzeichnisse verweisen, die zusammen mit dem lokalen Verzeichnis durchsucht werden:11

skills:
  external_dirs:
    - ~/.agents/skills
    - /home/shared/team-skills
    - ${SKILLS_REPO}/skills

Die Pfade unterstützen die Erweiterung von ~ sowie die Ersetzung von Umgebungsvariablen im Format ${VAR}. Externe Verzeichnisse sind schreibgeschützt — wenn der Agent einen Skill erstellt oder bearbeitet, schreibt er stets nach ~/.hermes/skills/. Existiert ein Skill unter demselben Namen an beiden Orten, hat die lokale Version Vorrang.11

Angeheftete Skills: skills.auto_load (Zeitraum von v0.21.4)

Skill-Namen, die in config.yaml unter skills.auto_load aufgeführt sind, werden in jeder neuen Sitzung vollständig geladen und angeheftet — gleichermaßen in CLI, TUI, gateway, cron und API:51

skills:
  auto_load:
    - team-conventions
    - deploy-checklist

Die Liste wird einmal aufgelöst, wenn der Prompt des Agenten erstmals erstellt wird. Bei einem fehlenden oder deaktivierten Namen wird eine Warnung ausgegeben und der Eintrag übersprungen, anstatt die Sitzung abzubrechen. HERMES_IGNORE_RULES (der Mechanismus hinter --ignore-rules) unterdrückt die Liste wie den übrigen automatisch eingefügten Kontext. Dies ist die Entsprechung für dauerhaft geltende Anweisungen zu -s/--skills, womit Skills nur für eine einzelne Sitzung vorab geladen werden.51


Persistenter Speicher

Hermes verfügt über einen begrenzten, kuratierten Speicher, der sitzungsübergreifend erhalten bleibt. Der Speicher des Agenten besteht aus zwei Dateien, die beide unter ~/.hermes/memories/ gespeichert sind:12

Datei Zweck Zeichenbegrenzung
MEMORY.md Persönliche Notizen des Agenten — Fakten zur Umgebung, Konventionen, gewonnene Erkenntnisse 2.200 Zeichen (~800 Tokens)
USER.md Benutzerprofil — Präferenzen, Kommunikationsstil, Erwartungen 1.375 Zeichen (~500 Tokens)

Beide werden beim Sitzungsstart als unveränderlicher Snapshot in den System-Prompt eingefügt. Der Agent verwaltet seinen eigenen Speicher über das memory-Tool — mit add, replace oder remove.12

Muster des unveränderlichen Snapshots: Die Einfügung in den System-Prompt wird einmal beim Sitzungsstart erfasst und während der Sitzung nicht mehr geändert. Das ist beabsichtigt, da so der Präfix-Cache des LLM aus Leistungsgründen erhalten bleibt. Während einer Sitzung vorgenommene Änderungen werden sofort auf dem Datenträger gespeichert, erscheinen jedoch erst in der nächsten Sitzung im System-Prompt.12

Was gespeichert werden sollte

Folgendes speichern (der Agent erledigt dies proaktiv):12 - Benutzerpräferenzen: „Ich bevorzuge TypeScript gegenüber JavaScript“ → user - Fakten zur Umgebung: „Auf diesem Server läuft Debian 12 mit PostgreSQL 16“ → memory - Korrekturen: „Verwenden Sie für Docker-Befehle kein sudo; der Benutzer gehört der docker-Gruppe an“ → memory - Konventionen: „Das Projekt verwendet Tabulatoren, eine Zeilenbreite von 120 Zeichen und Docstrings im Google-Stil“ → memory - Abgeschlossene Arbeiten: „Datenbank am 15. Januar 2026 von MySQL zu PostgreSQL migriert“ → memory

Folgendes überspringen:12 - Triviale oder offensichtliche Informationen - Leicht erneut zu ermittelnde Fakten - Rohdaten-Dumps (zu groß für den Speicher) - Sitzungsspezifische, kurzlebige Informationen - Informationen, die bereits in Kontextdateien enthalten sind

Sitzungssuche

Neben MEMORY.md und USER.md kann der Agent mit dem session_search-Tool seine früheren Unterhaltungen durchsuchen. Alle CLI- und Messaging-Sitzungen werden mit FTS5-Volltextsuche in SQLite (~/.hermes/state.db) gespeichert. Seit der Überarbeitung in v0.15.0 ist überhaupt kein LLM mehr am Tool beteiligt — es gibt die gespeicherten Gesprächsinhalte direkt zurück (in den Worten der Quelle: Das „single-shape tool returns DB content directly“). Dadurch wurde es 4.500-mal schneller und verursacht keine API-Kosten mehr.125934

Funktion Persistenter Speicher Sitzungssuche
Kapazität Insgesamt ~1.300 Tokens Unbegrenzt (alle Sitzungen)
Geschwindigkeit Sofort (im System-Prompt) Eine FTS-Abfrage — seit v0.15.0 kein LLM-Aufruf
Anwendungsfall Wichtige Fakten sind stets verfügbar Bestimmte frühere Unterhaltungen finden
Verwaltung Manuell vom Agenten kuratiert Automatisch — alle Sitzungen werden gespeichert
Token-Kosten Fest pro Sitzung (~1.300 Tokens) Bei Bedarf

Im Veröffentlichungszeitraum von v0.21.4 kamen zwei Ergänzungen hinzu, die beide beim Tag v2026.9.21 verifiziert wurden. Erstens Zeitgrenzen: Die Discovery-Struktur akzeptiert after (eine inklusive Untergrenze für die Startzeit der Sitzung) und before (eine exklusive Obergrenze), jeweils als ISO-Datum/-Uhrzeit — ein reiner Datumswert steht für Mitternacht UTC an diesem Tag — oder als relative Dauer (7d, 24h, 2w). Diese Angaben sind nur für Abfragen vorgesehen, die tatsächlich einen Zeitraum nennen; sort bleibt eine Gewichtung der Rangfolge und keine Grenze. Zweitens gibt es einen Recall-Wiederholungsversuch bei null Ergebnissen: Da FTS5 zwischen Begriffen implizit AND verwendet, kann eine umformulierte Abfrage mit mehreren Wörtern einen gespeicherten Satz übersehen, sobald auch nur eines dieser Wörter darin fehlt. Bleiben daher sowohl die exakte Abfrage als auch sämtliche Substring-Fallbacks ohne Ergebnis, wird der Index erneut nach Übereinstimmungen mit BELIEBIGEN Begriffen durchsucht, wobei Zeilen mit mehr abgedeckten Begriffen in der Rangfolge weiter oben stehen. Treffer behalten die Semantik exakter Übereinstimmungen (der Wiederholungsversuch erfolgt nur, wenn keine Ergebnisse gefunden wurden); Abfragen mit explizitem OR/NOT, Einzelbegriff-Abfragen und über CJK geleitete Abfragen bleiben unverändert.51

Externe Speicheranbieter

Für einen umfangreicheren persistenten Speicher über MEMORY.md und USER.md hinaus enthält Hermes sieben Plugins für externe Speicheranbieter: Honcho, OpenViking, Mem0, Holographic, RetainDB, ByteRover und Supermemory. Weitere, etwa Hindsight, lassen sich aus dem Plugin-Katalog installieren.12

Hindsight war bis einschließlich v0.21.4 im Kernverzeichnis enthalten und wurde in v0.21.5 in den von Vectorize gepflegten Katalog verschoben. Bestehende Installationen werden automatisch migriert: Ist memory.provider: hindsight festgelegt, installiert hermes update das Katalog-Plugin in jedem Profilverzeichnis, in dem es angegeben ist; fehlt es weiterhin, wird es beim ersten Start des Agenten installiert. Bei security.allow_lazy_installs: false protokolliert der Startvorgang des Agenten lediglich eine Meldung. Führen Sie daher selbst hermes plugins install hindsight aus. Das Plugin wird unter ~/.hermes/plugins/hindsight/ abgelegt und zu plugins.enabled hinzugefügt; memory.provider, memory.hindsight.*, HINDSIGHT_API_KEY und Ihre Speicherdaten bleiben unverändert. Prüfen Sie den Status mit hermes memory status und hermes plugins list. Das pip-Extra hermes-agent[hindsight] ist entfallen.53

Externe Anbieter werden parallel zum integrierten Speicher ausgeführt (sie ersetzen ihn niemals) und ergänzen Funktionen wie Wissensgraphen, semantische Suche, automatische Faktenextraktion und sitzungsübergreifende Benutzermodellierung:612

hermes memory setup         # Pick a provider and configure it
hermes memory status        # Check what's active
hermes memory off           # Disable external provider (built-in only)

Es kann jeweils nur ein externer Anbieter aktiv sein. Der integrierte Speicher ist immer aktiv.6

Automatische Sitzungsfortsetzung (v0.13.0+)

Mit v0.13.0 können Unterbrechungen während der Agentenausführung überstanden werden. Das gateway setzt unterbrochene Sitzungen nach einem Neustart automatisch fort; Neustarts durch /update bewahren den Sitzungsstatus während des Upgrades; beim erneuten Laden von Quelldateien während der Entwicklung bleibt die aktive Sitzung bestehen, statt eine neue zu erzwingen.18 In der Praxis bedeutet das: Länger laufende gateway-Aufgaben und cron-gesteuerte Jobs setzen ihr Kontextfenster bei einem Prozessneustart nicht mehr zurück.

Checkpoints v2 (v0.13.0+)

Die Statuspersistenz wurde in v0.13.0 als Single-Store-Design mit echter Bereinigung, Schutzmechanismen für den Datenträger und ohne verwaiste Schatten-Repositories neu implementiert.18 Das vorherige checkpoint-System sammelte bei lang laufenden profiles fortlaufend Statusdaten auf dem Datenträger an. Der v2-Speicher setzt dem lokalen checkpoint-Speicher eine feste Obergrenze und entfernt die doppelte Buchführung, die dieses Wachstum verursachte. Eine Änderung der benutzerseitigen Konfiguration ist nicht erforderlich; beim nächsten Schreiben eines checkpoints wird der v2-Pfad verwendet.


Persönlichkeit und SOUL.md

SOUL.md ist die primäre Identität einer Hermes-Instanz. Sie belegt Platz 1 im System-Prompt und ersetzt die fest codierte Standardidentität.13

Hermes legt automatisch eine standardmäßige SOUL.md unter ~/.hermes/SOUL.md an (beziehungsweise unter $HERMES_HOME/SOUL.md für benutzerdefinierte profiles). Vorhandene Benutzerdateien werden niemals überschrieben. Hermes lädt SOUL.md ausschließlich aus HERMES_HOME — im aktuellen Arbeitsverzeichnis wird nicht danach gesucht. Dadurch bleibt die Persönlichkeit projektübergreifend vorhersehbar.13

Was in SOUL.md gehört

Verwenden Sie die Datei für dauerhafte Vorgaben zu Ausdruck und Persönlichkeit:13 - Ton - Kommunikationsstil - Grad der Direktheit - Standardinteraktionsstil - stilistisch zu vermeidende Elemente - Umgang von Hermes mit Unsicherheit, Meinungsverschiedenheiten und Mehrdeutigkeit

Weniger geeignet ist sie für:13 - einmalige Projektanweisungen - Dateipfade - Repository-Konventionen - vorübergehende Workflow-Details

Diese gehören in AGENTS.md, nicht in SOUL.md.

SOUL.md im Vergleich zu AGENTS.md

Dies ist die wichtigste Unterscheidung bei der Identitätsverwaltung von Hermes:13

SOUL.md — Identität, Ton, Stil, Kommunikationsstandards und Verhalten auf Persönlichkeitsebene.

AGENTS.md — Projektarchitektur, Programmierkonventionen, Tool-Präferenzen, Repository-spezifische Workflows, Befehle, Ports, Pfade und Bereitstellungshinweise.

Eine hilfreiche Faustregel: Soll etwas Sie überallhin begleiten, gehört es in SOUL.md. Gehört es zu einem Projekt, gehört es in AGENTS.md.13

Integrierte Persönlichkeiten

Hermes enthält integrierte Persönlichkeiten, zwischen denen Sie mit /personality wechseln können:1333

Name Beschreibung
helpful Freundlicher Allzweckassistent
concise Kurze, prägnante Antworten
technical Detaillierter und präziser technischer Experte
creative Innovatives Denken jenseits gewohnter Muster
teacher Geduldiger Lehrender mit verständlichen Beispielen
kawaii Niedliche Ausdrücke, Glitzer und Begeisterung
catgirl Neko-chan mit katzenartigen Ausdrücken
pirate Kapitän Hermes, ein technisch versierter Freibeuter
shakespeare Bardenhafte Prosa mit dramatischem Flair
surfer Entspannte Bro-Stimmung
noir Erzählstil eines abgebrühten Detektivs
uwu Maximale Niedlichkeit mit uwu-Sprechweise
philosopher Tiefgründige Betrachtung jeder Anfrage
hype MAXIMALE ENERGIE

Benutzerdefinierte Persönlichkeiten in config.yaml:13

agent:
  personalities:
    codereviewer: >
      You are a meticulous code reviewer. Identify bugs, security issues,
      performance concerns, and unclear design choices. Be precise and constructive.

Wechseln Sie anschließend mit /personality codereviewer.

SOUL.md im Vergleich zu /personality

SOUL.md bildet die grundlegende Ausdrucksweise. /personality ist eine sitzungsbezogene Ergänzung.13 Behalten Sie eine pragmatische standardmäßige SOUL.md bei und verwenden Sie dann /personality teacher für ein Lerngespräch oder /personality creative für Brainstorming.


Nous Tool Gateway (v0.10.0+)

Seit Hermes Agent v0.10.0 (2026-04-16) erhalten zahlende Nous Portal-Abonnenten über ihre vorhandenen Portal-Anmeldedaten verwalteten Zugriff auf eine kuratierte Auswahl von Tools — ohne zusätzliche API-Schlüssel verwalten zu müssen.61 Hermes CLI selbst bleibt MIT-lizenziert und vollständig quelloffen. Neu ist, dass Ihre Portal-Authentifizierung nun mehr als nur die Modellinferenz freischaltet.

Der schnellste Einstieg ist hermes setup --portal, das im README als „Ein Befehl nach einer Neuinstallation“ vorgestellt wird: Sie werden über OAuth angemeldet, Nous wird als Ihr Anbieter festgelegt und der Tool Gateway aktiviert. Anschließend verwalten Sie die Verbindung mit hermes portal. hermes portal login (die Standardeinstellung, wenn kein Unterbefehl angegeben wird) führt dasselbe einmalige Onboarding aus; hermes portal info gibt die „Zusammenfassung der Portal-Authentifizierung und des Tool Gateway-Routings“ aus; hermes portal open öffnet die Abonnementseite in Ihrem Standardbrowser; hermes portal tools listet die gateway-Tools auf und zeigt, welche davon über Nous geleitet werden. hermes portal status bleibt als verborgener Alias für die Abwärtskompatibilität mit info erhalten, und in der CLI-Referenz der Dokumentation zu diesem Tag wird der Unterbefehl weiterhin als status bezeichnet, sodass beide Varianten funktionieren.28

Inhalt des gateway

Tool Anbieter Anwendungsfall
Websuche Firecrawl Informationsabruf für agents, die aktuelle Informationen benötigen
Bildgenerierung FAL / FLUX 2 Pro Bilder direkt generieren, ohne einen FAL-Schlüssel zu konfigurieren
Text-to-Speech OpenAI TTS Sprachausgabe über Messaging-gateways
Browserautomatisierung Browser Use Headless-Navigation und Scraping

Funktionsweise

Der gateway wird über das neue Konfigurationsfeld use_gateway für jedes Tool einzeln aktiviert. Wenn Sie Portal-Anmeldedaten in hermes auth hinterlegt und den gateway für ein Tool aktiviert haben, werden die Aufrufe dieses Tools über das Portal geleitet. Andernfalls wird Ihr direkter API-Schlüssel verwendet, sofern einer vorhanden ist.

# config.yaml — per-tool gateway opt-in
tools:
  web_search:
    provider: firecrawl
    use_gateway: true          # route via Nous Portal subscription
  image_generation:
    provider: fal
    use_gateway: true

Priorität zur Laufzeit: Wenn der gateway verfügbar ist und für ein Tool use_gateway: true festgelegt wurde, bevorzugt Hermes den gateway, selbst wenn Sie zusätzlich einen direkten API-Schlüssel konfiguriert haben. Das ist für die Abrechnung relevant — gateway-Aufrufe werden über Ihr Portal-Abonnement abgerechnet und nicht vom Guthaben Ihres direkten API-Schlüssels abgezogen.

gateway aktivieren

hermes model                      # select Nous Portal (OAuth flow)
hermes tools                      # per-platform tool picker integrates gateway tools
hermes status                     # confirms gateway/subscription detection

Das Abonnement wird automatisch anhand der Portal-OAuth-Anmeldedaten erkannt, die Sie bereits in hermes auth hinterlegt haben — eine separate Anmeldung ist nicht erforderlich. Seit v0.19.0 können Sie das Abonnement außerdem direkt innerhalb einer Sitzung verwalten: /subscription zeigt Ihren Tarif und Ihr verbleibendes Kontingent an, gibt eine genaue Vorschau auf die Kosten eines Upgrades oder den Zeitpunkt, zu dem ein Downgrade wirksam wird, und übernimmt die Änderung mit Hinweisen zu geplanten Änderungen sowie einer Option zum Rückgängigmachen; mit /topup können Sie Guthaben aufladen. Die Desktop-App bietet eine entsprechende Registerkarte für Abrechnungseinstellungen.56

Preise und Zugang

Preise und Tarifbezeichnungen werden auf der Preisseite des Nous Portal veröffentlicht (https://portal.nousresearch.com/pricing). Dieser Leitfaden führt die Tarife nicht einzeln auf, da sie zum Portal-Produkt und nicht zu Hermes CLI gehören und sich unabhängig von Hermes-Versionen ändern. Registrieren Sie sich unter https://portal.nousresearch.com/ und informieren Sie sich auf der Preisseite über die aktuellen Tarife.

Kostenloser Nous-Tarif und geführter Erststart (v0.21.2+)

Seit v0.21.2 benötigen Sie nach einer Neuinstallation weder einen kostenpflichtigen Tarif noch einen API-Schlüssel, um einen funktionsfähigen agent zu erhalten: Kostenlose Inferenz und connectors sind sofort verfügbar, die Anmeldung erfolgt mit einem einzigen Befehl und /login startet den Anmeldevorgang direkt aus einem Chat heraus. Connector-Tools (Gmail, Linear, Notion und weitere) lassen sich wie jedes andere Tool über tool_search durchsuchen. Die Desktop-App bietet hinter HERMES_GUEST_ONBOARDING=1 einen geführten Erststart; ausschließlich der Literalwert 1 aktiviert ihn – ein eigener Test der Desktop-App bestätigt, dass 'true', '0' und ein leerer Wert ihn jeweils deaktiviert lassen, und die Startentscheidung wird in die Umgebung des gestarteten Backends geschrieben, sodass ein geerbter Wert niemals durchsickert.48

Seit dem Veröffentlichungszeitraum von v0.21.4 erfolgt die Verbindung dieser connectors als ein einziger, vom Backend gesteuerter Vorgang und nicht mehr über verteilte Logik in den einzelnen Frontends: Ein Aufruf des Tools manage_connections steuert im Backend eine rein datenbasierte Zustandsmaschine für Verbindungen (mit einer festen Vorgangsfrist von 300 Sekunden – bewusst nicht als Konfigurationsschlüssel umgesetzt), die Desktop, TUI und CLI jeweils als dieselbe Einrichtungskarte darstellen. Die Karte zeigt für jede fehlende Anmeldeinformation ein Feld an (Name, Eingabeaufforderung, Pflichtstatus) und deaktiviert ihre Aktionsschaltfläche, bis alle Pflichtfelder Text enthalten; das Backend erzwingt für jedes Frontend dieselbe Trennung, bei der ausschließlich Geheimnisse übermittelt werden.51

Hinweis zur Einstellung

  • Die Umgebungsvariable HERMES_ENABLE_NOUS_MANAGED_TOOLS wurde in v0.10.0 entfernt. Verwaltete Tools werden nun über das Konfigurationsfeld use_gateway für jedes Tool einzeln aktiviert und anhand des Status Ihres Portal-Abonnements freigegeben.61

Einordnung: Was diese Version nicht ist

Hermes Agent CLI ist nicht an ein Abonnement gebunden. Das Projekt bleibt MIT-lizenziert; sämtliche Kernfunktionen (CLI, skills, Speicher, Messaging-gateway, cron, MCP, lokales dashboard, BYOK für jeden Anbieter) funktionieren vollständig, ohne dass Sie dafür jemanden bezahlen müssen. v0.10.0 bietet Benutzern, die bereits für Nous Portal bezahlen, einen komfortableren Weg — der kostenlose Weg bleibt vollständig erhalten.


Messaging Gateway

Hermes kann als dauerhaft laufender gateway-Prozess betrieben werden, der über einen einzigen gateway-Prozess eine Verbindung zu 28 Messaging-Plattformen herstellt: Telegram, Discord, Slack, WhatsApp, Signal, SMS, E-Mail, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, Weixin (WeChat), BlueBubbles (iMessage), QQBot, Microsoft Teams, Tencent Yuanbao, Google Chat, LINE, SimpleX Chat, Photon (iMessage), WhatsApp Cloud API, WeCom Callback, Raft, IRC, ntfy, Buzz und ein generischer Webhook-Adapter.360171819 Die Zahl 28 stammt aus der Tabelle zum Plattformvergleich in der Dokumentation beim Tag v2026.8.31. Darunter definiert gateway/config.py 24 integrierte Mitglieder des Platform-Enums (einschließlich Nicht-Chat-Einträgen wie local, api_server, webhook, msgraph_webhook und relay) und ordnet jeden anderen Namen bei Bedarf einem der 22 mitgelieferten Adapterverzeichnisse unter plugins/platforms/ zu. Daher stimmt eine reine Zählung der Enum-Mitglieder oder Verzeichnisse nicht mit der Zahl aus der Dokumentation überein.25 v0.9.0 ergänzte iMessage über BlueBubbles (automatische Webhook-Registrierung, Einrichtungsassistent und Ausfallsicherheit) sowie native WeChat-Unterstützung über iLink Bot API mit WeCom Callback-Modus für Unternehmens-Apps.16 v0.11.0 ergänzte QQBot.60 v0.12.0 ergänzte Microsoft Teams und Tencent Yuanbao.17 Mit v0.13.0 kam Google Chat als 20. Plattform hinzu, basierend auf derselben modularen Adapterarchitektur. IRC und Microsoft Teams wurden ebenfalls auf das neue Adaptermuster mit generischen Plugin-Hooks für env_enablement_fn / cron_deliver_env_var umgestellt.18 v0.14.0 ergänzt LINE und SimpleX Chat und vervollständigt zugleich den Microsoft-Teams-Stack durchgängig mit Graph-Authentifizierung, Webhook-Listener, Pipeline-Laufzeit und ausgehender Zustellung.19 v0.17.0 (19. Juni 2026) ergänzt iMessage ohne Relay über Photon Spectrum (Gerätecode-OAuth mit hermes photon login — kein Mac-/BlueBubbles-Relay erforderlich), den offiziellen WhatsApp Business Cloud API-Adapter (wodurch kein Bridge-Prozess mehr erforderlich ist), SimpleX-Gruppen und native Anhänge sowie Raft als mitgeliefertes Plattform-Plugin.21 Zwei weitere Plattformen erscheinen ohne besondere Erwähnung in den Versionshinweisen in der Dokumentationstabelle: ntfy ist ein schlanker HTTP-Pub/Sub-Push-Kanal (Sie abonnieren ein Thema über die mobile ntfy-App, senden eine Nachricht an das Thema, um mit dem Agenten zu sprechen, und erhalten die Antwort auf Ihrem Smartphone; dies funktioniert mit dem öffentlichen Server ntfy.sh oder einer selbst gehosteten Instanz und erfordert weder SDK noch einen Daemon), während Buzz Hermes mit einer Buzz-Community verbindet, der quelloffenen Plattform von Block für die Zusammenarbeit zwischen Menschen und Agenten auf Basis des Nostr-Protokolls. Für ausgehende Nachrichten ruft der Adapter die CLI buzz auf, für eingehende Nachrichten nutzt er ein natives Nostr-WebSocket-Abonnement. Beide werden über hermes gateway setup eingerichtet.25

Einrichtung

hermes gateway setup                # Interactive platform configuration
hermes gateway install              # Install as user service (systemd/launchd)
hermes gateway start                # Start the installed service
hermes gateway stop
hermes gateway restart
hermes gateway status
hermes gateway run                  # Run in foreground (debugging)

Die interaktive Einrichtung führt Sie durch die Anbindung jeder Plattform: API-Token, Bot-IDs, Kanalzuordnungen und Zulassungslisten.6

Nachrichtenfluss

Aus der vorgelagerten Architekturdokumentation:3

Platform event → Adapter.on_message() → MessageEvent
  → GatewayRunner._handle_message()
    → authorize user
    → resolve session key
    → create AIAgent with session history
    → AIAgent.run_conversation()
    → deliver response back through adapter

Jede Messaging-Plattform durchläuft dieselbe AIAgent-Konversationsschleife wie die CLI. Deshalb funktionieren Slash-Befehle an beiden Stellen identisch und ein in Telegram geplanter cron-Job kann seine Ausgabe an Discord übermitteln — die Unterschiede zwischen den Plattformen bestehen lediglich an den Schnittstellen.3

v0.19.0 ergänzt profilbasiertes Nachrichten-Routing und dauerhafte Zustellung. Ein einzelner multiplexender gateway, der ein Bot-Token gemeinsam nutzt, kann bestimmte Server, Kanäle oder Threads unterschiedlichen profiles zuordnen — jeweils mit vollständig isolierter Konfiguration, eigenen skills, eigenem Speicher und eigenen Geheimnissen. Dafür steht auch die Überschreibung GATEWAY_MULTIPLEX_PROFILES zur Verfügung. Dank umfassender Härtungsmaßnahmen kann ein einziges falsch konfiguriertes profile nicht mehr den gesamten gateway zum Absturz bringen. Intern wurde der Routing-Index nach state.db verschoben (sessions.json ist jetzt nur noch ein optionaler Legacy-Spiegel), und endgültige Antworten werden rund um den Plattformversand in einem dauerhaften Register offener Zustellungsverpflichtungen erfasst. Führt ein gateway-Absturz dazu, dass eine fertige Antwort nicht zugestellt wird, erfolgt die Zustellung beim nächsten Start erneut, statt die Antwort unbemerkt zu verlieren.56 Mit v0.21.2 wurde die Isolation zwischen gerouteten profiles weiter gehärtet. Dabei wurde eine Reihe profilübergreifender Datenlecks genau in dieser Multiplex-Konfiguration geschlossen: übernommene Zulassungslisten, an den Host des Standard-profiles gesendete Anmeldedaten, Geheimnisse aus dem Vault des Standard-profiles, die stdio-MCP-Server erreichten, profilübergreifende MEDIA:-Anhänge sowie das Nous-Bearer-Token eines anderen profiles, das in prozessbezogenen Zwischenspeichern erhalten blieb (#107609–#107630).48

v0.21.1 macht Konversationsgrenzen ausschließlich explizit. Die Dokumentation zum Sitzungslebenszyklus beim Tag v2026.9.7 beschreibt den Vertrag in vier Sätzen: „Weder Inaktivität noch die verstrichene Zeit führen jemals zu einer neuen Konversation. /new und /reset setzen eine explizite Grenze; die Kontextkomprimierung verwaltet weiterhin lange Verläufe. Veraltete Timer-Konfigurationen werden ignoriert. Der vorhandene Datentyp SessionResetPolicy dient nur als inaktive Kompatibilitätsstruktur und nicht als Laufzeitrichtlinie.“ Eine explizite Unterbrechung setzt beim nächsten eingehenden Beitrag weiterhin eine Grenze, die Wiederherstellung berücksichtigt abgeschlossene Grenzen, statt sie erneut zu öffnen, und eine ausschließlich ressourcenbedingte Verdrängung lässt Konversationen fortsetzbar. Wenn eine Sitzung auf Ihrem gateway scheinbar „nie abläuft“, entspricht das inzwischen dem vorgesehenen Verhalten; beginnen Sie mit /new selbst eine neue Konversation.43

Seit dem Zeitfenster von v0.21.4 stellt ein zweiter Aufruf von hermes gateway run eine Verbindung her oder verweigert den Start, statt dieselbe Adresse doppelt zu binden. Pro Host und Betriebssystembenutzer gilt: ein hermes serve und ein hermes gateway run, die jeweils alle profiles multiplexen. Wenn Sie einen gateway für ein profile starten, das bereits vom laufenden Multiplexer bedient wird, stellt der Befehl lediglich eine Verbindung her und wird mit Status 0 beendet. Wird das profile noch nicht bedient, fordert Hermes den Multiplexer auf, profiles/ erneut einzulesen, und stellt die Verbindung her, sobald das profile verfügbar ist. Kann der Multiplexer das profile nicht bedienen, verweigert der Befehl den Start, anstatt unbemerkt einen zweiten gateway auszuführen. --replace zielt nun auf diesen Hostprozess, unabhängig davon, von welchem profile er gestartet wurde, und --force überspringt die Rückfrage vollständig, wenn der zuständige Prozess feststeckt. Eigenständige gateways können weiterhin parallel betrieben werden: Handelt es sich beim laufenden gateway um den eigenständigen, nicht multiplexenden gateway eines anderen profiles, startet Ihr profile wie bisher einen eigenen daneben, bis diese Migration erzwungen wird (#109417). Werden zwei gateways gleichzeitig gestartet, wird der Prozess, der die Host-Sperre nicht erhält, mit Status 75 beendet; jeder von Hermes erzeugte Supervisor versucht den Start daraufhin erneut. Zu diesem Zeitpunkt ist der Datensatz des erfolgreichen Prozesses vorhanden, sodass der Wiederholungsversuch gemäß den obigen Regeln eine Verbindung herstellt oder den Start verweigert. Die Sperren und der Rendezvous-Datensatz befinden sich unter $HERMES_GATEWAY_LOCK_DIR, andernfalls unter $XDG_STATE_HOME/hermes/gateway-locks (standardmäßig ~/.local/state/hermes/gateway-locks), und sind auf den Betriebssystembenutzer beschränkt. Ein Datensatz, dessen PID nicht mehr aktiv ist oder inzwischen von einem anderen Prozess verwendet wird, gilt als veraltet und wird ignoriert. Ein abgestürzter gateway blockiert daher nicht den nächsten Start. Die Desktop-App folgt derselben Regel und stellt eine Verbindung zum laufenden Host-Backend her, statt ein zweites zu starten.51

Seit v0.21.5 ist Multiplexing nicht mehr optional. gateway.multiplex_profiles hat genau einen gültigen Wert: true. Fehlt der Schlüssel, wird er als aktiviert interpretiert und in die config.yaml des Standard-profiles geschrieben. Ein ausdrücklich gesetztes false wird direkt durch true ersetzt, wobei beim betreffenden gateway-Start einmalig ein eingerahmter Hinweis erscheint und im nächsten Bericht von hermes update erneut darauf hingewiesen wird. Zwei Steuerelemente ersetzen die frühere Möglichkeit zur Deaktivierung. Um ein einzelnes profile offline zu nehmen, ohne die Bots aller anderen zu stoppen, führen Sie hermes -p <name> gateway stop aus: Der Host parkt es mithilfe einer Markierungsdatei unter profiles/<name>/gateway.parked. Mit hermes -p <name> gateway start heben Sie diesen Zustand wieder auf; die Schaltflächen „Stop“ und „Start“ im Dashboard und in der Desktop-App bewirken dasselbe. Benötigt ein benanntes profile weiterhin einen eigenen gateway, setzt es in seiner eigenen config.yaml den Wert gateway.standalone: true. Der Host bedient dieses profile dann nie, und dessen Befehle stop/start wirken auf den eigenen Prozess. Die Dokumentation bezeichnet diesen Schlüssel als „vorübergehende Kompatibilitätslösung“ und nicht als unterstützte Topologie. Beim Standard-profile wird er unter Ausgabe einer Warnung ignoriert. Eine Aufteilung auf mehrere Betriebssystembenutzer oder ein HERMES_HOME außerhalb des Verzeichnisses profiles/ des Standard-Benutzerverzeichnisses erfordert weiterhin --force.53

Benutzerautorisierung und Pairing

hermes pairing list                    # Show pending and approved users
hermes pairing approve <platform> <code>
hermes pairing revoke <platform> <user-id>
hermes pairing clear-pending

Pairing-Codes verhindern, dass beliebige Fremde mit Ihrem gateway kommunizieren. Ein Benutzer sendet über seine Messaging-Plattform einen Pairing-Code; Sie genehmigen ihn mit hermes pairing approve. Von diesem Zeitpunkt an ist der Benutzer autorisiert.6

unauthorized_dm_behavior legt fest, welche Antwort die Direktnachricht eines Fremden vor dem Pairing erhält: pair sendet per Direktnachricht einen Pairing-Code, ignore verwirft die Nachricht ohne Rückmeldung, und decline, der im Zeitfenster von v0.21.4 ergänzte Wert, sendet einmalig eine höfliche Absage und reagiert anschließend 24 Stunden lang nicht mehr auf diesen Absender (#88028). Die Absage wird plattform- und absenderbezogen sowie aliasübergreifend dedupliziert. Ihr Text stammt aus unauthorized_dm_decline_message (einem globalen Schlüssel; ein leerer Wert verwendet die integrierte Antwort: „Hallo! Ich bin ein persönlicher Assistent und kann nur mit meinem Besitzer chatten, daher kann ich Ihnen leider nicht direkt helfen. Entschuldigung!“). Legen Sie das Verhalten global oder für einzelne Plattformen fest; bei der plattformspezifischen Konfiguration schreibt der Einrichtungsassistent den Wert:

# ~/.hermes/config.yaml
unauthorized_dm_behavior: decline      # global; gateway.unauthorized_dm_behavior also works
unauthorized_dm_decline_message: ""    # empty = built-in reply
platforms:
  telegram:
    unauthorized_dm_behavior: pair     # per-platform value always wins

Wenn nichts festgelegt ist, hängt der wirksame Standardwert von Ihren Zulassungslisten ab. Sind keine konfiguriert, lautet er pair. Sobald eine beliebige Zulassungsliste festgelegt wurde (GATEWAY_ALLOWED_USERS oder die Variable einer Plattform für zugelassene Benutzer, zugelassene Gruppenbenutzer oder zugelassene Gruppenchats), wird ignore verwendet. Die Zulassungsliste signalisiert nämlich einen bewusst eingeschränkten gateway, bei dem das Senden von Codes an unbekannte Kontakte störend wäre und potenziell Informationen preisgeben könnte (#9337). Ein globales ignore oder decline setzt diese Regel außer Kraft, ein globales pair hingegen nicht, da es nicht vom Standardwert zu unterscheiden ist. Soll Pairing trotz Zulassungsliste möglich bleiben, legen Sie pair für jede Plattform einzeln fest. (Falls für den Adapter einer Plattform eine eigene dm_policy festgelegt ist, wird diese vor der Zulassungslistenregel berücksichtigt.) E-Mail ist als Posteingang konzipiert und verwendet standardmäßig ignore, sofern nicht über den eigenen plattformspezifischen Schlüssel ausdrücklich eine andere Einstellung aktiviert wird; ein globaler Wert gilt dafür nicht. Wenn Sie in hermes gateway setup eine Plattform ohne Zulassungsliste konfigurieren, steht „Ablehnen“ als Antwortoption zur Verfügung.51


Geplante Aufgaben (Cron)

Hermes verfügt über ein vollwertiges Cron-System, in dem Jobs Agentenaufgaben und keine Shell-Befehle sind. Jeder geplante Job wird über einen neuen AIAgent mit dem konfigurierten Prompt und optional angehängten skills ausgeführt und übermittelt die Ergebnisse an eine beliebige Plattform:36

hermes cron list
hermes cron create --prompt "Check HN for AI news and summarize" --schedule "0 9 * * *" --deliver telegram
hermes cron edit <id>
hermes cron pause <id>
hermes cron resume <id>
hermes cron run <id>         # Trigger now on the next tick
hermes cron remove <id>
hermes cron status           # Check if scheduler is running
hermes cron tick             # Run due jobs once and exit

Alternativ können Sie einen Job innerhalb eines Messaging-Chats im Dialog erstellen:

Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.

Der Agent richtet den Cron-Job über seine Tools ein. Jobs werden dauerhaft in JSON gespeichert und bleiben auch nach Neustarts erhalten.3

Mit v0.21.0 erhielten geplante Jobs Gedächtnis und Urteilsvermögen. Dafür sorgen 4 Mechanismen, die alle mit dem Tag v2026.8.31 verifiziert wurden:3537

  • Kontinuität. continuity=true fügt bei jedem Durchlauf die eigene letzte Ausgabe eines Jobs ein, sodass ein Scout oder Monitor „aufwacht, sieht, was er zuletzt gemeldet hat, Duplikate vermeiden und dort weitermachen kann, wo er aufgehört hat“. Der eingefügte Hinweis lautet „Wiederholen Sie keine bereits gemeldeten Informationen“, der erste Durchlauf bleibt unverändert und intern wird das Flag als reservierter Eintrag self in context_from gespeichert. Schalten Sie es mit hermes cron create ... --continuity sowie hermes cron edit <job_id> --continuity / --no-continuity um.37
  • Dauerhafte Notizblöcke. Jeder Job erhält einen kleinen KV-Zwischenspeicher für Cursor, Markierungen und Beobachtungslisten (16 KB pro Wert, 64 KB pro Job – da er bei jedem Durchlauf in den Prompt eingefügt wird, sind diese Obergrenzen bewusst gewählt). Geschrieben wird mit hermes cron notepad <job_id> set <key> <value>, das der laufende Agent über sein Terminal-Tool aufruft.37
  • Monitor-Modus. Ein Job kann eine kostengünstige Quelle vom Typ monitor_script/monitor_url einbinden, die bei jedem Takt zuerst ausgeführt wird: Eine unveränderte Ausgabe (als exakte Bytes verglichen) unterdrückt den Agentendurchlauf vollständig – kein LLM-Aufruf, keine Zustellung, sondern ein stiller no_change-Durchlauf. Bei einer Änderung wird dagegen ein Diff-Block eingefügt und der Agent wie gewohnt ausgeführt. Geben Sie aus Monitor-Skripten stabile Ausgaben zurück, da sonst jeder Takt wie eine Änderung wirkt.37
  • Individueller Reasoning-Aufwand pro Job und Zustellung an Bot Chat. Mit --reasoning-effort legen Sie die Denktiefe eines Jobs (none bis ultra) fest und überschreiben damit die globalen sowie modellspezifischen Einstellungen für dessen Durchläufe. Mit deliver=bot-chat gelangt die Ausgabe als echte eingehende Nachricht in die kanonische Bot-Chat-Sitzung eines profile. Dort „kümmert sich der Bot um alles, was Maßnahmen erfordert, und antwortet in seinem Chat“, statt dass ein Mensch lediglich einen Kanal liest.37

MCP-Integration

Hermes unterstützt das Model Context Protocol sowohl als Client als auch als Server:6

Als Client – verbinden Sie Hermes mit externen MCP-Servern, um die verfügbaren Tools zu erweitern:

hermes mcp add <name> --url https://example.com/mcp
hermes mcp add <name> --command npx --args "-y,@modelcontextprotocol/server-github"
hermes mcp list
hermes mcp test <name>
hermes mcp remove <name>
hermes mcp configure <name>   # Toggle individual tool selection
hermes mcp login <name>       # Force re-auth for an OAuth server (--flow browser|device)
hermes mcp reauth [--all]     # Re-authenticate one OAuth server, or every one

Alternativ können Sie die Konfiguration manuell in config.yaml vornehmen:14

mcp_servers:
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"

Seit v0.19.0 werden MCP-Tools dem Modell nach dem Namensschema mcp__server__tool bereitgestellt. Jeder Tool-Name enthält somit den Namen seines Servers, sodass es nicht mehr zu Konflikten kommt, wenn 2 Server dasselbe Tool anbieten. Außerdem erscheinen Protokollbenachrichtigungen der MCP-Server in agent.log.56

v0.21.1 ergänzt einen Gerätecode-Ablauf für MCP OAuth: hermes mcp login <name> akzeptiert --flow {browser,device}. browser verwendet weiterhin den PKCE-Ablauf, während device eine Gerätecode-Anmeldung gemäß RFC 8628 für headless oder entfernte Systeme ermöglicht. Das Flag überschreibt die Konfiguration oauth.flow des Servers. Diese Version erzwingt außerdem während der gesamten OAuth-Sitzung die profile-Zuständigkeit, ignoriert fehlerhafte Caches mit OAuth-Metadaten, anstatt einen Server zu blockieren, und leitet Desktop-MCP-OAuth über clientlokale Callbacks weiter. -t/--toolsets filtert nun zudem, welche konfigurierten MCP-Server gestartet werden, sodass ein eingeschränkter Aufruf nicht benötigte Server nicht erst zeitaufwendig startet.44

Mit v0.21.0 wird die MCP-Oberfläche der Desktop-Anwendung zur Kommandozentrale: Server und Katalog erscheinen gemeinsam auf einer Seite, beliebige Inhalte lassen sich per Drag-and-drop importieren, Zustandsprüfungen im Hintergrund weisen auf bald ablaufende Authentifizierungen hin, bevor ein Tool-Aufruf fehlschlägt, und eine Kosten- und Nutzungsübersicht für die gesamte Serverflotte zeigt geschätzte Schema-Token sowie die Nutzung jedes Servers über 30 Tage. Über hermes://-Deep-Links kann nach ausdrücklicher Bestätigung ein MCP-Server installiert werden.35

Das Versionsfenster v0.21.4 ergänzt mcp.discovery_concurrency (Standardwert 4; 0 = unbegrenzt, #117373): Damit wird begrenzt, zu wie vielen konfigurierten MCP-Servern die Erkennung gleichzeitig eine Verbindung aufbaut. Die Verbindung wird weiterhin zu jedem Server hergestellt – die Begrenzung verhindert lediglich, dass alle gleichzeitig angesprochen werden. Bei einem nicht ganzzahligen oder negativen Wert wird eine Warnung protokolliert und auf den Standardwert zurückgegriffen.51

Als Server – stellen Sie Hermes-Konversationen anderen Agenten zur Verfügung:

hermes mcp serve
hermes mcp serve -v    # Verbose

Kontextkomprimierung

Hermes komprimiert lange Konversationen automatisch, damit sie in das Kontextfenster Ihres Modells passen. Die Komprimierungszusammenfassung erfolgt über einen separaten LLM-Aufruf, den Sie an einen beliebigen Anbieter oder Endpunkt richten können.4 Seit v0.20.6 verwendet die Richtlinie für das beibehaltene Ende standardmäßig lean (compression.tail_mode: lean). Beim angegebenen Tag befinden sich die Optionen für Modell, Anbieter und Endpunkt der Zusammenfassung unter auxiliary.compression.* und nicht mehr unter den älteren Schlüsseln compression.summary_*. Veraltete Schlüssel werden beim ersten Laden automatisch migriert (Konfigurationsversion 17).3031

compression:
  enabled: true
  threshold: 0.50          # Compress at this % of context limit
  threshold_tokens: null   # Optional absolute token cap -- trigger fires at the lower of ratio vs cap
  target_ratio: 0.20       # Fraction of threshold to preserve as recent tail (legacy tail mode)
  tail_mode: lean          # Tail retention: "lean" (default) or "legacy"
  protect_last_n: 20       # Min recent messages to keep uncompressed
  protect_first_n: 3       # Non-system head messages pinned across compactions

auxiliary:
  compression:
    model: ""              # Empty = main chat model; e.g. "google/gemini-3-flash-preview"
    provider: "auto"       # "auto", "openrouter", "nous", "codex", "main", etc.
    base_url: null         # Custom OpenAI-compatible endpoint (overrides provider)

Was tail_mode festlegt. legacy behält ein unverändertes Ende in der durch target_ratio bestimmten Größe bei. Bei Konfigurationen mit großem Kontextfenster oder erhöhtem Schwellenwert werden dadurch pro Komprimierung 100–240K Token gehortet. lean behält dagegen ein begrenztes unverändertes Ende von 2,5 % des Kontextfensters bei (mindestens 10K, höchstens 25K) und wahrt die Kontinuität stattdessen in der Zusammenfassung: durch ein detailliertes, Bezeichner erhaltendes Sitzungsprotokoll des komprimierten Bereichs (ein zusätzlicher Zusammenfassungsaufruf pro Versuch), einen mechanisch extrahierten Ankerindex (PR-Nummern, SHAs, Pfade, Fehlerzeichenfolgen – mittels regulärer Ausdrücke und niemals umformuliert), jedes echte Benutzerstatement als wörtliches Zitat sowie einen session_search-Wiederherstellungsverweis, über den der Agent erneut auf zusammengefasste Inhalte zugreifen kann. Das in der Dokumentation angegebene Messergebnis für echte Sitzungen mit 500K Token: Statt etwa 162K Token werden rund 49K beibehalten. Alte Tool-Ergebnisse innerhalb des lean-Endes werden zu einzeiligen Platzhaltern mit Wiederherstellungsverweis reduziert, und bei unbekannten tail_mode-Werten wird auf lean zurückgegriffen.31

Anbieteroptionen:431

auxiliary.compression.provider auxiliary.compression.base_url Ergebnis
auto (Standard) nicht festgelegt Besten verfügbaren Anbieter automatisch erkennen
nous / openrouter / usw. nicht festgelegt Diesen Anbieter und dessen Authentifizierung erzwingen
beliebig festgelegt Benutzerdefinierten Endpunkt direkt verwenden (Anbieter wird ignoriert)

Das Zusammenfassungsmodell muss ein Kontextfenster unterstützen, das mindestens so groß wie das Ihres Hauptmodells ist, da es den gesamten mittleren Abschnitt der Konversation in einem einzigen Aufruf erhält. Ist sein Kontextfenster kleiner, schlägt der Aufruf fehl und die mittleren Gesprächsschritte werden ohne Zusammenfassung verworfen.431

Warnungen bei knappem Budget

Wenn der Agent eine komplexe Aufgabe mit vielen Tool-Aufrufen bearbeitet, kann er sein Iterationsbudget (seit v0.20.0 standardmäßig 500 statt zuvor 90 Schritte) aufbrauchen, ohne es zu bemerken. Bei knappem Budget wird das Modell automatisch gewarnt:4

Schwellenwert Stufe Anzeige für das Modell
70 % Vorsicht [BUDGET: 350/500. 150 iterations left. Start consolidating.]
90 % Warnung [BUDGET WARNING: 450/500. Only 50 left. Respond NOW.]

Streaming-Zeitüberschreitungen

Die LLM-Streaming-Verbindung verfügt über 2 Zeitüberschreitungsebenen, die sich für lokale Anbieter (localhost, LAN-IPs) automatisch anpassen:4

Zeitüberschreitung Standard Lokale Anbieter Umgebungsvariable
Socket-Lesezeitüberschreitung 120s Automatisch auf 1800s erhöht HERMES_STREAM_READ_TIMEOUT
Erkennung inaktiver Streams 180s Automatisch deaktiviert HERMES_STREAM_STALE_TIMEOUT
API-Aufruf (ohne Streaming) 1800s Unverändert HERMES_API_TIMEOUT

Für lokale Endpunkte wird die Socket-Lesezeitüberschreitung auf 30 Minuten erhöht, da lokale LLMs beim Prefill großer Kontexte mehrere Minuten benötigen können, bevor sie das erste Token erzeugen.4


Lokales Web-Dashboard (v0.9.0+)

Ein browserbasiertes Dashboard zur lokalen Verwaltung Ihres Hermes Agent. Konfigurieren Sie Einstellungen, überwachen Sie Sitzungen, durchsuchen Sie skills und verwalten Sie Ihr gateway, ohne Konfigurationsdateien oder das Terminal verwenden zu müssen.16 Starten Sie es mit hermes dashboard. Für neue Benutzer, die eine GUI bevorzugen, ist dies der einfachste Einstieg.

Überwachung von Hintergrundprozessen (v0.9.0+)

Mit watch_patterns können Sie Muster festlegen, die in der Ausgabe von Hintergrundprozessen überwacht werden, und sich bei Übereinstimmungen in Echtzeit benachrichtigen lassen.16 Überwachen Sie Fehler, warten Sie auf bestimmte Ereignisse („listening on port“) oder verfolgen Sie Build-Protokolle – ganz ohne Polling. Zusammen mit notify_on_complete aus v0.8.0, das Sie beim Abschluss von Hintergrundaufgaben benachrichtigt, verfügt Hermes nun über eine vollständige Beobachtungsebene für Hintergrundprozesse.15

Austauschbare Context Engine (v0.9.0+)

Die Kontextverwaltung ist nun über hermes plugins als austauschbarer Slot verfügbar. Sie können benutzerdefinierte context engines einsetzen, die steuern, was der Agent in jedem Durchlauf sieht – etwa durch Filterung, Zusammenfassung oder domänenspezifische Kontextinjektion.16 Dadurch wird die Kontextstrategie von der zentralen Agentenschleife entkoppelt und lässt sich projekt- oder domänenspezifisch anpassen.

Sicherung und Wiederherstellung (v0.9.0+)

hermes backup erstellt ein vollständiges Archiv Ihrer Konfiguration, Sitzungen, skills und Speicherinhalte. Mit hermes import stellen Sie diese aus einem Sicherungsarchiv wieder her.16 Damit können Sie zwischen Geräten migrieren, vor größeren Änderungen Momentaufnahmen erstellen oder eine bewährte Konfiguration mit Teammitgliedern teilen.

Unterstützung für Termux / Android (v0.9.0+)

Hermes läuft über Termux nativ unter Android. Angepasste Installationspfade, TUI-Optimierungen für mobile Bildschirme, Unterstützung für Sprach-Backends und der Befehl /image funktionieren direkt auf dem Gerät.16

Sicherheitshärtung (v0.13.0+)

v0.13.0 schloss 8 P0-Sicherheitslücken und änderte eine Standardeinstellung zugunsten der Benutzer.18 v0.14.0 folgte mit der Behebung von weiteren 12 P0- und 50 P1-Problemen, darunter Schutzmaßnahmen gegen sudo-Brute-Force-Angriffe und Missbrauch von sudo-stdin, Korrekturen für die Umgehung der Erkennung gefährlicher Befehle, die Bereinigung von Tool-Fehlern vor ihrer erneuten Einspeisung in das Modell, die Authentifizierung für Dashboard-Plugin-API, SSRF-Schutz für den skills-hub sowie die Prüfung auf Lieferkettenwarnungen während der Installation.19

Korrektur Was geändert wurde
Standardmäßig aktivierte Geheimnisredaktion Zuvor musste sie explizit aktiviert werden. Geheimnisse werden in Protokollen und Uploads über hermes debug share redigiert, sofern Sie dies nicht ausdrücklich deaktivieren. v0.12.0 hatte die Redaktion nach Berichten über beschädigte Nutzdaten standardmäßig deaktiviert; v0.13.0 aktiviert sie wieder als sicherere Ausgangseinstellung.
Guild-übergreifende Umgehung der Discord-DM-Beschränkung (CVSS 8.1) Zulassungslisten für Discord-Rollen sind nun auf die jeweilige Guild beschränkt. Dadurch wird ein Weg geschlossen, über den eine Benutzerrolle in einer Guild Direktnachrichten über alle Guilds hinweg autorisierte.
Standardmäßige WhatsApp-Beschränkungen Der WhatsApp-Adapter weist unbekannte Personen standardmäßig ab und antwortet niemals in einem Chat mit sich selbst.
TOCTOU-Zeitfenster bei MCP OAuth Eine Race Condition beim Speichern von Anmeldedaten in MCP-OAuth-Abläufen wurde behoben.
TOCTOU bei CLI auth.json Ein entsprechendes TOCTOU-Zeitfenster im Anmeldedatenschreiber des CLI-Authentifizierungsspeichers wurde geschlossen.
SSRF-Mindestschutz im Browser Das Hybrid-Routing erzwingt einen SSRF-Mindestschutz für Cloud-Metadaten gegen Anfragen, die auf 169.254.169.254 oder gleichwertige Adressen zugreifen wollen.
Prüfung von cron auf Prompt-Injection Zusammengesetzte Prompts einschließlich geladener skill-Inhalte werden vor Ausführung des cron-Jobs auf Prompt-Injection geprüft.
Redaktion bei hermes debug share Bei Debug-Share-Uploads werden Protokollinhalte während des Uploads redigiert und nicht nur beim Schreiben.

Wenn Sie eine Hermes-Bereitstellung verwalten, sollten Sie v0.13.0 und v0.14.0 als sicherheitsrelevante Upgrades behandeln und nicht nur als Funktionsupdates. v0.13.0 schließt die Guild-übergreifende Discord-Umgehung sowie zwei TOCTOU-Zeitfenster; v0.14.0 ergänzt weitere Härtungsmaßnahmen für die sudo-Verarbeitung, die erneute Einspeisung von Tool-Fehlern, Plugin-API, SSRF im skills-hub und Abhängigkeitswarnungen.

v0.21.0 ergänzt eine vierte Welle. Schreibzugriffe auf geschützte Dateien mit Agentenanweisungen – AGENTS.md, CLAUDE.md, SOUL.md, .cursorrules, skills und Speicher – erfordern nun stets eine Genehmigung. Dadurch kann ein durch Prompt-Injection kompromittierter Agent seine eigenen dauerhaft geltenden Anweisungen nicht unbemerkt umschreiben. Die Sperre ist standardmäßig aktiviert (security.protected_instruction_files: true, mit einer anhand von fnmatch ausgewerteten Liste zusätzlicher Basismuster in protected_instruction_extra_patterns). Der Quelltext benennt den dadurch geschlossenen Angriffsvektor ausdrücklich als „eine eingeschleuste Anweisung, die AGENTS.md / CLAUDE.md / SOUL.md bearbeitet“ und weist darauf hin, dass Anweisungsdateien aus cwd-Verzeichnisbäumen geladen werden. Deshalb sei „jede AGENTS.md an einem Ort, von dem aus der Agent später ausgeführt werden könnte, ein aktives Angriffsziel“.3539 Dieselbe Version schließt Lücken, durch die Geheimnisse über Terminalfehler, Lesezugriffe auf .env-Dateien, checkpoints und ACP-Protokolle offengelegt werden konnten; erweitert das Genehmigungssystem um destruktive Windows-Befehle und -Pfade; sorgt mit einer stabilen TCC-Signaturidentität dafür, dass macOS-Berechtigungen Updates überstehen (einmalige Einrichtung: hermes desktop --setup-tcc-identity, nur unter macOS, erfordert openssl/security/codesign); entfernt nach einer Kompromittierung des Upstream-Projekts den Blender-MCP-Katalogeintrag samt skill und ergänzt Sicherheitsprüfungen der Stufe 1 bei Plugin-Installationen.3539


Architektur für Praktiker

Dieser Abschnitt richtet sich an alle, die verstehen möchten, was im Hintergrund geschieht, um Fehler zu beheben, Hermes zu erweitern oder die Performance zu beurteilen. Er fasst die vorgelagerte Architekturdokumentation zusammen.3

Einstiegspunkte → AIAgent

Jeder Einstiegspunkt in Hermes ruft letztlich AIAgent.run_conversation() auf:

┌──────────────────────────────────────────────────────────────────┐
│                        Entry Points                              │
│                                                                  │
│  CLI (cli.py)    Gateway (gateway/run.py)    ACP (acp_adapter/)  │
│  Batch Runner    API Server                  Python Library     │
└──────────┬──────────────┬───────────────────────┬────────────────┘
           │              │                       │
           ▼              ▼                       ▼
┌──────────────────────────────────────────────────────────────────┐
│                     AIAgent (run_agent.py)                       │
│                                                                  │
│  ┌─────────────┐  ┌──────────────┐  ┌──────────────┐             │
│  │ Prompt      │  │ Provider     │  │ Tool         │             │
│  │ Builder     │  │ Resolution   │  │ Dispatch     │             │
│  └──────┬──────┘  └──────┬───────┘  └──────┬───────┘             │
│         │                │                 │                    │
│  ┌──────┴───────┐ ┌──────┴───────┐  ┌──────┴───────┐             │
│  │ Compression  │ │ 3 API Modes  │  │ Tool Registry│             │
│  │ & Caching    │ │ chat_compl   │  │ 47 tools     │             │
│  │              │ │ codex_resp   │  │ 20 toolsets  │             │
│  │              │ │ anthropic    │  │              │             │
│  └──────────────┘ └──────────────┘  └──────────────┘             │
└──────────────────────────────────────────────────────────────────┘

Das Diagramm wurde aus der vorgelagerten Architekturdokumentation übernommen und angepasst.3

„47 Tools / 20 toolsets“ gegenüber „28 Tools“ in Ihrem Banner. Die Angabe „47 Tools“ bezeichnet die Gesamtzahl im Tool-Register des vorgelagerten Repositorys – also jedes Tool, dessen Quellcode Hermes über alle toolsets hinweg mitliefert. Ihr tatsächlich laufender CLI zeigt im Startbanner eine niedrigere Zahl an (die für diesen Leitfaden überprüfte Installation meldet 28 tools / 89 skills). Das ist kein Fehler. Viele toolsets sind optional und müssen in config.yaml unter toolsets: ausdrücklich aktiviert werden – etwa Adapter für Messaging-Plattformen, Browserautomatisierung und aufwendigere Scraping-Tools. Die Gesamtzahl im Register gibt an, „was verfügbar ist“; die Zahl im Banner zeigt, „was in Ihrem aktuellen profile aktiviert ist“. Mit hermes tools --list prüfen Sie, welche toolsets aktiv sind. Einzelne toolsets aktivieren oder deaktivieren Sie über den Block toolsets: in ~/.hermes/config.yaml (oder innerhalb einer laufenden Sitzung mit /tools list / /tools enable <name> / /tools disable <name> – beim Entfernen eines Tools wird die Sitzung zurückgesetzt, damit der Agent sein Tool-Manifest neu erstellt).

Die drei API-Modi

Hermes abstrahiert Unterschiede zwischen Anbietern in drei API-Modi, die zur Laufzeit automatisch ausgewählt werden:3

API-Modus Verwendet von
chat_completions OpenRouter, z.ai, Kimi, MiniMax, DeepSeek, Alibaba, die meisten benutzerdefinierten Endpunkte und alle OpenAI-kompatiblen Server
codex_responses OpenAI Codex (über ChatGPT OAuth)
anthropic_messages Anthropic API (nativ), Anthropic OAuth, Anthropic-kompatible Proxys

Der Resolver runtime_provider.py ordnet für mehr als 18 Anbieter (provider, model)-Tupel den Werten (api_mode, api_key, base_url) zu und verarbeitet dabei OAuth-Abläufe, Anmeldedaten-Pools und die Auflösung von Aliasnamen.3

Datenfluss durch eine CLI-Sitzung

User input → HermesCLI.process_input()
  → AIAgent.run_conversation()
    → agent.prompt_builder.build_system_prompt()
    → runtime_provider.resolve_runtime_provider()
    → API call (chat_completions / codex_responses / anthropic_messages)
    → tool_calls? → model_tools.handle_function_call() → loop
    → final response → display → save to SessionDB

Aus der vorgelagerten Architekturseite.3

Reihenfolge beim Zusammensetzen des Prompts

Der Prompt-Stack umfasst:13

  1. SOUL.md (Identität des Agents – oder ein integrierter Fallback, falls nicht verfügbar)
  2. Tool-spezifische Verhaltenshinweise
  3. Speicher-/Benutzerkontext (MEMORY.md, USER.md)
  4. Hinweise zu skills
  5. Kontextdateien (AGENTS.md, .cursorrules)
  6. Zeitstempel
  7. Plattformspezifische Formatierungshinweise
  8. Optionale System-Prompt-Overlays wie /personality

SOUL.md bildet die Grundlage – alles Weitere baut darauf auf.13

Sitzungsspeicher

SQLite-basierter Sitzungsspeicher mit FTS5-Volltextsuche. Sitzungen verfügen über eine Abstammungsverfolgung (über Komprimierungen hinweg zwischen übergeordneten und untergeordneten Sitzungen), eine plattformspezifische Trennung sowie atomare Schreibvorgänge mit Konfliktbehandlung.3

Falls der Speicher bei einer v0.21.x-Installation Probleme verursacht, verwenden Sie v0.21.2 oder neuer: Diese Version beseitigte die aus v0.21.0 bekannte Klasse von state.db-Problemen (zweite Schreibprozesse hoben gegenseitig ihre Sperren auf, intakte Datenbanken wurden als beschädigt gemeldet, eine einzige fehlerhafte Zeile ließ sessions list scheitern) und verlagerte die Koordination gehosteter Räume aus dem Root-Speicher in eine eigene shared-state.db, sodass profile-gateways den zentralen Sitzungsspeicher niemals mit Schreibzugriff öffnen. hermes doctor unterscheidet nun zwischen strukturellen Schäden und Schäden am FTS-Index. Bei FTS-Schäden wird lediglich die Suche eingeschränkt, statt den Turn fehlschlagen zu lassen. Zudem meldet hermes sessions recover --inspect-only (offline, nicht destruktiv und an das profile gebunden), ob die kanonischen Tabellen lesbar sind, ohne eine Ausgabedatenbank anzulegen – der Unterbefehl existierte bereits vor diesem Zeitfenster, war hier jedoch noch nicht dokumentiert. Weitere Informationen finden Sie unter Neuerungen in v0.21.2.48 Für einen Speicher, der im falschen SQLite-Journalmodus feststeckt, führte das v0.21.4-Zeitfenster den Offline-Konverter hermes sessions set-journal-mode delete|wal ein (siehe die Zeile hermes sessions unter Befehle der obersten Ebene).51

Plugin-System

Es gibt drei Quellen für die Erkennung: ~/.hermes/plugins/ (Benutzer), .hermes/plugins/ (Projekt) und pip-Einstiegspunkte. Plugins registrieren Tools, Hooks und CLI-Befehle über einen Kontext-API. Speicheranbieter sind ein spezialisierter Plugin-Typ unter plugins/memory/.3 Seit v0.21.2 gibt es außerdem einen kuratierten, per SHA fixierten Plugin-Katalog, den Sie durchsuchen und aus dem Sie Plugins nach Namen installieren können, sowie hermes plugins pack für „deklarative, teilbare Plugin-Sammlungen“: Eine einzelne hermes-pack.yaml fixiert eine Gruppe von Plugins auf exakte Commit-SHAs. Bei der Installation eines Packs werden daraus reguläre, fixierte Einzelinstallationen; die Zustimmung zu Funktionen bleibt für jedes Plugin separat erforderlich.48

Im v0.21.4-Zeitfenster wurde dieser Katalog von einer CLI-Oberfläche zu einem mitgelieferten Artefakt ausgebaut. Das Verzeichnis plugin-catalog/ des Repositorys wuchs von 9 Einträgen bei v2026.9.14 auf 228 bei v2026.9.21 – ein überprüfter YAML pro Plugin (Name, Repository, Betreuer, Stufe, Kategorie, Funktionen), jeweils auf einen exakten 40-stelligen Commit-SHA fixiert, wobei die Aufnahme in das Verzeichnis zugleich die Zulassung darstellt. Für den CLI wird der Katalog als plugin-catalog.json veröffentlicht (live abgerufen und unter ~/.hermes/cache/ zwischengespeichert). Die Dokumentationswebsite erstellt nun aus denselben Daten je eine Seite pro Plugin (/docs/plugins/<name>) und Autor (/docs/plugins/by/<slug>). Jede Seite stellt die README-Datei des Plugins dar, die vom fixierten Commit und niemals von der Spitze eines Branches abgerufen wird. Dabei kommt eine Allowlist zur Build-Zeit zum Einsatz, die unverarbeitetes HTML entfernt; die Sortierung nach „hinzugefügt“ und „aktualisiert“ basiert auf den Datumsangaben der Committer. Die zehn Community-Plugins, die in der Veröffentlichung von v0.21.4 genannt werden, sind am Tag im Katalog unter ihren tatsächlichen Katalog-Slugs enthalten: hermes-tailscale, hermes-ssh, shodan, hermes-terminal, hermes-rss (zusätzlich gibt es ein separates rss-reader), hermes-resetwatch, done-bell, kiwi, cognee und web-octen. In der Desktop-Anwendung können Plugins nun über den Plugins-Hub und einen Bestätigungsdialog deinstalliert werden – Katalog-Plugins über plugins.manage remove, eigenständige Desktop-Plugins über den Electron-Loader.51

hermes plugins                       # Interactive enable/disable UI
hermes plugins browse                # List every curated plugin catalog entry (v0.21.2+)
hermes plugins search <query>        # Search the curated plugin catalog (v0.21.2+)
hermes plugins install <name|repo>   # Install from the curated catalog, a Git URL, or owner/repo
hermes plugins enable <name>
hermes plugins disable <name>
hermes plugins list
hermes plugins pack install <src>    # Shareable SHA-pinned plugin sets; also: pack export, pack show (v0.21.2+)

Das Kompatibilitätsfenster (v0.21.1) ist inzwischen abgelaufen: Externe Plugins mussten bis zum 14. September 2026 von den Importpfaden vor der Zerlegung migriert werden. Durch die Zerlegung im September 2026 (PR #102117) wurden interne Komponenten verschoben, die Plugins häufig importierten. Eine temporäre COMPAT_MANIFEST.md-Schicht exportierte 1.148 verschobene öffentliche Namen erneut aus ihren alten Modulen und gab pro Name und Prozess einmalig eine Warnung aus (HermesPluginCompatWarning). Die Entfernung trat planmäßig am 14. September 2026 in Kraft – über eine Datumssperre im ausgelieferten Code (COMPAT_REMOVAL_DATE in hermes_cli/plugin_compat.py; ein Zurücksetzen des Codes war nicht erforderlich): Seit diesem Datum wird ein betroffenes Plugin deaktiviert und nicht geladen. Ein roter Hinweis erscheint im CLI-Banner, in hermes doctor und in hermes update, einmalig als Desktop-Dialog; außerdem wird der Grund in hermes plugins list angezeigt. Für Autoren gilt: hermes plugins compat <path> gibt weiterhin jede Fundstelle im Format file:line mit altem Pfad -> neuem Pfad aus und beendet sich mit Status 1, solange noch Fundstellen vorhanden sind (mit --json erhalten Sie eine maschinenlesbare Ausgabe). Benutzer, die auf ein nicht mehr gepflegtes Plugin angewiesen sind, können in config.yaml weiterhin plugins.allow_deprecated_imports: true festlegen – der Wert muss ein literaler boolescher YAML-Wert und darf keine Zeichenkette in Anführungszeichen sein. Dies funktioniert weiterhin, weil der Revert, der die alten Pfade löscht, noch nicht übernommen wurde: Manifest und Shims sind in v2026.9.14, v2026.9.21, v2026.9.24 sowie mit Stand vom 24. September auf main vorhanden (im v0.21.4-Zeitfenster wurde das Kompatibilitätsmodul lediglich geändert, um Plugin-Scans zwischenzuspeichern und Windows-Pfade zu normalisieren; im v0.21.5-Zeitfenster blieb hermes_cli/plugin_compat.py unverändert, und nur die Manifesteinträge für das gelöschte Hindsight-Modul wurden entfernt). Sobald dieser Revert übernommen wird, funktioniert dieser Ausweg nicht mehr, weil dann die alten Pfade selbst verschwinden. Abgedeckt waren ausschließlich öffentliche Namen der obersten Ebene; private Namen und Monkeypatch-Schnittstellen für Tests gehörten nie zur öffentlichen Oberfläche und werden nicht wiederhergestellt.4253

Designprinzipien

Aus der vorgelagerten Architekturseite:3

Prinzip Praktische Bedeutung
Prompt-Stabilität Der System-Prompt ändert sich während einer Unterhaltung nicht. Keine Cache-ungültig machenden Änderungen, außer durch ausdrückliche Benutzeraktionen (/model)
Beobachtbare Ausführung Jeder Tool-Aufruf ist für den Benutzer über Callbacks sichtbar. Fortschrittsanzeigen im CLI (Spinner) und im gateway (Chatnachrichten)
Unterbrechbar API-Aufrufe und Tool-Ausführungen können während der Verarbeitung durch Benutzereingaben oder Signale abgebrochen werden
Plattformunabhängiger Kern Eine einzige AIAgent-Klasse dient CLI, gateway, ACP, Batch-Verarbeitung und API-Server. Plattformspezifische Unterschiede befinden sich im Einstiegspunkt
Lose Kopplung Optionale Subsysteme (MCP, Plugins, Speicheranbieter, RL-Umgebungen) verwenden Registermuster und check_fn-Gating anstelle fester Abhängigkeiten
Profile-Isolierung Jedes profile erhält ein eigenes HERMES_HOME, eine eigene Konfiguration, einen eigenen Speicher, eigene Sitzungen und eine eigene gateway-PID. Mehrere profiles können gleichzeitig ausgeführt werden

Migration von OpenClaw

Hermes Agent ist der Nachfolger von OpenClaw. Wenn Sie von einer bestehenden OpenClaw-Installation migrieren:65

hermes claw migrate --dry-run                    # Preview what would be migrated
hermes claw migrate --preset full                # Full migration including API keys
hermes claw migrate --preset user-data --overwrite   # User data only, no secrets
hermes claw migrate --source /custom/path        # Non-default OpenClaw location

hermes claw migrate liest standardmäßig aus ~/.openclaw (und erkennt außerdem automatisch die älteren Verzeichnisse ~/.clawdbot und ~/.moldbot) und schreibt nach ~/.hermes.6

Direkt importiert (mehr als 30 Kategorien): SOUL.md, MEMORY.md, USER.md, AGENTS.md, skills aus 4 Quellverzeichnissen, Standardmodell, benutzerdefinierte Anbieter, MCP-Server, Tokens und Zulassungslisten für Messaging-Plattformen (Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost), Agent-Standardeinstellungen (Reasoning-Aufwand, Komprimierung, menschliche Verzögerung, Zeitzone, Sandbox), Richtlinien zum Zurücksetzen von Sitzungen (jetzt wirkungslos: Seit v0.21.1 wechseln Timer niemals eine Konversation43), Genehmigungsregeln, TTS-Konfiguration, Browsereinstellungen, Tool-Einstellungen, Zeitüberschreitung für Ausführungen, Befehlszulassungsliste, gateway-Konfiguration und API-Schlüssel aus 3 Quellen.6

Zur manuellen Prüfung archiviert: cron-Aufgaben, Plugins, Hooks/Webhooks, Speicher-Backend (QMD), Konfiguration der skills-Registry, Benutzeroberfläche/Identität, Protokollierung, Multi-Agent-Konfiguration, Kanalbindungen, IDENTITY.md, TOOLS.md, HEARTBEAT.md, BOOTSTRAP.md.6

Bei der Auflösung von API-Schlüsseln werden 3 Quellen in folgender Prioritätsreihenfolge geprüft: Konfigurationswerte → ~/.openclaw/.env → auth-profiles.json.6


Fehlerbehebung

„Kein Inferenzanbieter konfiguriert. Führen Sie ‘hermes model’ aus, um einen Anbieter und ein Modell auszuwählen“

Auf diesen ersten Fehler stößt jede Neuinstallation: Für Hermes wurde noch kein Anbieter aufgelöst. Die Meldung ist wörtlich zu verstehen – keiner der 3 Authentifizierungswege hat einen verwendbaren Anbieter ergeben. Führen Sie Folgendes aus:

hermes model

Die interaktive Auswahl führt Sie durch alle unterstützten Anbieter, einschließlich der OAuth-Gerätecode-Abläufe (Nous Portal, GitHub Copilot, Anthropic, OpenAI Codex) und benutzerdefinierter Endpunkte für selbst gehostete Server. Falls Sie erwartet haben, dass bereits ein Anbieter konfiguriert ist, zeigt hermes doctor, welche Anmeldedaten Hermes tatsächlich erkennen kann. Übliche Ursachen sind ein am falschen Ort hinterlegter API-Schlüssel (er gehört in .env oder muss über hermes config set festgelegt werden, nicht in Ihr Shell-Profil), abgelaufene OAuth-Anmeldedaten in ~/.hermes/auth.json oder ein benutzerdefinierter Endpunkt in config.yaml, dessen base_url verloren gegangen ist. Die Authentifizierungswege werden unter Authentifizierung und Anbieter ausführlich behandelt.27

„API-Schlüssel nicht festgelegt“

Führen Sie hermes model aus, um Ihren Anbieter interaktiv zu konfigurieren, oder verwenden Sie hermes config set OPENROUTER_API_KEY your_key. Der Befehl hermes doctor zeigt Ihnen genau, welche Schlüssel fehlen.7

„Kontextlimit: 2048 Tokens“ beim Start (lokale Modelle)

Hermes erkennt die Kontextlänge automatisch über den Endpunkt /v1/models Ihres Servers, viele lokale Server melden jedoch niedrige Standardwerte. Legen Sie die Länge in config.yaml ausdrücklich fest:2

model:
  default: your-model
  provider: custom
  base_url: http://localhost:11434/v1
  context_length: 32768

Tool-Aufrufe erscheinen als Text, anstatt ausgeführt zu werden

Auf Ihrem Server sind Tool-Aufrufe nicht aktiviert oder das Modell unterstützt sie über die Serverimplementierung nicht.2

Server Lösung
llama.cpp Fügen Sie dem Startbefehl --jinja hinzu
vLLM Fügen Sie --enable-auto-tool-choice --tool-call-parser hermes hinzu
SGLang Fügen Sie --tool-call-parser qwen (oder einen geeigneten Parser) hinzu
Ollama Tool-Aufrufe sind standardmäßig aktiviert – prüfen Sie mit ollama show <model>, ob Ihr Modell sie unterstützt
LM Studio Aktualisieren Sie auf Version 0.3.6 oder höher und verwenden Sie ein Modell mit nativer Tool-Unterstützung

Antworten brechen mitten im Satz ab

Dafür gibt es 2 mögliche Ursachen:2

  1. Niedrige Ausgabebegrenzung (max_tokens) auf dem Server – SGLang verwendet standardmäßig 128 Tokens pro Antwort. Legen Sie auf dem Server --default-max-tokens fest oder konfigurieren Sie model.max_tokens in config.yaml.
  2. Erschöpfter Kontext – Das Modell hat sein Kontextfenster vollständig gefüllt. Erhöhen Sie model.context_length oder aktivieren Sie die Kontextkomprimierung in Hermes.

„Verbindung abgelehnt“ von WSL2 zu einem unter Windows ausgeführten Modellserver

WSL2 verwendet einen virtuellen Netzwerkadapter mit eigenem Subnetz – localhost innerhalb von WSL2 verweist auf die Linux-VM und nicht auf den Windows-Host. Es gibt 2 Möglichkeiten:2

Gespiegeltes Netzwerk (Windows 11 22H2 oder höher): Bearbeiten Sie %USERPROFILE%\.wslconfig:

[wsl2]
networkingMode=mirrored

Führen Sie anschließend wsl --shutdown aus und starten Sie neu. localhost funktioniert nun in beide Richtungen.

Host-IP als Ausweichlösung (ältere Windows-Versionen): Ermitteln Sie innerhalb von WSL2 die IP-Adresse des Windows-Hosts und verwenden Sie diese anstelle von localhost:

ip route show | grep -i default | awk '{ print $3 }'
# Use that IP as the base_url host

Außerdem muss der Modellserver an 0.0.0.0 statt an 127.0.0.1 gebunden sein – legen Sie für Ollama OLLAMA_HOST=0.0.0.0 fest, fügen Sie für llama-server/SGLang --host 0.0.0.0 hinzu oder aktivieren Sie in LM Studio „Serve on Network“.2

Das Iterationsbudget ignoriert agent.max_turns

Wenn in der Aktivitätszeile N/90 (oder ein anderer veralteter Höchstwert) angezeigt wird, obwohl in config.yaml agent.max_turns: 500 festgelegt ist, liegt dies wahrscheinlich an einer veralteten Zeile HERMES_MAX_ITERATIONS in ~/.hermes/.env: Der Einrichtungsassistent schrieb das Budget früher in beide Speicher. Bricht die Startbrücke aufgrund eines vorherigen Fehlers beim Parsen der Konfiguration ab, setzt sich der verwaiste .env-Wert unbemerkt durch. Seit v0.21.1 erkennt hermes doctor dieses sich überschneidende Wertepaar, und hermes doctor --fix löscht die Zeile aus .env, sodass config.yaml maßgeblich bleibt.41

Wo befindet sich was?

hermes status und hermes dump helfen Ihnen dabei weiter. hermes logs list zeigt alle Protokolldateien mit ihren Größen an. hermes config path gibt den Speicherort der Konfigurationsdatei aus. hermes config env-path gibt den Speicherort der .env-Datei aus.6


FAQ

Was ist der Unterschied zwischen Hermes Agent und Claude Code?

Claude Code ist der offizielle CLI von Anthropic und auf Modelle von Anthropic beschränkt. Hermes Agent ist ein Open-Source-Agent-Framework von Nous Research, das mit jedem OpenAI-kompatiblen Anbieter funktioniert — Nous Portal, OpenRouter, Anthropic, GitHub Copilot, z.ai, Kimi, MiniMax, DeepSeek, Hugging Face, Google oder Ihrem eigenen selbst gehosteten Endpunkt.12 Hermes enthält außerdem einen Messaging-gateway für Telegram/Discord/Slack/WhatsApp/Signal, den Claude Code nicht bietet.

Kann ich Hermes mit einem API-Schlüssel von Anthropic verwenden?

Ja. Dafür gibt es 3 Möglichkeiten:2

  1. Legen Sie ANTHROPIC_API_KEY in ~/.hermes/.env fest und führen Sie hermes chat --provider anthropic --model claude-sonnet-4-6 aus
  2. Führen Sie hermes model aus und wählen Sie Anthropic — Hermes verwendet den Anmeldedatenspeicher von Claude Code, sofern verfügbar
  3. Legen Sie als Ausweichlösung manuell ein ANTHROPIC_TOKEN (Setup-Token oder OAuth-Token) fest

Option 2 wird empfohlen, wenn Sie Claude Code bereits auf demselben Rechner verwenden — so bleiben aktualisierbare Claude-Anmeldedaten weiterhin aktualisierbar.

Wie wechsle ich den Anbieter, ohne meine Unterhaltung zu verlieren?

Verwenden Sie innerhalb einer Sitzung /model provider:model. Unterhaltungsverlauf, Speicher und skills werden vollständig übernommen:9

/model zai:glm-5
/model openrouter:anthropic/claude-sonnet-4
/model custom:local:qwen-2.5

Ich habe Anthropic konfiguriert, aber Bildverarbeitung/Web/Komprimierung funktionieren nicht

In aktuellen Builds kann dies auf die frühere Weise größtenteils nicht mehr passieren. Standardmäßig (auxiliary.*.provider: "auto") wird jede Hilfsaufgabe — Bildverarbeitung, Genehmigungsklassifizierung, Komprimierung und Sitzungstitel — mit Ihrem Haupt-Chatmodell ausgeführt. Eine reine Anthropic-Konfiguration verarbeitet diese Aufgaben daher mit dem bereits vorhandenen OAuth. Der frühere Standard (Gemini Flash über OpenRouter → Nous → automatische Codex-Erkennung, mit stiller Funktionseinschränkung, wenn nichts davon konfiguriert war) wurde entfernt: „auto verwendet jetzt für alle das Hauptmodell, wobei aufgabenspezifische Überschreibungen in config.yaml weiterhin Vorrang haben.“34

Falls eine Hilfsaufgabe dennoch fehlschlägt, suchen Sie nach einer expliziten aufgabenspezifischen Überschreibung, die auf einen nie konfigurierten Anbieter verweist (auxiliary.<task>.provider / .model in config.yaml), oder nach veralteten Legacy-Schlüsseln: Seit dem Tag v2026.8.31 wird die Komprimierungszusammenfassung wie jeder andere Hilfsaufgabenplatz konfiguriert — über auxiliary.compression.provider — und veraltete compression.summary_*-Schlüssel werden automatisch dorthin migriert (Konfigurationsversion 17).31 Die Webextraktion ist überhaupt keine LLM-Aufgabe mehr („kein LLM beteiligt“). Ein Fehler bei der Webzusammenfassung ist in aktuellen Builds daher kein Problem des Hilfsmodells.34 So weisen Sie eine Aufgabe ausdrücklich wieder Ihrem Hauptanbieter zu:

auxiliary:
  vision:      { provider: "main" }
  compression: { provider: "main" }

Was ist der Unterschied zwischen SOUL.md und AGENTS.md?

SOUL.md definiert die Identität Ihres Agenten — Tonalität, Stil und Kommunikationsvorgaben. Die Datei befindet sich unter ~/.hermes/SOUL.md und gilt überall. AGENTS.md ist projektspezifisch — Architektur, Konventionen, Befehle und Pfade — und befindet sich in Ihrem Projektverzeichnis.13 Soll etwas überall gelten, gehört es in SOUL.md. Gehört es zu einem Projekt, kommt es in AGENTS.md.

Wie führe ich mehrere Hermes-Instanzen parallel aus?

Mit profiles. Jedes profile erhält ein eigenes HERMES_HOME, eine eigene Konfiguration, einen eigenen Speicher, eigene Sitzungen und eine eigene gateway-PID:6

hermes profile create work --clone
hermes profile use work                 # Sticky default
hermes -p work chat -q "..."            # One-off without switching
hermes profile alias work --name h-work # Wrapper script

Unterstützt Hermes lokale LLMs?

Ja, über den Pfad für benutzerdefinierte Endpunkte. Hermes funktioniert mit jedem OpenAI-kompatiblen Server: Ollama, vLLM, SGLang, llama.cpp/llama-server, LM Studio, LocalAI, Jan oder Ihrem eigenen.2 Die Einrichtung für die einzelnen Server finden Sie unter Benutzerdefinierte und selbst gehostete Endpunkte.

Warum zeigt mein Startbanner weniger Tools an, als Hermes laut diesem Leitfaden besitzt?

Der Leitfaden nennt 47 Tools / 20 toolsets aus der vorgelagerten Architekturregistrierung — das ist die Gesamtzahl der Tools, deren Quellcode Hermes über alle toolsets hinweg bereitstellt. Ihre laufende Installation zeigt im Banner eine geringere Zahl an (die für diesen Leitfaden verwendete Referenzinstallation meldet 28 Tools), weil Hermes beim Start nur die standardmäßig vorgesehenen toolsets aktiviert. Viele toolsets müssen ausdrücklich aktiviert werden: Messaging-gateway-Adapter, Browserautomatisierung, umfangreichere Scraping-Stacks und mehrere spezialisierte Integrationen müssen unter toolsets: in ~/.hermes/config.yaml explizit aufgeführt werden, bevor sie geladen werden. Registrierungsgesamtzahl = „was verfügbar ist, wenn Sie es aktivieren“. Bannergesamtzahl = „was Ihr aktuelles profile tatsächlich geladen hat“. Mit hermes tools --list sehen Sie, welche toolsets aktiv und welche verfügbar, aber deaktiviert sind. Einzelne toolsets können Sie zur Laufzeit mit /tools enable <name> und /tools disable <name> umschalten. Beim Deaktivieren wird die Sitzung zurückgesetzt, damit der Agent sein Toolmanifest mit der neuen Struktur neu erstellt.

Wie handhabt Hermes den Modell-Fallback, wenn mein primärer Anbieter ausfällt?

Konfigurieren Sie in config.yaml einen fallback_model-Block:2

fallback_model:
  provider: openrouter
  model: anthropic/claude-sonnet-4

Wenn der primäre Anbieter ausfällt (Ratenbegrenzung, Serverfehler oder Authentifizierungsfehler), wechselt Hermes während der laufenden Sitzung zum Fallback, ohne den Unterhaltungsverlauf zu verlieren. Dies geschieht höchstens einmal pro Sitzung.

Kann der Agent seine eigenen skills im Laufe der Zeit verbessern?

Ja — genau darin besteht der „selbstverbessernde“ Teil von Hermes Agent. Der Agent kann über das Tool skill_manage skills erstellen, aktualisieren und löschen. Wenn er einen nicht trivialen Arbeitsablauf entwickelt, speichert er die Vorgehensweise als skill zur späteren Wiederverwendung.11 Der Agent erstellt skills nach komplexen Aufgaben (mehr als 5 Toolaufrufe), wenn Fehler auftreten und er den funktionierenden Lösungsweg findet, wenn Sie seine Vorgehensweise korrigieren oder wenn er einen nicht trivialen Arbeitsablauf entdeckt.

Gibt es eine IDE-Integration?

Ja — Hermes kann als ACP-Server (Agent Client Protocol) für VS Code, Zed und JetBrains ausgeführt werden:6

pip install -e '.[acp]'
hermes acp

Änderungsprotokoll

Datum Änderung Quelle
2026-09-24 Leitfaden v1.23: Der Orientierungsblock zu v0.14.0, der seit der ersten Version des Leitfadens über dem aktuellen Release stand, schließt nun als ältester Abschnitt den „Neuigkeiten“-Verlauf ab – in derselben Reihenfolge vom neuesten zum ältesten Eintrag, die auch der übrige Verlauf verwendet. Keine inhaltliche Änderung; die Kurzfassung führt nun direkt von den wichtigsten Erkenntnissen zum Quellenhinweis und zu „Wählen Sie Ihren Weg“. Struktur des Leitfadens
2026-09-24 Leitfaden v1.22: Hermes v0.21.5 (Tag v2026.9.24, 24. September) – dritter Sammel-Patch, kuratierte Hinweise auf v0.22.0 verschoben. Neuer „Neuigkeiten“-Abschnitt ganz oben; die Kurzfassung verweist darauf. Mit der Detailtiefe des Tags behandelt: Hindsight wurde aus dem Kernverzeichnis in den Plugin-Katalog verschoben (in den Release Notes nicht erwähnt), einschließlich automatischer Migration; gateway.multiplex_profiles: false wurde eingestellt, dazu kommen das Parken einzelner profile und gateway.standalone; GPT-6 Sol/Luna und Claude Opus 5.5 in den Auswahlmenüs von Nous und OpenRouter. „Externe Speicheranbieter“ führt nun sieben gebündelte Anbieter sowie Hindsight aus dem Katalog auf. Das Messaging gateway erhält einen Absatz zur eingestellten Opt-out-Option. Kompatibilitätskasten beim Tag erneut geprüft: plugin_compat.py unverändert, der Ausweg funktioniert weiterhin. Korrigiert: Die Anzahl der gebündelten Anbieter-Plugins beträgt 38, nicht 39, und die Zeile „OpenCode Free“ ist als entfernt gekennzeichnet; beide Änderungen stammen vom 18. September. 5253
2026-09-23 Leitfaden v1.21: Überarbeitung auf Korrektheit und Lesbarkeit, weiterhin für Hermes v0.21.4 (Tag v2026.9.21; kein neueres Release). „Neuigkeiten“ ist nun vom neuesten zum ältesten Eintrag sortiert, v0.21.3 hat einen eigenen Abschnitt und die Kurzfassung beginnt mit dem aktuellen Release. Kopplung: decline ist der einzige neue Wert; sobald eine Positivliste festgelegt ist, lautet der effektive Standardwert ignore; die Form von YAML ist platforms.<name>.unauthorized_dm_behavior oder der Schlüssel auf oberster Ebene. stream-json akzeptiert --query-file, das eine eigene Zeile in der Optionstabelle erhält. Bei set-journal-mode werden die Regel, alles anzuhalten, sowie --force unter Windows erwähnt. Der Absatz zum Host-Singleton beginnt nun mit dem Verhalten aus Betreibersicht. Sätze zu Writer-Prozessen wurden entfernt. 5051
2026-09-22 Leitfaden v1.20: Hermes v0.21.4 (Tag v2026.9.21, 21. September) – der zweite Sammel-Patch: „5.071 Nicht-Merge-Commits“, „5.169 geänderte Dateien“, „1.812 zusammengeführte PRs“, „2.116 geschlossene Issues“ seit v0.21.3, begleitet von einem knappen Hinweis, der die kuratierte Abdeckung auf v0.22.0 verschiebt. Neuer „Neuigkeiten“-Abschnitt unter dem Block zu v0.21.3. Alle fünf Kennzahlen wurden im lokalen Klon am angegebenen Mess-Commit 4b8a8134 exakt reproduziert (der Tag fügt einen Release-Commit hinzu: 5.072 Nicht-Merge-Commits; insgesamt 5.173 einschließlich Merges, entsprechend dem Vergleich GitHub compare API); das zweitgrößte Zeitfenster zwischen zwei Tags überhaupt, nur übertroffen von den 5.139 bei v0.21.1 (diese Aussage wurde erneut geprüft und stimmt weiterhin). Die absichtlich undokumentierte Liste des Releases wurde ERST nach einer Quellcodeprüfung am Tag behandelt; jeder Eintrag wurde in seinen bestehenden Abschnitt eingeordnet: Host-Singleton (gateway/host_rendezvous.py: ein hermes serve und ein hermes gateway run pro Host und Betriebssystembenutzer, Host-Sperre und Rendezvous-Datensatz mit (pid, createTime) als Aktivitätsnachweis; host_attach.py mit den fünf Ergebnissen ATTACH/RESCAN/REPLACE_HOST/REFUSE/START; Desktop-Hälfte host-backend-attach.ts mit der Eskalationsfolge Ledger -> HTTP -> Token -> WS und einem Spawn-Gate auf Host-Ebene – das Messaging gateway erhält den Absatz); ein einziger, dem Backend zugeordneter Connector-Vorgang (tools/connectors/operation.py „Reine Daten, keine E/A“, absichtlich kein Konfigurationsschlüssel für das Zeitlimit von 300 s, Einrichtungskarte manage_connections auf Desktop/TUI/CLI gemäß Test am Tag – der Unterabschnitt zur kostenlosen Nous-Stufe wurde erweitert); --format stream-json (_parser.py:247-249 + hermes_cli/stream_json.py: system/init -> text/tool_use/tool_result -> ein result-Envelope; erfordert -q, impliziert --quiet, lehnt --tui ab, Tool-Limit von 5.000 Zeichen – die Tabelle der Chat-Optionen erhält eine neue Zeile); skills.auto_load (config_defaults.py:1435, „in jeder neuen Sitzung (CLI, TUI, gateway, cron, API) als vollständig geladen angeheftet“, einmalig beim Erstellen des Prompts aufgelöst, fehlende Namen erzeugen eine Warnung und werden übersprungen, HERMES_IGNORE_RULES unterdrückt dies – neuer Unterabschnitt „Angeheftete skills“); gateway-decline (gateway/config.py:139, eine höfliche Ablehnung, danach 24 Stunden Stille gemäß DECLINE_DEDUPE_SECONDS #88028, unauthorized_dm_decline_message, plattformspezifisch über platforms.<name>.extra, Email verwendet standardmäßig ignore – Kopplungsabschnitt erweitert); mcp.discovery_concurrency (config_defaults.py:526, Standardwert 4, 0 = unbegrenzt #117373, ungültige Werte führen zu einer Warnung und werden auf den Standardwert zurückgesetzt, jeder Server stellt weiterhin eine Verbindung her – Abschnitt MCP erweitert); session_search mit after/before und gelockertem OR-Wiederholungsversuch (Tool-Schema :708-725, inklusive/exklusive Grenzen, ISO oder 7d/24h/2w; hermes_state_search.py:1151-1163 mit Wiederholungsversuch für BELIEBIGE Begriffe auf dem unicode61-Index bei null Ergebnissen, Semantik für exakte Treffer bleibt erhalten, OR/NOT/einzelne Begriffe/CJK sind ausgenommen – „Sitzungssuche“ erweitert und die veraltete Behauptung dieses Abschnitts zur „Zusammenfassung mit Gemini Flash“ anhand von 34 auf das Design von v0.15.0 mit einer einzigen Form ohne LLM KORRIGIERT); hermes sessions set-journal-mode delete\|wal (subcommands/sessions.py:177 + sessions_cmd_journal_mode.py, Offline-Selbsthilfe für #100896, lehnt fremde Halter ab, überprüft die Header-Bytes 18/19, doctor verweist darauf – Sitzungszeile und Sitzungsspeicher erweitert); Desktop-Welle (Schriftartfeld desktop.font_family, das --dt-font-sans des Themes überschreibt, barrierefreiheitsorientierte Vorschläge; „Update engine“ für Runtime-Aktualisierungen mit einem Klick und sichtbarer Wiederholungsmöglichkeit bei Fehlern; Deinstallation im Plugins-Hub hinter einer Bestätigung über plugins.manage remove / Electron-Loader); Videokataloge (plugins/video_gen/fal ltx-2.5 + kling-o3 mit den Funktionsbeschreibungen des Tags; Eintrag in der Referenzübersicht der toolsets); Ausbau des Plugin-Katalogs (plugin-catalog/ innerhalb des Zeitfensters von 9 auf 228 Einträge erweitert, über SHA angeheftete Aufnahme von YAML, Websites pro Plugin und Autor mit an Commits angehefteten READMEs über einen Positivlisten-Renderer, Sortierung nach hinzugefügt/aktualisiert anhand der Committer-Daten; die zehn Community-Plugins des Releases wurden unter ihren tatsächlichen Slugs hermes-tailscale/hermes-ssh/shodan/hermes-terminal/hermes-rss/hermes-resetwatch/done-bell/kiwi/cognee/web-octen als vorhanden bestätigt – Plugin-System erweitert). Die Kategorie der Fehlerkorrekturen (profile-/Multiplex-Isolation, cron, Kanban, Desktop, state.db) wurde entsprechend der Verschiebung im Release selbst für die Prüfung in v0.22.0 ZURÜCKGESTELLT. Kompatibilitätsstatus erneut geprüft: Der pfadlöschende Revert wurde NOCH IMMER nicht integriert – Manifest und Shims sind bei v2026.9.21 UND auf main bei a53b42ddea vorhanden (22. September 2026, am selben Tag abgerufen); die Änderungen im plugin_compat.py-Zeitfenster betreffen lediglich einen Plugin-Scan-Cache und Windows-Pfade im POSIX-Format (#112576), die Literal-Boolean-Prüfung wurde von :261-268 nach :296-303 verschoben und lautet weiterhin is True; der Aktualitätsstand wurde im Aufzählungspunkt zu v0.21.1, im Block zu v0.21.3, im Kasten zum Plugin-System und in 42 erneuert. Neue Zählungen bei v2026.9.21: statische Anbieter 39 (AST-Zählung bei models_catalog_static.py:311) und Anbieter-Plugin-Ordner 39, beide unverändert; der Anbieterzählungsstempel in der Kurzfassung wurde von v2026.9.14 auf v2026.9.21 aktualisiert; die Formulierung „aktuelles Release“ bei v0.21.3 wurde entfernt. 505142
2026-09-15 Leitfaden v1.19: Hermes v0.21.2 (Tag v2026.9.11, 11. Sep.) „The state.db Patch Release“ + v0.21.3 (Tag v2026.9.14, 14. Sep.) sowie die Folgen nach Ablauf der Plugin-Kompatibilitätsfrist. Neuer Abschnitt „Neuigkeiten“ unterhalb des Abschnitts zu v0.21.1. v0.21.2 („947 Nicht-Merge-Commits“, „312 zusammengeführte PRs“, „140 Mitwirkende“) beginnt mit der Kampagne zur Zuverlässigkeit von state.db (sechs PRs, 44 Issues: Koordination gehosteter Räume aus dem Root-Speicher in shared-state.db verlagert – bei diesem Tag in gateway/hosted_rooms.py:398-426 verifiziert; das Dashboard öffnet zunächst schreibgeschützt; cron-Schutz über die Registrierung nachverfolgter Verbindungen; doctor --fix verweigert Checkpoints, deren Sicherheit sich nicht belegen lässt; Schäden am FTS-Index beeinträchtigen die Suche, statt den Turn mit einem Fehler zu schließen; beschädigte Zeilen werden als ? dargestellt, statt sessions list zum Absturz zu bringen; an das profile gebundene Zuordnung; schreibgeschützte Öffnungen belegen nicht mehr die Schreibsperre, 4–20 s → 0,01 s; die Betreiberempfehlung des Releases wurde beibehalten: zuerst hermes doctor, dann hermes sessions recover --inspect-only – Parser in hermes_cli/subcommands/sessions.py:185-196; der Unterbefehl EXISTIERTE BEREITS vor diesem Zeitraum (vorhanden in v2026.8.31) und wird daher als neu dokumentiert, nicht als neu eingeführt beschrieben); verstärkte Isolation mehrerer profiles (#107609–#107630 schlossen echte Lücken im seit v0.19.0 geltenden Versprechen einer „vollständigen Isolation“ – vererbte Positivlisten, Zugangsdaten zum Host des Standard-profile, Vault-Geheimnisse für stdio-MCP-Server, profile-übergreifende MEDIA:-Anhänge, Nous-Bearer-Tokens benachbarter profiles; Hinweise zur ehrlichen Einordnung bei „Profiles“ und im Multiplex-Absatz des Messaging Gateway ergänzt); der passwortblinde Zugangsdaten-Vault (Anmelden, Bezahlen und automatisches Ausfüllen aus 1Password, Bitwarden oder dem lokalen Vault über namensraumgebundene Handles, die nur Metadaten enthalten und deren Passwort erst beim Ausfüllen aufgelöst wird; das Master-Passwort ist niemals ein Tool-Argument; TOTP aus einem gespeicherten Authentifizierungsschlüssel – agent/vault_backends/ + agent/vault_store.py:74-105 beim Tag verifiziert); der Plugin-Katalog (hermes plugins browse/search + kataloggestütztes install + pack install/export/show, per SHA fixiert – Unterparser beim Tag verifiziert; Befehlsblock zum Plugin-System aktualisiert); der kostenlose Nous-Tarif + geführte Erststart (kostenlose Inferenz und Konnektoren, /login aus einem Chat, HERMES_GUEST_ONBOARDING=1, wobei NUR die literale 1 die Funktion aktiviert – guest-onboarding-flag.test.ts verifiziert; neuer Unterabschnitt unter Nous Tool Gateway); sowie Korrekturen für Spawn-Stürme in der Desktop-Anwendung. Kleiner Block zu v0.21.3 („1.036 Nicht-Merge-Commits“, „338 zusammengeführte PRs“; Tag erstellt, damit automatisch aktualisierte Cloud-Agenten ihn erhalten): Single-Flight-Tokenaktualisierung beendet Sitzungswiderrufe durch gebündelte Aktualisierungsversuche (Commit 5dea46d13d, #110061), doppelte Writer-Handles für state.db unterbunden (Commit 939a2f64b4, #110934), beide ausschließlich im Zeitraum v2026.9.11..v2026.9.14 verifiziert; die eigene Vertagung des Releases zitiert („Vollständige kuratierte Versionshinweise für diesen Zeitraum erscheinen mit v0.22.0, das alles ab v0.21.0 dokumentieren wird“ … „Nichts aus diesem Zeitraum wird ausgelassen“) und die absichtlich undokumentierte Liste (Auswahlfelder für den Reasoning-Aufwand, OpenRouter PKCE, HEIF/AVIF, die FAL-Welle, Slack Agent Sessions API, Verweigerung von WAL über VM-Grenzen hinweg) in der Zeile genannt und für die Prüfung von v0.22.0 ZURÜCKGEHALTEN. Folgen der Kompatibilitätsfrist in Vergangenheitsform neu geschrieben im Aufschlüsselungspunkt zu v0.21.1, im Kasten zum Plugin-System und in 42: Die Entfernung wurde PLANMÄSSIG über eine Datumssperre aktiviert, nicht durch einen Code-Revert (hermes_cli/plugin_compat.py:32 setzt in v2026.9.14 das COMPAT_REMOVAL_DATE; removal_in_effect() in :86-90 ist ab 2026-09-14 wahr); betroffene Plugins sind nun deaktiviert und zeigen den roten Hinweis – der Revert, der die alten Importpfade entfernt, ist jedoch NOCH NICHT eingespielt (COMPAT_MANIFEST.md + compat_manifest.json + Shims sind sowohl beim Tag ALS AUCH auf main bei 5d59366010 vorhanden, abgerufen am 15.09.2026 um 12:55 PT), sodass plugins.allow_deprecated_imports: true betroffene Plugins weiterhin laden lässt; ausschließlich ein literaler boolescher Wert (plugin_compat.py:261-268, is True – eine Zeichenfolge in Anführungszeichen aktiviert die Umgehung niemals). Nur im Changelog, anhand des Releases oder des Quellcodes verifiziert: Telegram bots_require_mention sorgt dafür, dass Bots eine @Erwähnung benötigen, wodurch Bot-zu-Bot-Schleifen unterbrochen werden; hermes -z --resume setzt die Sitzung fort (-z = --oneshot, hermes_cli/_parser.py:113); passive Aktualisierungsprüfungen greifen höchstens einmal täglich auf den GitHub API zu, statt alle 30 Minuten einen Git-Fetch auszuführen (banner.py:129-131 in v2026.9.11, :136-139 in v2026.9.14); hermes backup -k/--keep reduziert standardmäßig auf die neuesten 3 ZIP-Dateien (subcommands/backup.py:24-26), und Sicherungen von config.yaml liegen in einem einzigen größenbegrenzten Ordner backups/config/; Schlüssel in model_thresholds können als provider:substr anbieterspezifisch definiert werden (agent/context_compressor.py:1558-1567); --clone-all kopiert keine cron-Jobs mehr (das Flag gehört zu hermes profile, subcommands/profile.py:24, NICHT zu hermes cron); kanban promote verweigert nicht erledigte übergeordnete Aufgaben, und kanban_request_review lehnt unbekannte Reviewer-profiles ab; /model und „auxiliary auto“ rechnen niemals über einen nicht von Ihnen ausgewählten Anbieter ab und wechseln niemals automatisch zu einem Anbieter ohne Zugangsdaten; Auswahlfelder ergänzen DeepSeek V4.1 Flash (Nous Portal + OpenRouter), GPT Image 2.5 sowie Opus 5 + Fable 5.1 in der nativen Anthropic-Auswahl; die Aufbewahrungsdauer von debug share wurde beim dpaste-Fallback auf 1 Tag verkürzt. Neue Bestandsaufnahmen bei v2026.9.14: 39 statische Anbieter (AST-Zählung von CANONICAL_PROVIDERS in models_catalog_static.py:314) und 39 Anbieter-Plugin-Ordner, beides unverändert; der Standardwert von --max-turns beträgt nun 500 in cli.py:404 (cli.py:400 in 41 bleibt für dessen Tag korrekt); model_catalog.ttl_minutes beträgt 20 (config_defaults.py:1866); die Aussage zu v0.21.1 als größtem Zeitraum (5.139) bleibt gegenüber den beiden neuen Zeiträumen (959 und 1.037 lokale Nicht-Merge-Zählungen) korrekt; der Anbieterzählungsstempel in der Kurzfassung wurde von v2026.9.7 auf v2026.9.14 verschoben. 484942
2026-09-08 Leitfaden v1.18: Hermes v0.21.1 (Tag v2026.9.7, 7. Sep.) – der Rollup-Patch: das bisher größte Zeitfenster zwischen zwei Tags („5.139 Non-Merge-Commits“, „632 zusammengeführte PRs“) mit bewusst knappen Patch Notes, die kuratierte Hinweise auf v0.22.0 verschieben. Neuer Abschnitt „Neuerungen“ oberhalb des Pantheon-Abschnitts mit sechs anhand von Quellen verifizierten Themenclustern: die Aufgliederung im September sowie die Frist für Plugin-Kompatibilität am 14.09.2026 (COMPAT_MANIFEST.md: 1.148 in Lazy Loading überführte Namen, eine HermesPluginCompatWarning pro Name, das Prüfwerkzeug hermes plugins compat, die Ausweichoption plugins.allow_deprecated_imports; dem Plugin-System wurde ein Kasten zum Kompatibilitätszeitraum hinzugefügt), ausschließlich explizite Konversationsgrenzen im gateway (SessionResetPolicy ist nun wirkungslos – Messaging Gateway aktualisiert, Liste zur OpenClaw-Migration mit Anmerkungen versehen), MCP-Gerätecode-OAuth (hermes mcp login --flow device, RFC 8628; login und reauth --all dem MCP-Befehlsblock hinzugefügt; profile-Zuordnung über OAuth-Sitzungen, fehlerhafte Metadaten-Caches werden ignoriert, lokale Desktop-Client-Callbacks, -t-Filter beim Starten von MCP-Servern), zuverlässigere Delegation (Abschlusseinheiten über delegation.independent_completions mit einer aufgabenspezifischen group, standardmäßig ein Abschluss pro Aufruf; Übergabe von Hintergrundprozessen, wobei orphaned_processes und unread_completions in Ergebnissen genannt werden; delegation.fallback_providers; durch den Normalizer validierte untergeordnete Ketten; absturzresistente Teilergebnisse; untergeordnete Prozesse erben niemals die einstündige Cache-Stufe – alles am Tag direkt aus dem Quellcode des Delegationswerkzeugs ermittelt), Anbieter/Modelle (GPT-6 Astra und Astra Pro mit Fast-/Flex-Stufen, auf Codex-OAuth kontogebunden und mit einer optionalen -900k-Variante; claude-fable-5.1; gemini-3.7/3.8-flash; qwen3.8-max-0902; Muse Spark 1.3 sowie das image_gen-Plugin muse-image; Suche und Extraktion mit Tavily; die verwaltete llama.cpp-Laufzeitumgebung; Anbieter als externe Prozesse; Katalogaktualisierung alle 20 Minuten über model_catalog.ttl_minutes) und die Desktop-Welle (Kommentar-Modus des integrierten Browsers, der Selektor, Markup und Stile pro Annotation in nach Regionen gruppierten Batches überträgt; strukturierte Sitzungs- und Automatisierungssteuerung; Sitzungen per Ziehen erstellen; Sitzungsimport fremder Transkripte; display.resume_last_session; Einwilligung zum echten profile beim ersten Öffnen; integrierter Katalog optionaler skills; russische Desktop-Lokalisierung). Nur im Changelog und anhand von Commits oder Quellen verifiziert: cron-Zuverlässigkeit (Übergabe beim Neustart über drei verifizierte Korrektur-Commits gehärtet, Zustellungs-Deduplizierung mit Aufbewahrung des Endstatus serialisiert, Race Condition beim Erstellen pausierter Jobs geschlossen, Discord-cron-Medien werden an ihr Ziel geleitet und Uploadfehler gemeldet, Kontinuität bleibt auch über stille Audit-Ticks hinweg erhalten), Shell-Parsing für Genehmigungen (GNU-env-Split-Escapes und argv0-Operanden, Grenzen von env-argv und Shell-Kommentaren, Befehlsersetzungsinhalte in Anführungszeichen behalten ihre Befehlsgrenzen, approvals.deny innerhalb isolierter Container), der Watchdog für die Startverfügbarkeit des gateway (hermes_startup_watchdog.py; gateway.startup_watchdog mit einer Frist von 300 s und Hard Exit 75), Robustheit von state.db (Lost-and-found-Wiederherstellung mittels sqlite3-.recover, FTS-Routing für like_scan, neue Datei docs/state-db-recovery.md), Performance (search_files führt ripgrep auf lokalen POSIX-Hosts nativ aus, Transkripte untergeordneter Delegationen sind ab Schema v30 vom Trigramm-FTS-Index ausgeschlossen, gemeinsamer OpenAI-httpx-Client für Haupt- und Hilfspfade), gateway.trust_env, die Slack-Block-Kit-Auswahl für /model und die Medienzustellung aus Remote-Sandboxes (Anmeldedaten und darauf verweisende Symlinks verlassen die Sandbox nie); die Fehlerbehebung erhält eine Doctor-Prüfung auf veraltete HERMES_MAX_ITERATIONS-Überbleibsel. Aktualisierte Bestandsaufnahme am Tag von v2026.8.31 auf v2026.9.7: 39 statische Anbieter und 39 Anbieter-Plugin-Ordner, beide eintragsidentisch mit v0.21.0 – die Behauptung aus dem Vorabscan, es gebe „38 statische Anbieter, xai wurde in das Plugin übernommen“, wurde durch den Quellcode widerlegt (das xai-Tupel befindet sich weiterhin in der statischen Liste; nur die Datei wurde verschoben, von hermes_cli/models.py nach hermes_cli/models_catalog_static.py:311); prompt_builder.py wurde im mentalen Modell und im CLI-Datenfluss auf den neuen Pfad agent/prompt_builder.py umgestellt; die Behauptung aus v0.16 zur stündlichen Katalogaktualisierung bleibt auf diese Version beschränkt, ergänzt um den daneben genannten 20-Minuten-Takt. Bestehende Angaben erneut verifiziert und unverändert: der Hinweis zur Benennung von hermes approvals test, Standardwert 500 für --max-turns (cli.py:400 am Tag; der veraltete Docstring mit der Angabe 60 wurde nicht übernommen), 2.000 Zeilen für read_file, Delegationsgrenzen 250/10, compression.tail_mode: lean, Node 26, 17 CLI-Gebietsschemata. 41424344454647
2026-07-28 Leitfaden v1.12: Durch die Suchnachfrage angestoßene Erweiterung der Abdeckung – für zwei Themen mit guten Konversionsraten fehlte eine passende Überschrift als Ziel. Keine neue Version. GSC weist für hermes swarm und hermes agent swarm bei einer Position um 8 Konversionsraten von 4,4–6,3 % sowie für hermes smart model routing bei Position 6,7 eine Rate von 4,9 % aus, obwohl keines der Themen einen eigenen Abschnitt hatte: swarm kam nur im Fließtext innerhalb des Multi-Agent-Kanban-Abschnitts und in Changelog-Zeilen vor, „smart model routing“ ausschließlich in einer Fußnote. Unter Multi-Agent Kanban wurde Was ist ein Hermes Swarm? hinzugefügt – der Abschnitt definiert einen swarm als parallele Worker auf einem gemeinsamen dauerhaften Board, dokumentiert die swarm-Topologie aus v0.15.0, die automatische Aufgliederung, aufgabenspezifische Modellüberschreibungen, geplante Aufgaben sowie die Worktree-Verwaltung und stellt tabellarisch dar, welchen Fehler jeder Mechanismus verhindert. Provider Rotation & Fallback wurde in Smart Model Routing: Provider Rotation & Fallback umbenannt und um eine Einleitung ergänzt, die Anmeldedaten-Pools, das Fallback-Modell und das Hilfsrouting als ein zusammenhängendes System beschreibt. Da intern kein Anker verlinkt war, verursacht die Umbenennung keine fehlerhaften Verweise. 59 2 6
2026-08-31 Leitfaden v1.17: Hermes v0.21.0 „The Pantheon Release“ (Tag v2026.8.31, 31. Aug.) – der kuratierte Rollup ist da. Neuer Abschnitt „Neuerungen“ oberhalb des Herald-Abschnitts, gegliedert nach den Funktionsbereichen der Version: Bot Mode ist in der Desktop-App enthalten und standardmäßig aktiviert (benannte profiles, deterministische Avatare, Gruppenchats mit @-Erwähnungen), Bot-zu-Bot-Direktnachrichten mit hermes peer (Antworten landen im kanonischen Bot Chat des jeweiligen Agenten), cron-Kontinuität (continuity=true, dauerhafte Notizblöcke, Überspringen von LLM im Überwachungsmodus, Festlegen des Aufwands pro Job – der Abschnitt „Geplante Aufgaben“ erhält die am Tag gültige Funktionsweise aller vier Punkte), Live-Orchestrierung von Subagenten (delegate_task zum Auflisten/Steuern/Stoppen, Ausgaben untergeordneter Prozesse nach dem JSON-Schema, Standardwerte auf 250 Iterationen und 10 gleichzeitig aktive untergeordnete Prozesse erhöht – in config_defaults.py anhand des Quellcodes verifiziert; die Angaben 3/50 auf der Dokumentationsseite zur Delegation sind dagegen veraltet), die MCP-Kommandozentrale (einschließlich hermes://-Installationslinks – MCP-Abschnitt aktualisiert), die CLI-Leistungswelle (/palette und Strg+P sowie ein auf einem gemeinsamen Register basierendes /status wurden den Slash-Befehlstabellen hinzugefügt, außerdem wird das Filtern während der Eingabe bei /model erwähnt; die in den Release Notes verwendete Bezeichnung hermes approval-check ist am Tag nachweislich hermes approvals test – ein entsprechender Unterbefehl existiert nicht), der vom Agenten gesteuerte integrierte Browser, die Anbieter-/Modellwelle (sechs neue Anbieter; die Matrix erhält Zeilen für Tencent TokenPlan, Nebius Token Factory, Ramp Router und Alibaba Token Plan mit den in der Dokumentation genannten Umgebungsvariablen; model_overrides; Warnungen zu Daten-Training-Stufen; Anbieter-Plugins über pip), die Sicherheitswelle (Schreibzugriffe auf AGENTS.md, skills und memory erfordern stets eine Genehmigung – security.protected_instruction_files: true und die Sperre in tools/file_tools.py wurden am Tag verifiziert; umfassende Schwärzung; Genehmigungsabdeckung unter Windows; hermes desktop --setup-tcc-identity; Blender-MCP entfernt – „Security Hardening“ erhält eine vierte Welle), die Weiterentwicklung des gateway, die Welle aus 8 skills und die Liste der ZURÜCKGENOMMENEN Funktionen (Model Council /council, DCP context engine, gateway-Server ausschließlich über WS – Replay mit Sequenzstempeln #94219 WURDE ausgeliefert; Electron wieder auf 40.10.2; grep bestätigt, dass der Leitfaden keine der zurückgenommenen Funktionen dokumentiert hatte). Der Hinweis des Rollup-Unterabschnitts auf später nachgereichte Notizen ist ERLEDIGT und verweist nun auf den kuratierten Abschnitt; die Fensterblöcke bleiben als tagbezogene Aufzeichnung erhalten. Aktualisierte Bestandsaufnahme am Tag von v2026.8.27 auf v2026.8.31: statische Anbieter 38 → 39 (+tencent-tokenplan), Anbieter-Plugin-Ordner 37 → 39 (+nebius-token-factory, +router, beide auth_type="api_key"), Anbieterzeilen in der Dokumentation 41 → 45; unverändert und erneut verifiziert: 28 Plattformzeilen in der Dokumentation / 24 Mitglieder des Platform-Enums (identische Liste) / 22 Adapterordner, _BUILTIN_SUBCOMMANDS identisch (73, peer bereits seit den Rollup-Fenstern vorhanden, kein version), 7 Terminal-Backends plus Plugin-Register (Register byteidentisch), 14 personalities und 17 Gebietsschemata (byteidentische/identische Listen), Lean-Standardwert für die Komprimierung und die Belegung der Hilfs-Slots, _startup_fast.py/portal_cli.py byteidentisch. Bei der Verifizierung behobene Abweichung: hermes chat -q startet auf einem TTY nun eine interaktive Sitzung (das neue --oneshot stellt das Verhalten „Antworten und beenden“ wieder her), und der Standardwert für --max-turns wurde in der Chat-Tabelle entsprechend der Parser-Hilfe am Tag von 90 auf 500 korrigiert. 35363738394033
2026-08-27 Leitfaden v1.16: Hermes v0.20.6 (Tag v2026.8.27, 27. Aug.) – vierte Zusammenfassung. Der Abschnitt zur Zusammenfassung erhält sein viertes Zeitfenster, entsprechend der releaseeigenen Beschreibung (~1.313 Commits in ~1.557 Dateien, +177.113 / −21.682 – ~525 zusammengeführte PRs seit v0.20.5): zustimmungspflichtiges Browsing mit echten Profilen (standardmäßiges Chromium-Profil, Schließen unter Windows nach Bestätigung), der Desktop-Browser in einem eigenen Betriebssystemfenster, eine verwaltete SSH-Engine für Remote-Updates samt Leiste für Flotten-profile, Erweiterung des Remote-MCP-Katalogs (über 50 live-verifizierte, vom Anbieter gehostete Server, darunter Cloudflare, Grafana Cloud, Better Stack und Railway), optionale Betriebssystem-Schlüsselbundverschlüsselung für gespeicherte Geheimnisse, neue Modelle in der Auswahl (GLM-5.3-Flash, MiniMax M3 free, MiniMax H3 Max video), TTL-Ergebnis-Caching für web_search/web_extract, tool_search mit mehreren Abfragen und Wortstammerkennung, Updateprogramme, die gateways über den Kontroll-Socket anhalten, Ablehnung unsicherer In-Place-Updates bei Image-/paketverwalteten Installationen, Bestätigungen dauerhafter cron-Vorfälle, Steuerelemente für Slack-Linkvorschauen und gemeinsam genutzte Docker-Containeridentitäten. Zwei Release-Aussagen widersprachen bestehenden Abschnitten; beide wurden am Tag bestätigt und korrigiert: Lean-Tail-Komprimierung ist die Standardeinstellung (Context Compression mit den Schlüsseln des Tags neu geschrieben – tail_mode: lean, threshold_tokens, protect_first_n, Einstellungen für die Zusammenfassung unter auxiliary.compression.* mit automatischer Migration auf Konfigurationsversion 17; der umgekehrte Hinweis zur Fehlerbehebung wurde korrigiert) und Terminal-Backends lassen sich durch Plugins erweitern (neu dargestellt als sieben integrierte Backends plus Plugin-Registry nach Art der Anbieterauswahl; integrierte Namen sind reserviert). Die am Tag erneut überprüften Angaben wurden von v2026.8.19 auf v2026.8.27 aktualisiert: 38 statische Anbieter + 37 Anbieter-Plugin-Ordner, 24 Mitglieder des Platform-Enums / 22 Adapterordner / 28 Zeilen in der Dokumentationstabelle, kein version-Unterbefehl (73 Einträge in _BUILTIN_SUBCOMMANDS, worktree vorhanden), Parser-Optionen und zitierte Hilfetexte unverändert, BUILTIN_PERSONALITIES weiterhin 14 (helpful bis hype); locales/ enthält nun 17 Kataloge (en + 16 Übersetzungen; Anzahl am Tag ergänzt). main liegt AUF dem Tag (ahead_by: 0, Status identisch). Ebenfalls korrigiert wurde eine bei der Überprüfung festgestellte Abweichung: die veraltete Standardeinstellung des Hilfssystems – auto leitet nun jede Hilfsaufgabe an das Haupt-Chatmodell weiter, statt über die Erkennungskette Gemini Flash via OpenRouter → Nous → Codex; Auxiliary Models wurde mit der Slot-Liste des Tags neu geschrieben (title_generation, tts_audio_tags, triage_specifier, kanban_decomposer, profile_describer mit belegten Kurzbeschreibungen ergänzt; die Slots web_extract und session_search wurden upstream entfernt – keiner von beiden verwendet mehr ein LLM – und flush_memories ist aus den Standardeinstellungen verschwunden), außerdem wurde der ausschließlich Anthropic betreffende Eintrag zur Fehlerbehebung auf eine neue Faktengrundlage gestellt. Die Zeile des Releases zur Neuinstallation verwendet die rohe Skript-URL von GitHub; der Leitfaden behält die kanonische URL hermes-agent.nousresearch.com/install.sh bei. Kuratierte Hinweise sind weiterhin für v0.21.0 angekündigt. 293031323334
2026-08-26 Leitfaden v1.15: KORREKTUR – kein neues Release (neuester Tag v2026.8.19 / v0.20.5, 21. Aug.); bestehende Aussagen am Tag erneut überprüft. Terminal-Backends: sechs → sieben; vercel_sandbox wurde der Tabelle und dem Konfigurationskommentar hinzugefügt. Messaging-Plattformen: Die vereinzelten Angaben von „22“ wurden mit den 28 Einträgen der Dokumentationsvergleichstabelle am Tag abgeglichen und die Zählgrundlage angegeben (24 integrierte Mitglieder des Platform-Enums, 22 gebündelte Adapterordner); ntfy und Buzz wurden der gateway-Liste hinzugefügt. Anbieter: „~20 / ~22 erstklassige“ wurde durch die belegte Anzahl ersetzt (38 statische Einträge in CANONICAL_PROVIDERS plus automatische Erweiterung durch 37 gebündelte Anbieter-Plugins; 41 Cloud-/Abonnementzeilen auf der Dokumentationsseite), „vollständige Liste“ wurde entfernt, die Qwen-OAuth-Zeile korrigiert und 17 Matrixzeilen ergänzt (OpenCode Free, OpenAI API direct, Vertex AI, Azure Foundry, Bedrock, NVIDIA NIM, Ollama Cloud, StepFun, MiniMax OAuth, Meta AI, NovitaAI, Arcee AI, GMI Cloud, Actual Computer, Tencent TokenHub, CommandCode, Alibaba Coding Plan). hermes version → hermes --version (am Tag kein Unterbefehl). hermes honcho wurde als Plugin-abhängig gekennzeichnet. „Flotten---plan“ → hermes update --plan. Global Options erhält --in, --tui, --cli, --dev, --ignore-rules, --ignore-user-config; Top-Level Commands erhält 34 Zeilen aus _BUILTIN_SUBCOMMANDS, darunter hermes worktree list\|prune mit den zugehörigen Flags; der Slash-Befehl /worktree wurde ergänzt; hermes setup --portal und hermes portal login\|info\|open\|tools wurden dokumentiert. main lag zum Zeitpunkt der Überprüfung 1.104 Commits vor dem Tag (inzwischen sämtlich in v2026.8.27 zusammengefasst); kuratierte Hinweise sind für v0.21.0 angekündigt. 23242526272829
2026-08-24 Leitfaden v1.14: v0.20.5 (Tag v2026.8.19, veröffentlicht am 21. Aug.). Der Abschnitt zur Zusammenfassung erhält sein drittes Zeitfenster (~746 Commits / ~323 PRs seit v0.20.4): die schlüssellose Web-Stufe (kostenlose Rotation zwischen 5 Anbietern mit Ring-Failover – Websuche bei Neuinstallationen ganz ohne Schlüssel), Verbesserungen an CLI (unscharfe Suche in der /model-Auswahl, Befehlspalette mit Strg+P, informativeres /status), Gruppenraum-Threads im Bot Mode + einklappbare Zusammenfassungen + Drag-and-drop für PDFs/Dateien, hermes worktree list/prune, Belege für hermes update und Flottenüberprüfung mit --plan, persistenter cron-Speicher mit Reasoning-Aufwand pro Aufgabe, Schutzmechanismen gegen Ausführungsstillstände auf Grundlage der Erkenntnisse aus der Composio-Evaluierung, der Anbieter opencode-free ohne Authentifizierung sowie Desktop-Leistungsverbesserungen (Paint-First-Hydration, React Compiler in beiden Renderern). v0.21.0 mit vollständigen kuratierten Hinweisen steht weiterhin aus – die Zusammenfassungen stammen aus der releaseeigenen Beschreibung des Zeitfensters. Die Versionshistorie im Header wurde aktualisiert. 23
2026-08-20 Leitfaden v1.13: v0.20.3 (Tag v2026.8.16.2, veröffentlicht am 17. Aug.) und v0.20.4 (Tag v2026.8.18, 18. Aug.). Neuer Unterabschnitt unter dem Herald Release: Die Folge von Zusammenfassungen bringt nun Funktionen mit sich und dient nicht mehr nur der Stabilisierung. v0.20.3 (~250 Commits / ~125 PRs): Migration von MCP 2.x auf SDK mit Unterstützung für das zustandslose Protokoll vom 28.07.2026, gebündeltes Bot-Mode-Plugin (hermes-bots) mit dem zentralen Teamkollegenprotokoll, CommandCode-Anbieter-Plugin, Laufzeitverträge für die Computernutzung mit Cua Driver 0.20, Härtung der Laufzeitverantwortung von Python, Selbstheilung des cron-Schedulers, Korrekturen gegen Datenverlust bei der Sitzungsübergabe, Ökosystem-Portierungen (/worktree, Beibehaltung manueller Änderungen bei /rollback, Sicherheitsprüfung bei der Plugin-Installation). v0.20.4 (~146 Commits / ~74 PRs): Desktop-Oberfläche mit Glas-/Transluzenzeffekt samt Frost-Auswahl, SESSIONS|BOTS-Seitenleiste mit Tabs und Ein-/Ausblendung einzelner Bots, beratende NVIDIA-SkillEvaluator-Prüfung der Stufe 1 bei skill-Installationen (Lizenz + Sicherheit), Härtung des cron-Medienversands, ehrliche Statusmeldung zu geparkten Branches bei hermes update. Beide Releases geben an, dass die vollständigen kuratierten Hinweise mit v0.21.0 erscheinen – die Zusammenfassungen stammen aus den releaseeigenen Beschreibungen der Zeitfenster. Der einleitende Satz und die Tag-Abfolge wurden aktualisiert. 54
2026-08-16 Leitfaden v1.12: v0.20.0 „The Herald Release“ (3. Aug., Tag v2026.8.3) sowie die Stabilisierungstags v0.20.1 (13. Aug.) und v0.20.2 (16. Aug.). Drei Korrekturen beheben Anweisungen, die nicht mehr funktionieren: Node 26 ist erforderlich (das Installationsprogramm setzt NODE_VERSION="26" fest und lehnt ältere Laufzeitumgebungen ab – die Angabe Node v22 auf der Dokumentationsseite ist veraltet, daher sind das Installationsprogramm und die Release-Hinweise maßgeblich), pip und Homebrew wurden eingestellt und nicht nur als veraltet markiert („Shell-Installationsprogramm / Docker / Nix sind die unterstützten Kanäle“), und das standardmäßige Iterationslimit wurde von 90 auf 500 erhöht, wodurch sämtliche Zahlen in der Tabelle zum Budgetdruck ungültig wurden. Der Installationsbefehl wurde auf die kanonische URL https://hermes-agent.nousresearch.com/install.sh korrigiert. Entfernte Oberfläche: Die skill-Quelle claude-marketplace ist entfallen und wurde in der Quellliste durch browse-sh ersetzt; die standardmäßigen GitHub-Quellen sind nun openai, anthropics, huggingface, NVIDIA und gstack. Das Messaging-gateway wurde von 22 auf 28 Plattformen korrigiert, indem die Dokumentationsvergleichstabelle direkt ausgezählt wurde (die Dokumentation veröffentlicht keine offizielle Gesamtzahl). Windows (nativ) ist Tier 1 und keine frühe Betaversion; macOS unterstützt ausschließlich Apple Silicon. Ein neuer Abschnitt behandelt das Release selbst: Sprachunterhaltung mit Unterbrechungsmöglichkeit, A2A v1.0, signierte ausgehende Lebenszyklus-Webhooks, skill für fundierte Quellenangaben, die CLI-Welle mit !//init//diff//context//focus und hermes import-agent, Befehlshelfer als Geheimnisquelle, Kaltstart mit hermes -w von ~14 s auf ~1,8 s sowie Desktop-Artefakte und ein Plugin-SDK. Als unverändert verifiziert: die drei Authentifizierungswege, die Struktur von ~/.hermes/, hermes update und die dokumentierte Werkzeugliste. 55
2026-07-21 Leitfaden v1.11: v0.19.0 „The Quicksilver Release“ (20. Juli 2026, Tag v2026.7.20). Abschnitt „Neuerungen in v0.19.0“ hinzugefügt: ~80 % kürzere TTFT beim ersten Turn (Kaltstart von Übermittlung bis Dispatch ~4,3 s → ~0,9 s über CLI/gateway/TUI/Desktop/cron hinweg), Reasoning wird standardmäßig live gestreamt (display.show_reasoning EIN), Geschwindigkeitswelle mit ~20 PRs für Desktop (14× schnelleres Streaming-Markdown) + inkrementelles Markdown in der TUI; Installationen über pip/Homebrew sind veraltet (lediglich Warnung „nicht unterstütztes Legacy-Verfahren“, Einstellung der Veröffentlichung über PyPI/Homebrew geplant) — Installationsabschnitt und Kurzfassung auf den einzeiligen Installer korrigiert; austauschbare SecretSource mit Bitwarden- und 1Password-Anbietern (op://-Referenzen, mehrere Vaults, deterministische Rangfolge, Herkunftsnachweis pro Variable); Smart Approvals als Standard (unabhängiger LLM-Reviewer für jeden markierten Befehl) + benutzerdefinierte Ablehnungsregeln, die auch unter YOLO gelten, + /deny <reason> + erneut integrierte Genehmigungseskalation über pre_tool_call des Plugins; Abrechnung im Terminal mit /subscription + /topup sowie Abrechnungsregisterkarte in Desktop (die Aussage „kein separater Abonnementbefehl“ wurde zurückgenommen); Live-Transkripte von Subagents + dauerhafte Hintergrunddelegation + Ledger für Auslieferungsverpflichtungen in state.db; max_async_children zugunsten einheitlicher Obergrenzen für die Delegationsparallelität als veraltet markiert; profilbasiertes Nachrichtenrouting im gateway (ein gemultiplextes Bot-Token → isolierte profile, GATEWAY_MULTIPLEX_PROFILES, Routingindex in state.db, sessions.json als optionaler Legacy-Spiegel); Anbieter/Modelle: Fireworks AI (Platz 2 in der Auswahl), DeepInfra, Upstage Solar, durchgängige Unterstützung für GPT-5.6 (Sol/Terra/Luna + Pro), grok-4.5 allgemein verfügbar, kimi-k3 (kimi-k2.x eingestellt), Claude Sonnet 5 vollständig integriert, enabled: false pro Anbieter + excluded_providers, Reasoning-Aufwandstufen max/ultra mit Überschreibungen pro Modell/pro MoA-Slot und sitzungsbezogenem /reasoning; CLI/MCP: hermes sessions export (Markdown/Quarto/HTML/nur Prompt/HF-Trace, --redact), /model --once, gestapelte Slash-skill-Aufrufe, --safe-mode, hermes config get/unset, echtes Headless-Verhalten von hermes serve, MCP-Benennung nach dem Schema mcp__server__tool. Erfasst außerdem die zuvor fehlenden Patch-Tags v0.18.1 (Tag v2026.7.7) und v0.18.2 (Tag v2026.7.7.2) vom 7.–8. Juli 2026 — gebündelte Infrastruktur-Patches; die wesentliche Korrektur in v0.18.2 hebt die feste Bindung von WhatsApp Baileys auf und verwendet 7.0.0-rc13, um zuverlässige Docker-Builds zu ermöglichen. 56 57
2026-07-16 Ersten Eintrag zur Fehlerbehebung für die wortgetreue Startfehlermeldung hinzugefügt: „No inference provider configured. Run ‘hermes model’ to choose a provider and model“ — aufgrund entsprechender Suchnachfrage; verweist auf die interaktive Auswahl, hermes doctor und die drei Authentifizierungswege. Keine Produktänderungen. 2 7
2026-07-01 Leitfaden v1.10: v0.18.0 „The Judgment Release“ (1. Juli 2026, Tag v2026.7.1). Abschnitt „Neuerungen in v0.18.0“ hinzugefügt: vollständiger P0/P1-Backlog abgeschlossen (~692 Einträge); Mixture-of-Agents als Funktion erster Klasse mit beschrifteter Ensemble-Ausgabe pro Modell und Live-Streaming; Abschlussverträge — /goal überprüft die eigene Arbeit durch Ausführung der Projektprüfungen; /learn (Workflow beschreiben → wiederverwendbarer skill, konform mit CONTRIBUTING.md); /journey-Zeitleiste für Erinnerungen/skills + Erinnerungsgraph in Desktop; Fan-out von Subagents im Hintergrund (parallel delegierte Aufgaben); Desktop Projects (Projekt/Repository/Lane); auf null skalierbares gateway mit koordinierter Leerung; Google Vertex AI (Gemini über GCP-Dienstkonten, automatische Aktualisierung von OAuth2); /prompt-Composer für \$EDITOR. Quelle: hermes-agent-Releases. 22
2026-06-21 Leitfaden v1.9: v0.17.0 „The Reach Release“ (19. Juni 2026, Tag v2026.6.19). Abschnitt „Neuerungen in v0.17.0“ hinzugefügt. Messaging: iMessage ohne Relay über Photon Spectrum (hermes photon login, Gerätecode-OAuth), offizieller WhatsApp-Business-Cloud-API-Adapter (keine Bridge), SimpleX-Gruppen + Anhänge, Raft-Plattform-Plugin. Modelle: z-ai/glm-5.2 (1M), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra, grok-composer-2.5-fast (xAI-OAuth, 200k); xAI-Standard → grok-build-0.1; adaptive Anthropic-Modelle lassen das Feld reasoning weg. Desktop/Dashboard: Subagents im Hintergrund mit Live-Beobachtungsfenstern (delegate_task(background=true)), vollständiger profile-Builder, überarbeiteter Skills Hub, Automation Blueprints, sichere 401-Anmeldung, Themes aus dem VS Code Marketplace, Benutzeroberfläche auf Japanisch + traditionellem Chinesisch. skills/Tools: Bild-zu-Bild-Bearbeitung mit image_generate, atomarer operations-Batch für memory, skill simplify-code, boolesches write_approval (ersetzt write_mode). Architektur: MCP-Elicitation-Handler, austauschbarer CronScheduler + Chronos, Managed-Bereich (/etc/hermes), Gateway-Gateway-Relay. Befehle: /version, /billing, hermes curator run --consolidate (Opt-in). Sicherheit: Umgehung der Denylist durch Shell-Escaping geschlossen, Genehmigungs-/gateway-Adapter nach dem Fail-Closed-Prinzip, bereinigte cron-Umgebung, Geheimnisse in Debug-Dumps geschwärzt, Screening auf Datenabfluss über MCP-stdio, Versionsanhebungen für urllib3- und PyJWT-CVEs. 21
2026-06-08 Leitfaden v1.8: v0.16.0 „The Surface Release“ (5. Juni 2026, Tag v2026.6.5). Titel des Leitfadens auf v0.16 geändert und Abschnitt „Neuerungen in v0.16.0“ hinzugefügt. Wichtigste Neuerung: Hermes ist nicht mehr auf das Terminal beschränkt. Native Hermes Desktop-App (Electron, macOS/Linux/Windows) mit Ein-Klick-Installation, Selbstaktualisierung innerhalb der App, Streaming-Chat, Drag-and-drop + Einfügen von Bildern aus der Zwischenablage, Cmd+K-Palette, Sitzungsarchiv/-suche, Modellauswahl in der Statusleiste, Verbindung mit einem entfernten gateway über sicheres WebSocket (OAuth oder Benutzername/Passwort, Hosts pro profile, profile-übergreifende @session-Links) sowie vollständiger Übersetzung ins vereinfachte Chinesisch mittels typisiertem i18n. Browser-Administrationsbereich (Web-Dashboard → vollständige Verwaltung): MCP-Katalog aktivieren/deaktivieren, Anmeldedatenverwaltung, Webhook-/Hook-Erstellung, Speicherkonfiguration, gateway-Steuerung, Systemseite mit Prüfung vor Aktualisierungen + Debug Share, neue Kanalseite und austauschbare Authentifizierung (Benutzername/Passwort, selbst gehostetes OIDC, hermes dashboard register). Neue Befehle: /undo [N] (CLI/TUI/Messaging), konfigurierbare Standardschnittstelle (cli/tui, --cli), vereinheitlichtes /model in der TUI + Sitzungs-Overlay, hermes portal, hermes prompt-size, hermes sessions optimize. Neue Modelle: deepseek-v4-flash, MiniMax-M3 (1M Kontext), qwen3.7-plus, gemini-3.5-flash; erstklassige Unterstützung für xAI Grok OAuth im Desktop-Launcher; unscharfe Modellauswahl; stündliche Katalogaktualisierung. skills: schlankere Standardauswahl (Spotify → natives Plugin, Linear → hermes mcp install linear, nicht mehr funktionsfähige skills entfernt), Relevanzfilter environments: (kanban/docker/s6), NVIDIA/skills als standardmäßig vertrauenswürdiger Tap, schrittweise (bereichsbezogene) Offenlegung von MCP-/Plugin-Tools. Sicherheit: CVE-2026-48710 (Starlette BadHost) auf ≥1.0.1 festgelegt; SSRF-Prüfungen aus dem Event-Loop ausgelagert; Bedrock-Bearer-Token aus der Subprozessumgebung entfernt; Lesezugriff auf bws_cache.json geschützt; docker restart/stop/kill zu gefährlichen Mustern hinzugefügt; Bereinigung unsichtbarer Unicode-Zeichen. 2 P0- + 62 P1-Einträge geschlossen (16 mit Sicherheits-Tag). 20
2026-05-31 Leitfaden v1.7.1: v0.15.1 (29. Mai 2026, 01:12 UTC) — Velocity-Patch. Hotfix am selben Tag nach Velocity; auf die Tag-Zeile v2026.5.29 festgelegt. Behebt die 401-Neuladeschleife im Dashboard, die Bereitstellungen im Loopback-Modus betraf. Docker behandelt --insecure nicht mehr als implizit — setzen Sie ausdrücklich HERMES_DASHBOARD_INSECURE=1, um diese Option wieder zu aktivieren. Unverpackte MCP-Befehle (npx, npm, node) werden in Docker-Containern wieder korrekt aufgelöst. Quellen-Badges und Kategorien-Seitenleiste der skills-Seite werden dargestellt. Kanban-Worker reagieren ordnungsgemäß auf SIGTERM, statt verwaiste Prozesse zu hinterlassen. Skills.sh-Katalog durch Sitemap-Erkennung von 858 auf 19.932 Einträge erweitert. 28 Commits, 21 zusammengeführte PRs, 9 Mitwirkende. v0.15.2 (29. Mai 2026, 13:37 UTC) — Velocity-Paketierungs-Patch. Behebt Wheel- und sdist-Distributionen, sodass sie plugin.yaml-Manifeste enthalten und Installationen von PyPI ohne separates Laden des Quellbaums funktionieren. Ausschließlich die Paketierung betreffender Hotfix, 4 Mitwirkende. 58
2026-05-28 Guide v1.7: v0.15.0 (28. Mai 2026) — The Velocity release (Tag v2026.5.28) hinzugefügt. Schwerpunkt: eine umfassende Refaktorierung und neue Orchestrierungsprimitive. Codebasis-Refaktorierung: run_agent.py wurde um 76 % verkleinert (16.083 → 3.821 Zeilen) und auf 14 zusammenhängende Module verteilt. Multi-Agent-Kanban v2: automatische Zerlegung übergeordneter Ziele in Teilaufgaben, Schwarmtopologie zur parallelen Koordination von Workern, Modellauswahl pro Aufgabe, geplante Aufgaben und Worktree-Verwaltung. Leistung: eine weitere Sekunde beim Kaltstart eingespart; 47 % weniger Funktionsaufrufe pro Konversation; session_search wurde überarbeitet und ist nun 4.500-mal schneller, wobei die Abhängigkeit von LLM entfernt wurde (und damit auch die entsprechenden API-Kosten entfallen). Sicherheit: Eine Promptware-Abwehr schützt an drei Sicherheitskontrollpunkten vor Prompt-Injection der Brainworm-Klasse; die Integration von Bitwarden Secrets Manager ersetzt mehrere anbieterspezifische API-Schlüssel durch ein einziges Bootstrap-Token. Skill-Bundles: Mehrere skills lassen sich mit einem einzigen Slash-Befehl gleichzeitig laden. TUI-Sitzungsorchestrator: Verwaltung mehrerer Sitzungen in einem einzigen Terminalfenster. Neue Anbieter: Krea 2 (Medium/Large) und FAL-Plugin-Unterstützung für die Bilderzeugung; die xAI-Integrationsrunde ergänzt ein Websuch-Plugin und OAuth-Upstream-Unterstützung sowie die Erkennung eingestellter Modelle und natürliche TTS-Pausen. Kennzahlen: 1.302 Commits, 747 zusammengeführte PRs und 321 Mitwirkende aus der Community. Laut den Versionshinweisen von GitHub behebt ein Patch-Release am selben oder folgenden Tag unter anderem die 401-Neuladeschleife im Dashboard, eine explizite Umgebungsvariable für --insecure in Docker, die Auflösung reiner MCP-Befehle in Docker (npx, npm, node), die Wiederherstellung der Skills-Seite, die SIGTERM-Behandlung für Kanban-Worker sowie die Bereitstellung des vollständigen Skills-Katalogs mit 19.932 Einträgen über die Sitemap. 59
2026-05-21 Guide v1.6: v0.14.0 (16. Mai 2026) — The Foundation release hinzugefügt. Schwerpunkt: eine schlankere Installations- und Laufzeitbasis sowie umfassendere Funktionen für Anbieter, gateway, Medien und Verifizierung. Hinzugefügt wurden SuperGrok OAuth mit einem Kontextfenster von 1 Million Token für grok-4.3, der OpenAI-kompatible hermes proxy für OAuth-Anbieter, erstklassige x_search-Unterstützung, pip install hermes-agent, verzögerte Abhängigkeitsinstallationen, ein um etwa 19 Sekunden schnellerer Start, 180-mal schnellere Browser-CDP-Aufrufe, LINE und SimpleX Chat für nunmehr 22 Messaging-Plattformen, eine vollständige Microsoft-Teams-Integration, /handoff, /subgoal, native Schaltflächen für Rückfragen in Telegram und Discord, das nachträgliche Laden des Discord-Verlaufs, vision_analyze für rohe Pixeldaten, eine Verifizierungsfußzeile für Dateiänderungen nach jeder Interaktion, semantische LSP-Diagnosen bei jedem Schreibvorgang, das vereinheitlichte video_generate, computer_use über cua-driver für Anbieter ohne Anthropic, anklickbare OSC8-URLs, Unterstützung für die Zed ACP Registry, der OpenRouter Pareto Code router, NovitaAI, die Codex-App-Server-Laufzeit, der vertrauenswürdige huggingface/skills-Tap, 9 optionale skills, ctx.llm / tool_override für Plugins, Brave/DDGS-Websuche, die Umbenennung von Qwen Cloud, eine native Windows-Beta sowie die Behebung von 12 P0- und 50 P1-Problemen. 19
2026-05-07 Guide v1.5: v0.13.0 (7. Mai 2026) — The Tenacity release hinzugefügt. Schwerpunkt: ein robustes Multi-Agent-Kanban-Board (Heartbeat, Rückforderung, Zombie-Erkennung, Halluzinationsschranke, max_retries pro Aufgabe und projektübergreifende Boards), das Schwärme von einem Delegationsmuster zu einem erstklassigen Primitiv macht. Der neue Befehl /goal bindet den Agenten über mehrere Interaktionen hinweg an ein Ziel (Ralph-Schleifenmuster als Slash-Befehl). Neues Tool video_analyze, das vorrangig Gemini verwendet und erweiterbare Unterstützung für kompatible Modelle bietet. xAI Custom Voices TTS als Anbieter mit Sprachklonfunktion. Internationalisierung in 7 Sprachen (zh-Hans, ja, de, es, fr, uk, tr) für CLI und gateway-Nachrichten; die Dokumentation ist nur auf zh-Hans verfügbar. Google Chat als 20. Messaging-Plattform über das erweiterbare Adaptermuster; IRC und Microsoft Teams wurden auf dasselbe Muster migriert. ProviderProfile ABC + plugins/model-providers/ für erweiterbare Drittanbieter ohne Änderungen am Kern. Automatische Sitzungsfortsetzung nach gateway-Neustarts, /update und dem Neuladen von Quelldateien. Checkpoints v2 wurde mit einem einheitlichen Speicherdesign, echtem Bereinigen und Schutzmechanismen für den Festplattenspeicher neu geschrieben. Acht geschlossene P0-Sicherheitslücken: standardmäßig aktivierte Geheimnisredaktion, Umgehung der Gildenbeschränkung bei Discord-Direktnachrichten (CVSS 8,1), Ablehnung unbekannter Absender und Stummschaltung des Selbstchats in WhatsApp, TOCTOU bei MCP OAuth, TOCTOU bei CLI auth.json, SSRF-Mindestschutz für Browser, Prüfung von cron-Eingaben auf Prompt-Injection und Redaktion in hermes debug share. Linting nach Schreibvorgängen für Python/JSON/YAML/TOML, der reine Skriptmodus no_agent für cron, plattformweite Zulassungslisten für Slack/Telegram/Mattermost/Matrix/DingTalk sowie Verbesserungen an MCP (SSE-Transport, Weiterleitung von OAuth, MEDIA-Tags für Bilder). Kennzahlen seit v0.12.0: 864 Commits, 588 zusammengeführte PRs, 829 geänderte Dateien, 295 Mitwirkende aus der Community und 282 geschlossene Issues (13 P0, 36 P1). 18
2026-05-06 Guide v1.4: v0.12.0 (30. April 2026) — The Curator release hinzugefügt. Schwerpunkt: ein autonomer Curator im Hintergrund, der über den cron-Taktgeber des gateway ausgeführt wird (standardmäßig alle 7 Tage), die skill-Bibliothek anhand eines Kriterienkatalogs bewertet, nicht mehr funktionierende skills entfernt, verwandte skills zusammenführt und für jeden Durchlauf einen Bericht erstellt — so verwaltet sich Hermes zwischen aktiven Sitzungen selbst. Die Selbstverbesserungsschleife wurde um eine kriterienbasierte Bewertung, eine Bevorzugung aktiver Aktualisierungen, korrekte Laufzeitvererbung und auf Speicher und skills beschränkte toolsets erweitert. Vier neue Inferenzanbieter: GMI Cloud, Azure AI Foundry, MiniMax OAuth und Tencent Tokenhub. LM Studio wurde zum erstklassig unterstützten Anbieter aufgewertet. Remote-Manifeste für Modellkataloge werden nun ohne neue Releases automatisch aktualisiert. Zwei neue Messaging-Plattformen: Microsoft Teams (die 19., über eine erweiterbare gateway-Architektur) und Tencent Yuanbao (die 18., mit nativer Text- und Medienunterstützung). Native Spotify-Integration über PKCE OAuth mit gebündeltem skill; Google-Meet-Plugin für Anrufe und Transkription; Piper local TTS als Anbieter. ComfyUI v5 und TouchDesigner-MCP sind nicht mehr optional, sondern standardmäßig enthalten. Neue skills: Humanizer, claude-design, design-md und airtable. Ergänzungen für CLI: der Einmalmodus hermes -z, die Vorabprüfung hermes update --check, der Slash-Befehl /reload-skills und erweiterbare Stile für die Aktivitätsanzeige. Der sichtbare TUI-Kaltstart wurde durch verzögerte Agenteninitialisierung und verzögerte Importe um etwa 57 % verkürzt. Sicherheit: Die Geheimnisredaktion ist standardmäßig deaktiviert, um eine Beschädigung von Nutzdaten zu verhindern; eine strikte Sperrliste blockiert nicht wiederherstellbare Befehle. Kennzahlen: 1.096 Commits, 550 zusammengeführte PRs und 213 Mitwirkende aus der Community. 17
2026-04-25 Guide v1.3: v0.11.0 (23. April 2026) — The Interface release hinzugefügt. Vollständige Neuentwicklung der interaktiven TUI mit React/Ink und einem Python JSON-RPC-Backend (tui_gateway); fixierter Eingabebereich, Live-Streaming mit OSC-52-Zwischenablageunterstützung, stabile Auswahltasten, Statusleiste mit Stoppuhr pro Interaktion und Git-Branch, Bestätigung für /clear, Voreinstellung für ein helles Design und ein Beobachtbarkeits-Overlay für das Starten von Subagenten. Erweiterbare Transportarchitektur — Formatkonvertierung und HTTP-Transport wurden nach agent/transports/ ausgelagert, um die Anbieteranbindung übersichtlicher zu gestalten. Native AWS-Bedrock-Unterstützung über API Converse. Fünf neue Inferenzpfade: NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth und Vercel ai-gateway. GPT-5.5 über Codex OAuth — das neue Flaggschiffmodell von OpenAI ist nun ohne separaten API-Schlüssel über ChatGPT Codex OAuth erreichbar. QQBot (17. Messaging-Plattform) mit Einrichtung per QR-Scan und Streaming. Erweiterte Plugin-Oberfläche: Slash-Befehle, Tool-Weiterleitung, Ausführungsblockierung und Ergebnistransformation. /steer <prompt> — Hinweise während eines laufenden Agentendurchlaufs, die nach dem nächsten Tool-Aufruf als Notiz für den Agenten eingefügt werden, ohne die Interaktion zu unterbrechen oder den Prompt-Cache zu beeinträchtigen. Shell-Hooks binden Skripte ohne Python-Plugins als Lebenszyklus-Hooks ein. Der Direktzustellungsmodus für Webhooks leitet Nutzdaten unter Umgehung des Agenten direkt an einen Plattformchat weiter, etwa zur Verteilung an mehrere Empfänger. Intelligentere Delegation mit Orchestratorrollen, konfigurierbarer Verschachtelungstiefe und Dateikoordination. Das Dashboard erhält ein Plugin-System, einen Live-Designwechsel, Internationalisierung und eine responsive Darstellung auf Mobilgeräten. Kennzahlen seit v0.9.0: 1.556 Commits, 761 zusammengeführte PRs, 1.314 geänderte Dateien, 224.174 Einfügungen und 29 Mitwirkende aus der Community. 60
2026-04-16 Guide v1.2: v0.10.0 — Nous Tool Gateway hinzugefügt. Zahlende Abonnenten von Nous Portal können nun ohne zusätzliche API-Schlüssel auf verwaltete Tools zugreifen (Firecrawl-Websuche, Bilderzeugung mit FAL / FLUX 2 Pro, OpenAI TTS und Browserautomatisierung mit Browser Use). Die Aktivierung erfolgt für jedes Tool separat über das neue Konfigurationsfeld use_gateway. Sind beide Varianten konfiguriert, bevorzugt die Laufzeit das gateway gegenüber direkten API-Schlüsseln. Die Umgebungsvariable HERMES_ENABLE_NOUS_MANAGED_TOOLS wurde entfernt. Hermes Agent CLI bleibt MIT-lizenziert und vollständig kostenlos. 61
2026-04-13 Guide v1.1: Funktionen aus v0.8.0 und v0.9.0 hinzugefügt. Lokales Web-Dashboard, Modus /fast, die Plattformen iMessage und WeChat (insgesamt 16), Überwachung von Hintergrundprozessen (watch_patterns), erweiterbare context engine, hermes backup/hermes import, Termux/Android, die Anbieter xAI, MiMo, Google AI Studio und Qwen, der Befehl /debug sowie umfassende Sicherheitshärtungen. 15 16
2026-04-10 Guide v1.0: Erstveröffentlichung zu Hermes Agent v0.7.0. Anbieterauthentifizierung, Konfiguration, CLI, Slash-Befehle, Tools, skills, Speicher, gateway, cron, MCP, Komprimierung, Architektur, OpenClaw-Migration, Fehlerbehebung und häufig gestellte Fragen.
—

Referenzen


  1. Nous Research, Projekt-README zu “Hermes Agent” auf GitHub. Primärquelle für die Produktbeschreibung (selbstoptimierender Agent, mehrere Anbieter, Messaging-gateway, Terminal-Backends, skill-Weiterentwicklung, cron-Planer, Delegierung) und den Einzeiler unter “Schnellinstallation”. ↩↩↩

  2. Nous Research, “KI-Anbieter” in der Dokumentation zu Hermes Agent. Primärquelle für die vollständige Anbieterliste, die Authentifizierungsmethoden der einzelnen Anbieter (Nous Portal OAuth, Codex-Gerätecode, GitHub-Copilot-Tokentypen, die drei Authentifizierungsmethoden von Anthropic, chinesische KI-Anbieter, Hugging-Face-Routing, benutzerdefinierte Endpunkte), die drei Authentifizierungswege (API-Schlüssel in .env, OAuth über hermes model, benutzerdefinierter Endpunkt in config.yaml), die Syntax des Slash-Befehls /model (einschließlich custom:name:model), Einrichtungsvorlagen für Ollama/vLLM/SGLang/llama.cpp/LM Studio, WSL2-Netzwerkanweisungen, die Erkennungskette für die Kontextlänge, die Konfiguration von Fallback-Modellen, intelligentes Modell-Routing und benannte benutzerdefinierte Anbieter. Alle anbieterspezifischen Namen von Umgebungsvariablen, Tokentypen, Überschreibungen der Basis-URL und Modellkennungen in diesem Beitrag stammen von dieser Seite. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  3. Nous Research, “Architektur” im Entwicklerhandbuch zu Hermes Agent. Primärquelle für das Systemübersichtsdiagramm, die Verzeichnisstruktur, den Datenfluss durch die CLI-Sitzungs- und gateway-Nachrichtenpfade, die drei API-Modi (chat_completions, codex_responses, anthropic_messages), die Anbieterauflösung über runtime_provider.py, die Sitzungspersistenz über SQLite + FTS5, die Plattformliste des Messaging-gateways, die Erkennungsquellen des Plugin-Systems, die profile-Isolierung und die sechs Designprinzipien. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  4. Nous Research, “Konfiguration” im Benutzerhandbuch zu Hermes Agent. Primärquelle für die Struktur des Konfigurationsverzeichnisses, die Regel für config.yaml gegenüber .env („config.yaml hat bei nicht geheimen Einstellungen Vorrang“), die Konfigurationsrangfolge (CLI-Argumente → Umgebung → config.yaml → .env → Standardwerte), die Einstellungen für die Kontextkomprimierung (compression.*-Block mit threshold, threshold_tokens, target_ratio, tail_mode, protect_last_n, protect_first_n; Modell/Anbieter/Endpunkt des Zusammenfassungsmodells befinden sich seit der Migration auf Konfigurationsversion 17 unter auxiliary.compression.*), die Schwellenwerte für den Budgetdruck (Vorsicht bei 70 %, Warnung bei 90 %), Streaming-Zeitüberschreitungen mit automatischer Anpassung für lokale Anbieter und den vollständigen Konfigurationsblock für Hilfsmodelle (auxiliary: mit den Slots vision, web_extract, approval, compression, session_search, skills_hub, mcp, flush_memories). Auch die Beschränkung des Anbieters "main" auf Hilfs-, Komprimierungs- und Fallback-Slots stammt von dieser Seite. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  5. Nous Research, “Von OpenClaw migrieren” in den Leitfäden zu Hermes Agent. Quelle für den Migrationsablauf von OpenClaw zu Hermes. ↩↩

  6. Nous Research, “Referenz der CLI-Befehle” in der Referenzdokumentation zu Hermes Agent. Primärquelle für jeden in diesem Beitrag dokumentierten CLI-Befehl der obersten Ebene, darunter hermes chat, hermes model, hermes gateway, hermes setup, hermes auth, hermes status, hermes cron, hermes webhook, hermes doctor, hermes dump, hermes logs, hermes config, hermes pairing, hermes skills, hermes honcho, hermes memory, hermes acp, hermes mcp, hermes plugins, hermes tools, hermes sessions, hermes insights, hermes claw, hermes profile, hermes completion, hermes update und hermes uninstall. Alle Flags der Unterbefehle, Optionsbeschreibungen, Verhaltensweisen des Anmeldedaten-Pools, Syntax zur Protokollfilterung, Flags für die OpenClaw-Migration, Befehle zur profile-Verwaltung und Befehle zur Dienstinstallation in diesem Beitrag stammen von dieser Seite. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  7. Nous Research, “Installation” im Einstiegshandbuch zu Hermes Agent. Primärquelle für den Installationsbefehl als Einzeiler, das Verhalten des Installationsprogramms (Voraussetzungen, Plattformunterstützung, automatische Termux-Erkennung, Windows-/WSL2-Anforderungen), die Tabelle der optionalen Erweiterungen, die Schritte zur manuellen Installation und die Überprüfungsbefehle. ↩↩↩↩↩↩↩↩↩

  8. Nous Research, “Referenz der CLI-Befehle” — siehe insbesondere den Abschnitt zu hermes dump, in dem das Ausgabeformat des Befehls (Kopfzeile, Umgebung, Identität, Modell, Terminal, API-Schlüssel, Funktionen, Dienste, Arbeitslast, Konfigurationsüberschreibungen) und der vorgesehene Einsatz zum Teilen von Diagnosedaten beschrieben werden. ↩

  9. Nous Research, “Referenz der Slash-Befehle” in der Referenzdokumentation zu Hermes Agent. Primärquelle für alle in diesem Beitrag aufgeführten Slash-Befehle, die COMMAND_REGISTRY-Architektur, die Trennung zwischen CLI und Messaging, dynamische skill-Slash-Befehle, Schnellbefehle in config.yaml, das Verhalten beim Präfixabgleich und die ausschließlich für Messaging verfügbaren Befehle (/status, /sethome, /approve, /deny, /update, /commands). ↩↩↩↩↩↩↩↩↩↩

  10. Nous Research, “Tools und Toolsets” im Benutzerhandbuch zu Hermes Agent. Primärquelle für die Übersicht der Tool-Kategorien, die Befehle zur Verwendung von toolsets, die sieben Terminal-Backends (local, docker, ssh, singularity, modal, daytona, vercel_sandbox), die Containerkonfiguration (CPU, Arbeitsspeicher, Festplattenspeicher, persistent), die Sicherheitshärtung von Containern, die Verwaltung von Hintergrundprozessen API und die sudo-Unterstützung. ↩↩↩↩↩↩↩↩↩↩

  11. Nous Research, “Skills-System” im Benutzerhandbuch zu Hermes Agent. Primärquelle für die progressive Offenlegung, das SKILL.md-Format, plattformspezifische skills, die bedingte Aktivierung (fallback_for_toolsets, requires_toolsets, fallback_for_tools, requires_tools), vom Agenten verwaltete skills über skill_manage, die Befehle und Quellenliste des skill-Hubs (official, skills-sh, well-known, github, clawhub, claude-marketplace, lobehub), Sicherheitsprüfungen und Vertrauensstufen sowie externe skill-Verzeichnisse. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  12. Nous Research, “Persistenter Speicher” im Benutzerhandbuch zu Hermes Agent. Primärquelle für die Zeichenbegrenzungen von MEMORY.md / USER.md, das Muster eingefrorener Momentaufnahmen, Speicheraktionen (add, replace, remove), Kriterien dafür, was gespeichert beziehungsweise übersprungen werden sollte, den Vergleich zwischen Speicher- und Sitzungssuche und die externen Speicheranbieter. Beim Tag v2026.9.24 heißt es auf der zugehörigen Seite Speicheranbieter (Zeile 9): „Hermes Agent wird mit 7 Plugins für externe Speicheranbieter ausgeliefert.“ Zudem wird darauf hingewiesen, dass „weitere (wie Hindsight) im Plugin-Katalog verfügbar sind“; plugins/memory/ enthält bei diesem Tag byterover, holographic, honcho, mem0, openviking, retaindb und supermemory. ↩↩↩↩↩↩↩↩

  13. Nous Research, “Persönlichkeit und SOUL.md” im Benutzerhandbuch zu Hermes Agent. Primärquelle für das Verhalten von SOUL.md (befindet sich in HERMES_HOME, wird nie überschrieben, belegt Platz 1 im System-Prompt und wird vor der Einbindung einer Sicherheitsprüfung unterzogen), die Unterscheidung zwischen SOUL.md und AGENTS.md, die Liste der integrierten Persönlichkeiten (14 Persönlichkeiten von helpful bis hype), benutzerdefinierte Persönlichkeiten in config.yaml, das Overlay-Muster von /personality und die vollständige Reihenfolge beim Aufbau des Prompt-Stacks. ↩↩↩↩↩↩↩↩↩↩↩↩

  14. Nous Research, “MCP mit Hermes verwenden” und MCP-Konfigurationsreferenz in den Leitfäden und der Referenz zu Hermes Agent. Quelle für das Konfigurationsformat mcp_servers: in config.yaml mit den Feldern command, args und env. ↩

  15. Versionshinweise zu Hermes Agent v0.8.0. 8. April 2026. Automatische Benachrichtigungen zu Hintergrundprozessen, kostenloses MiMo v2 Pro auf Nous Portal, Live-Wechsel mit /model auf allen Plattformen, nativer Anbieter für Google AI Studio, Qwen OAuth, inaktivitätsbasierte Zeitüberschreitungen, Genehmigungsschaltflächen in Slack/Telegram, MCP OAuth 2.1 PKCE, zentrale Protokollierung, Erweiterung des Plugin-Systems. ↩↩↩↩↩

  16. Versionshinweise zu Hermes Agent v0.9.0. 13. April 2026. Lokales Web-Dashboard, Fast Mode (/fast), iMessage über BlueBubbles, WeChat + WeCom, Termux/Android, Überwachung von Hintergrundprozessen (watch_patterns), native Anbieter xAI + Xiaomi MiMo, austauschbare context engine, einheitliche Proxy-Unterstützung, Sicherheitshärtung (Behebung von Path Traversal, Shell Injection, SSRF und RCE), hermes backup/hermes import, /debug + hermes debug share, 16 unterstützte Plattformen. 487 Commits, 269 zusammengeführte PRs, 24 Mitwirkende. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  17. Versionshinweise zu Hermes Agent v0.12.0. 30. April 2026. „Das Curator-Release.“ Autonomer Curator im Hintergrund, der die skill-Bibliothek standardmäßig alle 7 Tage bewertet, bereinigt und konsolidiert und dabei über den cron-Taktgeber des gateway ausgeführt wird. Verbesserte Selbstoptimierungsschleife: Bewertung anhand eines Kriterienkatalogs, Priorisierung aktiver Aktualisierungen, korrekte Laufzeitvererbung und auf Speicher und skills beschränkte toolsets. Vier neue Inferenzanbieter: GMI Cloud, Azure AI Foundry, MiniMax OAuth, Tencent Tokenhub. LM Studio wurde zu einem vollwertigen Anbieter aufgewertet. Manifeste für Remote-Modellkataloge werden ohne neue Releases automatisch aktualisiert. Zwei neue Messaging-Plattformen: Microsoft Teams (19., über die austauschbare gateway-Architektur) und Tencent Yuanbao (18., native Unterstützung für Text + Medien). Native Spotify-Integration über PKCE OAuth mit gebündeltem skill; Google-Meet-Plugin für Anrufe und Transkription; Piper als lokaler TTS-Anbieter. ComfyUI v5 + TouchDesigner-MCP sind standardmäßig enthalten. Neue skills: Humanizer, claude-design, design-md, airtable. CLI: hermes -z als Einmalmodus, Vorabprüfung mit hermes update --check, Slash-Befehl /reload-skills, austauschbare Stile für die Aktivitätsanzeige. Der TUI-Kaltstart wurde durch verzögerte Initialisierung um etwa 57 % verkürzt. Sicherheit: Die Schwärzung von Geheimnissen ist standardmäßig deaktiviert; strikte Sperrliste für nicht rückgängig zu machende Befehle. Statistiken seit v0.11.0: 1.096 Commits, 550 zusammengeführte PRs, 213 Mitwirkende aus der Community. Siehe auch: Release-Tag v2026.4.30. ↩↩↩

  18. Versionshinweise zu Hermes Agent v0.13.0. 7. Mai 2026. „Das Tenacity-Release.“ Multi-Agent-Kanban-Board mit heartbeat, Rückforderung, Zombie-Erkennung, Halluzinationsschutz, max_retries pro Aufgabe und projektübergreifenden Boards. Slash-Befehl /goal zur Fixierung von Zielen über mehrere Gesprächsrunden hinweg (Grundbaustein für Ralph-Schleifen) mit konfigurierbarem Rundenbudget. Tool video_analyze, vorrangig für Gemini ausgelegt und kompatibel mit multimodalen Erweiterungen. xAI Custom Voices als TTS-Anbieter mit Stimmklonfunktion. i18n für 7 Sprachen: zh-Hans, ja, de, es, fr, uk, tr (CLI + gateway-Nachrichten; Dokumentation nur auf zh-Hans). Google Chat als 20. Messaging-Plattform über ein austauschbares Adaptermuster mit generischen Plugin-Hooks env_enablement_fn / cron_deliver_env_var; IRC und Microsoft Teams wurden auf dasselbe Muster migriert. ProviderProfile ABC + plugins/model-providers/ für austauschbare Drittanbieter. Automatische Sitzungsfortsetzung nach einem gateway-Neustart, /update und dem Neuladen von Quelldateien. Checkpoints v2 vollständig auf einen einzelnen Speicher umgestellt, mit echter Bereinigung, Schutzmechanismen für den Festplattenspeicher und ohne verwaiste Schatten-Repositorys. Acht geschlossene P0-Sicherheitslücken: standardmäßig aktivierte Schwärzung von Geheimnissen, Umgehung der serverübergreifenden DM-Beschränkung in Discord (CVSS 8.1, Rollen-Zulassungslisten auf Server beschränkt), WhatsApp lehnt unbekannte Personen standardmäßig ab + antwortet niemals im eigenen Chat, TOCTOU beim Speichern von MCP OAuth-Anmeldedaten, TOCTOU bei CLI auth.json in Komponenten zum Schreiben von Anmeldedaten, grundlegender SSRF-Schutz vor Cloud-Metadaten im Browser bei Hybrid-Routing, Prüfung zusammengesetzter cron-Prompts (einschließlich skill-Inhalten) auf Prompt Injection, Schwärzung von Protokollinhalten beim Hochladen mit hermes debug share. Weitere bemerkenswerte Punkte: Linting nach Schreibvorgängen für Python/JSON/YAML/TOML, reiner Skript-Überwachungsmodus no_agent für cron, Plattform-Zulassungslisten für Slack/Telegram/Mattermost/Matrix/DingTalk, Verbesserungen für MCP (SSE-Transport, Weiterleitung von OAuth, Bildergebnisse als MEDIA-Tags). Statistiken seit v0.12.0: 864 Commits, 588 zusammengeführte PRs, 829 geänderte Dateien, 295 Mitwirkende aus der Community, 282 geschlossene Issues (13 P0, 36 P1). ↩↩↩↩↩↩↩↩↩↩↩↩

  19. Versionshinweise zu Hermes Agent v0.14.0. 16. Mai 2026. „Das Foundation-Release.“ Seit v0.13.0: 808 Commits, 633 zusammengeführte PRs, 1.393 geänderte Dateien, 165.061 Einfügungen, 545 geschlossene Issues (12 P0, 50 P1) und 215 Mitwirkende aus der Community. Neu hinzugekommen sind SuperGrok OAuth mit einem Kontext von 1 Million Token für grok-4.3, hermes proxy, x_search, PyPI-Paketierung, verzögert geladene Abhängigkeiten, ein sitzungsübergreifender Claude-Prompt-Cache mit einer Laufzeit von 1 Stunde, ein um etwa 19 Sekunden schnellerer Start, 180-mal schnellere Browser-CDP-Aufrufe, LINE und SimpleX Chat für insgesamt 22 Messaging-Plattformen, /handoff, native Schaltflächen für Rückfragen, nachträgliches Laden des Discord-Verlaufs, vision_analyze für Rohpixeldaten, eine Prüfzeile für Dateiänderungen nach jeder Gesprächsrunde, semantische LSP-Diagnosen, das einheitliche video_generate, cua-driver computer_use, OSC8-Links, Unterstützung für die Zed ACP Registry, der OpenRouter Pareto Code Router, NovitaAI, die Codex-App-Server-Laufzeit, huggingface/skills, Plugin-ctx.llm, tool_override, Brave/DDGS-Suche, Härtung gegen gefährliche Befehle, /subgoal, die Umbenennung in Qwen Cloud, eine native Windows-Betaversion, insgesamt 16 Locales sowie umfassende Aktualisierungen der Dokumentation und Tests. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  20. Versionshinweise zu Hermes Agent v0.16.0, „The Surface Release“, Tag v2026.6.5, veröffentlicht am 2026-06-06T00:55:58Z (Datum des Release-Tags: 5. Juni 2026); Stand vom 8. Juni 2026 die neueste Version. Neue native Hermes Desktop-App (Electron, macOS/Linux/Windows; Verbindung mit einem entfernten gateway über sicheres WebSocket mit OAuth oder Benutzername/Passwort; entfernte Hosts pro profile; profileübergreifende @session-Links; Benutzeroberfläche auf vereinfachtem Chinesisch mittels typisiertem i18n, display.language). Das Web-Dashboard wurde zu einem vollständigen Administrationsbereich ausgebaut (MCP-Katalogschalter, Anmeldedatenverwaltung, Erstellung von Webhooks/hooks, Speicherkonfiguration, gateway-Steuerung, Systemseite mit Prüfung vor Updates und Debug Share, Channels-Seite; erweiterbare Authentifizierung einschließlich selbst gehostetem OIDC und hermes dashboard register). Neue Befehle: /undo [N], konfigurierbare Standardschnittstelle (cli/tui, --cli), TUI /model und Sessions-Overlay, hermes portal, hermes prompt-size, hermes sessions optimize. Neue Modelle: deepseek-v4-flash, MiniMax-M3 (1M context), qwen3.7-plus, gemini-3.5-flash; xAI Grok OAuth; unscharfe Auswahl; stündliche Aktualisierung des Katalogs. skills: schlankere Standardauswahl, Relevanzprüfung durch environments:, NVIDIA/skills als standardmäßig vertrauenswürdiger Tap, progressive Offenlegung von Tools, Behebung fälschlich erfolgreicher MCP-OAuth-Vorgänge. Sicherheit: CVE-2026-48710 (Starlette BadHost) auf ≥1.0.1 festgesetzt, SSRF-Prüfungen aus der Ereignisschleife ausgelagert, Bedrock-Bearer-Token aus der Umgebung von Unterprozessen entfernt, Lesezugriff auf bws_cache.json geschützt, docker restart/stop/kill zu den gefährlichen Mustern hinzugefügt, unsichtbare Unicode-Zeichen bereinigt; 2 P0- und 62 P1-Probleme geschlossen (davon 16 mit Sicherheitskennzeichnung). Marketingformulierungen aus den Versionshinweisen (Anzahl der PRs/Commits, „none of this existed a week ago“) wurden ausgeschlossen; erfasst sind ausschließlich konkrete, dem Tag zugeordnete Funktions- und Versionsfakten. In der aktuellen Sitzung am 8. Juni 2026 verifiziert. ↩↩↩↩↩↩↩↩

  21. Versionshinweise zu Hermes Agent v0.17.0, „The Reach Release“, Tag v2026.6.19, 19. Juni 2026; Stand vom 21. Juni 2026 die neueste Version. Messaging: iMessage über Photon Spectrum (Gerätecode-OAuth, hermes photon login, kein Mac-Relay); offizieller API-Adapter für WhatsApp Business Cloud (ersetzt den Bridge-Prozess); SimpleX-Gruppen, native Anhänge, Textbündelung, automatische Annahme; Raft als gebündeltes Plattform-plugin. Modelle/Provider: z-ai/glm-5.2 (1M context), anthropic/claude-fable-5, laguna-m.1, nemotron-3-ultra, grok-composer-2.5-fast (xAI OAuth, 200k context); xAI-Standard → grok-build-0.1; adaptive Anthropic-Modelle verwenden den modernen Denkvertrag (kein Feld reasoning). CLI/Slash-Befehle: /version, /billing, hermes photon login, hermes curator run --consolidate (optional), grafische Oberfläche für hermes model, Klonen von profiles. Desktop: Überwachungsfenster für Subagenten im Hintergrund (delegate_task(background=true)), Modellauswahl im Composer, neu belegbare Tastenkombinationen, native Betriebssystembenachrichtigungen, Entwürfe pro Thread, Themes aus dem VS Code Marketplace, Benutzeroberfläche auf Japanisch und traditionellem Chinesisch. Dashboard: vollständiger profile-Builder, globaler profile-Umschalter, überarbeiteter Skills Hub mit Sicherheitsprüfung, Automation Blueprints, sichere Anmeldung (401 hinter OAuth). skills/Tools: Bild-zu-Bild-Bearbeitung mit image_generate über mehrere Provider hinweg, atomare Stapelverarbeitung mit memory operations, skill simplify-code für parallele Überprüfungen, boolesches write_approval ersetzt write_mode. Architektur: Subagenten im Hintergrund (Handle wird sofort zurückgegeben, Ergebnis fließt als neuer Turn wieder ein), MCP-Elicitation-Handler für Bestätigungen während eines Tool-Aufrufs, nachträglich verbundene MCP-Tools werden zwischen Turns bereitgestellt, erweiterbarer CronScheduler und verwaltetes cron über Chronos, Managed-Bereich (durch Administratoren unter /etc/hermes festgelegt), Gateway-Gateway-Relay. Sicherheit: Umgehung der Denylist für Shell-Escapes geschlossen, Fail-Closed-Verhalten bei fehlendem Genehmigungsmodul und gateway-Adaptern mit eigener Richtlinie, Umgebung von cron-Jobskripten bereinigt, Geheimnisse in Debug-Dumps geschwärzt, Host-Metadaten aus dem öffentlichen Status entfernt, Prüfung von MCP stdio auf Exfiltrationsmuster, CVE-bedingte Versionsaktualisierungen von urllib3 und PyJWT. Marketingformulierungen zum Release (Anzahl der Commits/PRs) wurden ausgeschlossen. In der aktuellen Sitzung am 21. Juni 2026 verifiziert. ↩↩↩↩↩↩↩↩↩↩↩

  22. Versionshinweise zu Hermes Agent v0.18.0 (Tag v2026.7.1), 1. Juli 2026 — „The Judgment Release“. Priorisierter Abbau des Backlogs (alle P0/P1-Probleme geschlossen, etwa 692 Einträge innerhalb von zwölf Tagen); Mixture-of-Agents in allen Schnittstellen als vollwertiges Modell auswählbar, wobei die vollständige Ausgabe jedes Referenzmodells in einem eigenen beschrifteten Block dargestellt und die endgültige Antwort live gestreamt wird; Abschlussverträge für /goal (der Agent überprüft seine eigene Arbeit durch Ausführung der Projektprüfungen); Befehl /learn (durch eine Beschreibung lässt sich Beliebiges unter automatischer Einhaltung von CONTRIBUTING.md in einen wiederverwendbaren skill umwandeln); /journey als visuelle Zeitleiste für Speicher/skills mit Bearbeitungsfunktion und Speichergraph in der Desktop-App; Auffächerung von Subagenten im Hintergrund (mehrere gleichzeitig delegierte Aufgaben); Desktop Projects (Projekt-/Repository-/Lane-Modell); auf null skalierendes gateway mit koordinierter Leerung; Unterstützung für Google Vertex AI (Gemini über GCP-Dienstkonten, automatische Aktualisierung von OAuth2-Tokens); $EDITOR-Befehl /prompt. In der aktuellen Sitzung am 1. Juli 2026 (PST) anhand der GitHub-Versionsseite verifiziert; v0.18.0 ist die neueste Version. ↩↩↩↩↩↩↩↩↩↩↩

  23. Versionshinweise zu Hermes Agent v0.20.5 (Tag v2026.8.19, angegebenes Veröffentlichungsdatum 19. August, veröffentlicht am 21. August 2026; am 24. August 2026 über die GitHub API abgerufen – prerelease: false). Wortgetreue Beschreibung des Zeitfensters: „~746 Commits in ~1.250 Dateien (+111.500 / -20.701) – ~323 zusammengeführte PRs, darunter Bot Mode-Gruppenraum-Threads, einklappbare Gesprächszusammenfassungen, Blob-Gesichtsavatare und PDF-/Dateianhänge per Drag-and-drop; die schlüssellose Web-Stufe (kostenlose Rotation zwischen 5 Anbietern mit Ring-Failover, Websuche bei Neuinstallationen ohne jegliche Schlüssel); eine CLI-Politurwelle (unscharfe /model-Auswahl, Ctrl+P-Befehlspalette, informativeres /status); Ausführungsdisziplin und Schutzmechanismen gegen Laufzeitstillstände aus den Ergebnissen der Composio-Evaluierung; Belege für hermes update und flottenweite Verifizierung mit --plan; hermes worktree list/prune; der opencode-freie Provider ohne Authentifizierung; Klärung durch mehrere Fragen; Performance-Arbeiten an der Desktop-App (Paint-First-Hydrierung im Bot Mode, Compositor-Spinner, React Compiler in beiden Renderern); sowie cron-Jobs mit dauerhaftem Speicher und individuell festlegbarem Reasoning-Aufwand.“ Das Release wiederholt: „Vollständige kuratierte Versionshinweise für dieses Zeitfenster werden mit v0.21.0 veröffentlicht.“ ↩↩↩↩↩↩↩↩↩↩↩

  24. Terminal-Backends beim Tag v2026.8.31 (für Guide v1.17 erneut verifiziert; agent/terminal_env_registry.py ist Byte für Byte mit seiner Version in v2026.8.31 identisch, die Fakten im Docstring von tools/terminal_tool.py sind unverändert und tools/environments/ enthält weiterhin dieselben sieben Backend-Module, nun ergänzt um den Helper path_utils.py): Docstring des Moduls tools/terminal_tool.py, wortgetreu: „Ein Terminal-Tool, das Befehle in lokalen, Docker-, Modal-, SSH-, Singularity-, Daytona- und Vercel Sandbox-Umgebungen ausführt“, und in der Liste zur Umgebungsauswahl der Eintrag vercel_sandbox: „In Cloud-Sandboxes von Vercel Sandbox ausführen“; das Backend-Modul tools/environments/vercel_sandbox.py ist beim Tag neben daytona.py, docker.py, local.py, modal.py, singularity.py und ssh.py vorhanden. Die README beim Tag: „Sieben Terminal-Backends – lokal, Docker, SSH, Singularity, Modal, Daytona und Vercel Sandbox.“ Die Dokumentationsseite Tools & Toolsets (Quelle website/docs/user-guide/features/tools.md beim Tag) führt vercel_sandbox in einer Tabelle als „Vercel Sandbox-Cloud-microVM“ für „Cloud-Ausführung mit Snapshot-gestützter Dateisystempersistenz“ auf, zeigt den Konfigurationskommentar # or: docker, ssh, singularity, modal, daytona, vercel_sandbox und erklärt: „Authentifizieren Sie sich mit allen drei Variablen VERCEL_TOKEN, VERCEL_PROJECT_ID und VERCEL_TEAM_ID. … Unterstützte Laufzeitumgebungen sind node24, node22 und python3.13; Hermes verwendet standardmäßig /vercel/sandbox als Stammverzeichnis des entfernten Arbeitsbereichs.“ Bei v2026.8.31 enthält das Package tools/environments/ außerdem gemeinsam genutzte Infrastruktur (base.py mit der abstrakten Basisklasse BaseEnvironment, file_sync.py, modal_utils.py, managed_modal.py); der Package-Docstring zählt Managed Modal als Modus von Modal und nicht als achtes Backend: „Modal verfügt außerdem über direkte und von Nous verwaltete Modi, die über terminal.modal_mode ausgewählt werden.“ ↩↩↩

  25. Anzahl der Messaging-Plattformen beim Tag v2026.8.31 (für Guide v1.17 erneut überprüft; identisch mit v2026.8.31 – 28 Zeilen in der Dokumentationstabelle, dieselben 24 Mitglieder des Platform-Enums, dieselben 22 Adapterverzeichnisse). Die Dokumentationsseite zum Messaging Gateway (Quelle website/docs/user-guide/messaging/index.md beim Tag) enthält eine Tabelle „Plattformvergleich“ mit 28 Zeilen: Telegram, Discord, Slack, Google Chat, WhatsApp, WhatsApp Cloud API, Signal, SMS, E-Mail, Home Assistant, Mattermost, Matrix, DingTalk, Feishu/Lark, WeCom, WeCom Callback, Weixin, BlueBubbles, Photon (iMessage), QQ, Yuanbao, Microsoft Teams, LINE, ntfy, Raft, IRC, Buzz, SimpleX. gateway/config.py definiert class Platform(Enum) mit 24 expliziten Mitgliedern (local, telegram, discord, whatsapp, whatsapp_cloud, slack, signal, mattermost, matrix, homeassistant, email, sms, dingtalk, api_server, webhook, msgraph_webhook, feishu, wecom, wecom_callback, weixin, bluebubbles, qqbot, yuanbao, relay) und dokumentiert: „Plugin-Plattformen verwenden dynamische Mitglieder, die bei Bedarf durch _missing_() erstellt werden, sodass Platform("irc") funktioniert, ohne dieses Enum zu ändern.“ Der Verzeichnisbaum plugins/platforms/ des Tags enthält 22 Adapterverzeichnisse: a2a buzz dingtalk discord email feishu google_chat homeassistant irc line matrix mattermost ntfy photon raft simplex slack sms teams telegram wecom whatsapp. Plattformbeschreibungen: auf der ntfy-Seite heißt es wörtlich: „ntfy ist ein einfacher HTTP-basierter Pub-Sub-Benachrichtigungsdienst. Er funktioniert mit dem kostenlosen öffentlichen Server unter ntfy.sh oder jeder selbst gehosteten Instanz … Abonnieren Sie ein Thema über die ntfy-App für Mobilgeräte, senden Sie Nachrichten an das Thema, um mit dem Agenten zu kommunizieren, und erhalten Sie die Antwort auf Ihrem Smartphone.“ Auf der Buzz-Seite heißt es wörtlich: „Der Buzz-Adapter verbindet Hermes mit einer Buzz-Community – der auf dem Nostr-Protokoll basierenden Open-Source-Plattform von Block für die Zusammenarbeit zwischen Menschen und Agenten – und überträgt Nachrichten zwischen Buzz-Kanälen (oder Direktnachrichten) und dem Agenten. Für ausgehenden Datenverkehr wird das buzz-CLI-Programm über die Shell aufgerufen … für eingehenden Datenverkehr wird ein natives Nostr-WebSocket-Abonnement verwendet.“ Auf beiden Seiten steht: „Führen Sie hermes gateway setup aus und wählen Sie … für eine geführte Einrichtung.“ ↩↩↩

  26. Anzahl der Anbieter beim Tag v2026.8.31 (für Guide v1.17 erneut überprüft; v0.21.0 ÄNDERTE diese Zahlen gegenüber den 38 statischen Einträgen, 37 Plugin-Verzeichnissen und 41 Dokumentationszeilen von v2026.8.31). hermes_cli/models.py deklariert CANONICAL_PROVIDERS: list[ProviderEntry] mit 39 statischen Einträgen (nous, fireworks, openrouter, moa, novita, lmstudio, anthropic, openai-codex, openai-api, alibaba, xai-oauth, xiaomi, tencent-tokenhub, tencent-tokenplan, nvidia, copilot, copilot-acp, huggingface, gemini, vertex, deepseek, xai, zai, kimi-coding, kimi-coding-cn, stepfun, minimax, minimax-oauth, minimax-cn, ollama-cloud, arcee, gmi, kilocode, opencode-zen, opencode-go, bedrock, azure-foundry, ai-gateway, qwen-oauth), gefolgt vom Kommentar „CANONICAL_PROVIDERS automatisch um jeden in providers/ registrierten Anbieter erweitern, der noch nicht in der obigen Liste enthalten ist. Das Hinzufügen von plugins/model-providers// genügt, um einen neuen Anbieter in der Modellauswahl verfügbar zu machen“; die Schleife überspringt weiterhin ausschließlich die Authentifizierungstypen oauth_device_code, oauth_external, external_process, aws_sdk, copilot und vertex. Der Verzeichnisbaum plugins/model-providers/ des Tags enthält 39 Anbieterverzeichnisse (nebius-token-factory und router kamen im Zeitfenster von v0.21.0 hinzu); die neun ohne statischen Eintrag (actual, alibaba-coding-plan, commandcode, deepinfra, meta-ai, nebius-token-factory, opencode-free, router, upstage) werden alle dem Authentifizierungstyp api_key zugeordnet – sieben deklarieren auth_type="api_key" explizit (einschließlich beider neuer Plugins), während commandcode und opencode-free auth_type: str = "api_key" aus providers/base.py übernehmen. Die Dokumentationsseite zu AI-Anbietern (Quelle website/docs/integrations/providers.md beim Tag) führt in Tabellen 45 namentlich genannte Anbieter sowie eine Zeile „Benutzerdefinierter Endpunkt“ auf (seit v2026.8.31 hinzugefügte Zeilen: Ramp Router, Nebius Token Factory, Tencent TokenPlan, Alibaba Cloud (Token Plan) – zitiert in 36); alle Namen von Umgebungsvariablen, Anbieter-Slugs, Aliasse und Authentifizierungshinweise in den neuen Matrixzeilen sind aus dieser Tabelle zitiert, darunter „OpenCode Free | Ohne Schlüssel – kein API-Schlüssel und kein Konto erforderlich (Anbieter: opencode-free, Aliasse: free, opencode_free). Auswahl über hermes model oder /model free; Anfragen werden anonym gesendet“, „Google Vertex AI | … OAuth2 über das JSON eines Dienstkontos oder ADC, GCP-Abrechnung“, „AWS Bedrock | … standardmäßige AWS-Anmeldedatenkette über boto3“ und „CommandCode | … Funktioniert mit GOAT-/Pro-/Max-/Provider-Tarifen (nicht mit dem Go-Tarif für 1 $ – kein API-Zugriff)“. Die Zeile zu Meta AI stammt aus dem Block derselben Seite für einen vollwertigen API-Schlüssel: „Meta Model API (Muse-Spark-Familie) … hermes chat --provider meta-ai --model muse-spark-1.2 … Erforderlich: MODEL_API_KEY“. Cerebras erscheint ausschließlich in der Tabelle „Weitere kompatible Anbieter“ dieser Seite (https://api.cerebras.ai/v1, „Inferenz auf Chips im Wafermaßstab“) und wird daher unter der Zeile für benutzerdefinierte Endpunkte statt als vollwertiger Anbieter aufgeführt. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  27. CLI-Oberfläche beim Tag v2026.8.31 (für Leitfaden v1.17 erneut verifiziert; die zitierten Hilfetexte der globalen Optionen und sämtliche Fakten zu _BUILTIN_SUBCOMMANDS sind seit v2026.8.31 unverändert – das Frozenset ist mit 73 Einträgen identisch –, während hermes_cli/_parser.py nur innerhalb von hermes chat geändert wurde, wie in 40 dokumentiert). Die globalen Optionen und ihre Hilfetexte stammen aus hermes_cli/_parser.py: --in („Vor dem Starten oder Fortsetzen in DIR wechseln. In Verbindung mit ‘–resume latest’ oder -c wird die neueste Sitzung für den Arbeitsbereich von DIR ausgewählt, und die Sitzung verbleibt in DIR (die Wiederherstellung des aufgezeichneten Arbeitsverzeichnisses wird übersprungen).“), --ignore-user-config („~/.hermes/config.yaml ignorieren und auf die integrierten Standardwerte zurückgreifen (Anmeldedaten in .env werden weiterhin geladen)“), --ignore-rules („Automatische Einbindung von AGENTS.md, SOUL.md, .cursorrules, Speicher und vorab geladenen skills überspringen“), --tui („Die moderne TUI anstelle der klassischen REPL starten“), --cli („Die klassische prompt_toolkit-REPL erzwingen (überschreibt display.interface=tui)“), --dev („Mit –tui: TypeScript-Quelldateien über tsx ausführen (dist-Build überspringen)“) und --version/-V („Version anzeigen und beenden“). hermes_cli/_startup_fast.py verwendet den schnellen Pfad ausschließlich für argv in (["--version"], ["-V"]), und das _BUILTIN_SUBCOMMANDS-Frozenset in hermes_cli/main.py enthält keinen Eintrag version; die CLI-Befehlsreferenz dokumentiert hermes --version („Versionsinformationen anzeigen“), jedoch kein hermes version. Die Befehlsbeschreibungen entsprechen den help=-Zeichenfolgen des Parsers aus hermes_cli/main.py und hermes_cli/subcommands/*.py beim Tag (beispielsweise approvals: „Werkzeuge für Genehmigungsabfragen (Verlauf auswerten, um Vorschläge für die Zulassungsliste zu erstellen)“; pause: „Not-Aus: cron-/Kanban-Verteilung und neue gateway-Vorgänge pausieren“; sync: „Skill Sync – Ihre skills geräteübergreifend und mit Ihrem Team synchronisieren“; verify: „Das Ausführungsrezept eines Projekts erkennen und mit einem Smoke-Test prüfen“; login: „Veraltet. Verwenden Sie hermes auth, um Anmeldedaten zu verwalten, hermes model, um einen Anbieter auszuwählen, oder hermes setup für die vollständige Einrichtung.“), abgeglichen mit der Tabelle der Befehle auf oberster Ebene in der Dokumentation. hermes update --plan befindet sich in hermes_cli/subcommands/update.py: „Den Aktualisierungsplan anzeigen und beenden, ohne Änderungen vorzunehmen: Installationsart (git/docker/nix), jeden laufenden Hermes-Dienst über alle profiles hinweg samt Supervisor und Version des ausgeführten Codes sowie die Art, wie jeder Dienst neu gestartet wird. Schreibgeschützt; sicher für eine aktive Flotte.“; in _BUILTIN_SUBCOMMANDS existiert kein Befehl fleet. hermes worktree ist in hermes_cli/main.py registriert (Hilfe: „Angesammelte git-Worktrees und zusammengeführte Branches prüfen und bereinigen“) und umfasst list (Aliasse ls, audit; „Jeden Baum klassifizieren: Alter, Größe, Beurteilung, Grund (Standardaktion)“), prune („Sichere Bäume entfernen und vollständig zusammengeführte lokale Branches löschen“), --repo, --dry-run („Den Plan anzeigen, ohne Änderungen vorzunehmen“), --trees-only („Nur Worktrees entfernen; lokale Branches unverändert lassen“) und --branches-only („Nur zusammengeführte lokale Branches löschen; Worktrees unverändert lassen“). Der Slash-Befehl /worktree ist _handle_worktree_command in hermes_cli/cli_commands_mixin.py (Syntaxblock: /worktree, /worktree new [name], /worktree list, /worktree prune [--dry-run]); der Abschnitt „Worktree-Bereinigung“ im CLI-Benutzerhandbuch ergänzt: „Innerhalb einer Sitzung bewirkt /worktree prune [--dry-run] dasselbe (und verändert niemals den Baum, in dem die Sitzung ausgeführt wird).“ ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  28. Nous Portal-Befehle beim Tag v2026.8.31 (für Leitfaden v1.17 erneut verifiziert; hermes_cli/portal_cli.py ist mit seiner Version aus v2026.8.31 byteidentisch). Im Abschnitt „Erfassung von API-Schlüsseln überspringen – Nous Portal“ der README-Datei beim Tag heißt es: „Ein Befehl nach einer Neuinstallation: hermes setup --portal … Dadurch werden Sie über OAuth angemeldet, Nous wird als Ihr Anbieter festgelegt und das Tool Gateway aktiviert. Mit hermes portal info können Sie jederzeit prüfen, was eingerichtet ist.“ hermes_cli/portal_cli.py registriert portal (Hilfe: „Nous Portal einrichten (Anmeldung, Modellauswahl, Tool Gateway); siehe auch portal info“) mit login („Bei Nous Portal anmelden und es einrichten (Standard; einmaliges Onboarding)“), info („Zusammenfassung der Portal-Authentifizierung und des Tool-Gateway-Routings anzeigen“), open („Die Portal-Abonnementseite in Ihrem Standardbrowser öffnen“), tools („Tool-Gateway-Werkzeuge und deren Routing über Nous auflisten“) sowie dem Codekommentar „status bleibt als ausgeblendeter Alias für die Abwärtskompatibilität mit info erhalten.“ Die Dokumentationsseite zum Tool Gateway zeigt hermes setup --portal # Fresh install: Nous OAuth + set Nous as provider + turn on the Tool Gateway in one go und hermes portal info # Portal auth + Tool Gateway routing summary; die CLI-Befehlsreferenz beim selben Tag dokumentiert weiterhin hermes portal [status|open|tools]. ↩↩↩

  29. GitHub-Vergleich über API, NousResearch/hermes-agent, v2026.8.19...main, abgerufen am 26. August 2026: ahead_by: 1104, behind_by: 0. Die Veröffentlichungsseite von API führt v2026.8.19 (Hermes Agent v0.20.5, veröffentlicht am 2026-08-21T12:16:39Z) als neuesten Tag auf; in dessen Hinweisen heißt es: „Die vollständigen kuratierten Versionshinweise für diesen Zeitraum erscheinen mit v0.21.0 und dokumentieren sämtliche Änderungen ab v0.20.0.“ Am 27. August 2026 erneut anhand des neuen Tags geprüft: v2026.8.27...main gibt ahead_by: 0, behind_by: 0, status: identical zurück – main befindet sich nun exakt auf dem Tag v0.20.6. ↩↩

  30. Versionshinweise zu Hermes Agent v0.20.6 (Tag v2026.8.27, angegebenes Veröffentlichungsdatum 27. August, veröffentlicht am 2026-08-27T12:06:53Z; am 27. August 2026 über GitHub API abgerufen – prerelease: false). Wortlaut der Einordnung: „Patch-Veröffentlichung. Dieser Tag bündelt die rund 525 seit v0.20.5 zusammengeführten PRs in einer stabilen, mit einem Tag versehenen Version für nachgelagerte Nutzer (Docker-Images, gehostete Bereitstellungen, Neuinstallationen).“ Wortlaut der Beschreibung des Zeitraums: „Seit v0.20.5 (v2026.8.19, Tag vom 21. August) wurden in diesem Zeitraum rund 1.313 Commits über etwa 1.557 Dateien hinweg integriert (+177.113 / -21.682) – darunter rund 525 zusammengeführte PRs, unter anderem für die zustimmungsgebundene Nutzung echter Browser-profile (verwenden Sie Ihr standardmäßiges Chromium-profile für lokales Browsen, unter Windows mit einem zustimmungspflichtigen Schließablauf); ein eigenes Betriebssystemfenster für den Desktop-Browser sowie eine verwaltete SSH-Engine für Remote-Aktualisierungen und eine Profilleiste für Flotten; eine umfangreiche Erweiterung des Remote-MCP-Katalogs (mehr als 50 live verifizierte, von Anbietern gehostete Server, darunter Cloudflare, Grafana Cloud, Better Stack und Railway); TTL-Ergebnis-Caching für web_search/web_extract; Lean-Tail-Komprimierung als Standard; tool_search mit mehreren Suchanfragen und Wortstammerkennung; optionale Verschlüsselung gespeicherter Geheimnisse über den Betriebssystem-Schlüsselbund (keine macOS-Keychain-Abfragen mehr bei jedem Start); Aktualisierungsprogramme, die gateways über den Steuerungs-Socket pausieren, statt ihre Prozessbäume zu beenden; image-/paketverwaltete Installationen, die unsichere direkte Aktualisierungen verweigern (#91277 Phase 3); Bestätigungen dauerhafter cron-Vorfälle und deutlichere Fehler bei abweichenden Codeversionen; Einstellungen für Slack-Linkvorschauen; gemeinsam genutzte Docker-Containeridentitäten; austauschbare Backends für Terminalumgebungen sowie neue Modelle in den Auswahlmenüs (GLM-5.3-Flash, MiniMax M3 free, MiniMax H3 Max video).“ Die Veröffentlichung wiederholt: „Die vollständigen kuratierten Versionshinweise für diesen Zeitraum erscheinen mit v0.21.0 und dokumentieren sämtliche Änderungen ab v0.20.0 – einschließlich Höhepunkten, Funktionsbereichen und vollständiger Nennung aller Mitwirkenden. Nichts aus diesem Zeitraum wird ausgelassen.“ ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  31. Komprimierung bei Tag v2026.8.31, für Guide v1.17 erneut verifiziert: tail_mode: str = "lean", die Schutzprüfung ("legacy", "lean"), der Standardwert "lean" von agent_init, die Migration auf Konfigurationsversion 17 und der nachstehende Hinweis zum veralteten Hilfskommentar gelten weiterhin für den neuen Tag (context_compressor.py erhielt einen Wiederholungspfad für die angeheftete Zusammenfassungsroute, der keinen der zitierten Standardwerte ändert). agent/context_compressor.py verwendet in ContextCompressor.__init__ standardmäßig tail_mode: str = "lean", mit dem Kommentar „Schlanker Tail-Modus (#compaction-v2): ‚lean‘ = kleiner, begrenzter Tail der jüngsten Inhalte + Zusammenfassungsabschnitt mit unveränderten Benutzernachrichten + Wiederherstellungsverweise; ‚legacy‘ = Tail mit 0,20Fenstergröße (ausgeliefertes Verhalten)“ und der Schutzprüfung self.tail_mode = tail_mode if tail_mode in ("legacy", "lean") else "lean". agent/agent_init.py liest compression.tail_mode mit dem Standardwert "lean"; der Kommentar quantifiziert beide Modi: „‚lean‘ (Standard) behält einen auf 2,5 % bzw. 10K–25K begrenzten unveränderten Tail samt Wiederherstellungsverweis-Mechanismen bei … ‚legacy‘ stellt den unveränderten Tail von 0,20Schwellenwert aus der Zeit vor #87326 wieder her, der bei Konfigurationen mit großem Fenster oder erhöhtem Schwellenwert pro Komprimierung 100–240K Token hortet.“ Die Seite Konfigurationsdokumentation (Quelldatei website/docs/user-guide/configuration.md beim Tag) zeigt den Block compression: mit enabled, threshold: 0.50, threshold_tokens: null, target_ratio: 0.20, tail_mode: lean (bei v2026.8.31 kommentiert mit: „‚lean‘ (Standard – begrenzter Tail von 2,5 %, 10K–25K, mit detailliertem Sitzungsprotokoll + Ankerindex + session_search-Wiederherstellungsverweisen in der Zusammenfassung, alles aus EINEM Aufruf des Hilfszusammenfassers; nach der Komprimierung etwa dreimal weniger beibehaltene Token) oder ‚legacy‘ (unveränderter Tail mit 0,20×Schwellenwert)“), protect_last_n: 20 und protect_first_n: 3, ordnet die Einstellungen des Zusammenfassers unter auxiliary.compression (model, provider, base_url) ein und weist darauf hin: „Ältere Konfigurationen mit compression.summary_model, compression.summary_provider und compression.summary_base_url werden beim ersten Laden automatisch nach auxiliary.compression.* migriert (Konfigurationsversion 17). Es ist kein manueller Eingriff erforderlich.“ Die Migration ist _migrate_to_17 in hermes_cli/config_migrations.py („Version 16 -> 17: veraltete compression.summary_-Schlüssel entfernen“). Die Entwicklerseite zur Kontextkomprimierung (Quelldatei website/docs/developer-guide/context-compression-and-caching.md beim Tag) führt tail_mode mit dem Standardwert lean tabellarisch auf, nennt „Ergebnis bei realen Sitzungen mit 500K Token: etwa 49K statt etwa 162K beibehalten“ sowie „Alte Tool-Ergebnisse innerhalb des lean-Tails werden auf einzeilige Platzhalter mit einem Wiederherstellungsverweis reduziert“ und enthält die Warnung zum Zusammenfassungsmodell (bei v2026.8.31): „Das Kontextfenster des Zusammenfassungsmodells muss mindestens so groß sein wie das des Hauptmodells des Agenten. … Der Komprimierer verwirft anschließend die mittleren Gesprächsrunden ohne Zusammenfassung, wodurch Gesprächskontext unbemerkt verloren geht.“ (Eine veraltete Stelle im Upstream-Projekt: In der „Vollständigen Referenz der Hilfskonfiguration“ auf der Konfigurationsseite ist der Eintrag auxiliary.compression weiterhin mit „Zeitüberschreitung der Kontextkomprimierung (getrennt von der compression.-Konfiguration)“ kommentiert; der Migrationscode, die interaktive Auswahl der Hilfsmodelle über hermes model und der Komprimierungsabschnitt derselben Seite sind die neueren, übereinstimmenden Quellen.) ↩↩↩↩↩↩↩

  32. Austauschbare Terminal-Backends bei Tag v2026.8.31 (für Guide v1.17 erneut verifiziert; agent/terminal_env_registry.py ist byteidentisch mit der Version aus v2026.8.31). Der Modul-Docstring von agent/terminal_env_registry.py lautet wörtlich: „Zentrale Zuordnung registrierter austauschbarer Terminal-Backends. Wird beim Laden durch Plugins über PluginContext.register_terminal_environment_provider befüllt und von tools.terminal_tool._create_environment verwendet“ sowie „Die Namen integrierter Backends sind reserviert – register_provider lehnt einen Provider ab, dessen Name mit einem solchen Namen kollidiert, sodass ein Plugin niemals die im Repository enthaltenen docker/modal/…-Implementierungen überschatten kann“; bewusst gibt es dort „keine Auflösung des aktiven Providers: Das aktive Backend ist genau dasjenige, das TERMINAL_ENV / terminal.backend benennt, ebenso wie bei integrierten Backends.“ Das frozenset BUILTIN_BACKEND_NAMES enthält die sieben Backends sowie den Alias managed_modal für den internen Modus: local, docker, singularity, modal, managed_modal, daytona, vercel_sandbox, ssh. Die neue Dokumentationsseite Plugins für Terminal Environment Provider (Quelldatei website/docs/developer-guide/terminal-environment-plugin.md beim Tag) erklärt wörtlich: „Hermes führt Shell-Befehle über einen austauschbaren Satz von Terminal-Backends aus. Die integrierten Backends (local, Docker, Singularity, Modal, Daytona, Vercel Sandbox, SSH) befinden sich im Kern-Repository unter tools/environments/. Drittanbieter von Sandboxes werden stattdessen als Plugins integriert – als eigenständiges Plugin-Repository, das unter ~/.hermes/plugins/ installiert wird und ein Backend registriert, das der Benutzer genau wie ein integriertes Backend über terminal.backend in config.yaml auswählt“; eine Tabelle führt die Bereiche auf, die von einem registrierten Provider gesteuert werden (Befehlsweiterleitung, Backend-Auswahl in hermes setup, Prüfstatus im Dashboard, Prüfungen durch hermes status/hermes doctor, Umgebungshinweise im System-Prompt, Handhabung von Containerpfaden und Arbeitsverzeichnissen, Entfernung von Geheimnissen, Sandbox-Isolation pro Sitzung), und als Designziel wird genannt: „Durch die Deklaration dieser Flags am Provider wird die klassische Fehlerklasse ‚Neues Backend wurde an Klassifizierungsstelle N übersehen‘ ausgeschlossen – der Kern fragt an jeder Stelle die Registry ab, statt eine fest codierte Namensliste zu verwenden.“ ↩↩↩

  33. Erneute Verifizierungsrunde bei Tag v2026.8.31 (Guide v1.17). Gebietsschemata: Der Verzeichnisbaum locales/ enthält 17 Nachrichtenkataloge – en.yaml sowie 16 Übersetzungen (af, ar, de, es, fr, ga, hu, it, ja, ko, pt, ru, tr, uk, zh-hant, zh) – identisch mit v2026.8.27. Persönlichkeiten: BUILTIN_PERSONALITIES in hermes_cli/personality.py enthält dieselben 14 Einträge von helpful bis hype (helpful, concise, technical, creative, teacher, kawaii, catgirl, pirate, shakespeare, surfer, noir, uwu, philosopher, hype); die Datei ist byteidentisch mit ihrer Version aus v2026.8.27. Beim Tag GEÄNDERTE Anzahlen: 39 statische CANONICAL_PROVIDERS-Einträge (zuvor 38) und 39 Verzeichnisse unter plugins/model-providers/ (zuvor 37) – siehe 26 und 36. Unveränderte Anzahlen: 24 Mitglieder des Platform-Enums (identische Mitgliederliste in gateway/config.py, das lediglich um das gateway-Feld room_link_url ergänzt wurde), 22 Adapterverzeichnisse unter plugins/platforms/, 28 Zeilen in der Plattformvergleichstabelle der Dokumentation; _BUILTIN_SUBCOMMANDS enthält dieselben 73 Einträge (peer und worktree sind vorhanden, weiterhin kein version und kein approval-check – die in den Versionshinweisen verwendete Bezeichnung für hermes approvals test); hermes_cli/_startup_fast.py und hermes_cli/portal_cli.py sind byteidentisch mit ihren Versionen aus v2026.8.27. ↩↩↩↩

  34. Routing von Hilfsmodellen beim Tag v2026.8.31 (für Guide v1.17 erneut verifiziert; der Block mit den "auxiliary"-Standardwerten enthält beim neuen Tag dieselbe Slot-Liste, dieselben Hinweise zu Entfernungen und dieselben Einstellungen außerhalb der Slots, und die unten zitierten Dokumentationstexte stimmen wortwörtlich überein). Auf der Dokumentationsseite zur Konfiguration (Quelle website/docs/user-guide/configuration.md beim Tag) heißt es wörtlich: „Standardmäßig (auxiliary.*.provider: "auto") leitet Hermes jede Hilfsaufgabe an Ihr Haupt-Chatmodell weiter – dasselbe Anbieter-/Modellpaar, das Sie mit hermes model ausgewählt haben. Für den Einstieg müssen Sie nichts konfigurieren. Beachten Sie jedoch, dass Hilfsaufgaben bei teuren Reasoning-Modellen (Opus, MiniMax M2.7 usw.) erhebliche zusätzliche Kosten verursachen.“; im Hinweis „Warum ‚auto‘ Ihr Hauptmodell verwendet“: „Frühere Builds wiesen Benutzern von Aggregatoren (OpenRouter, Nous Portal) anbieterseitig ein günstiges Standardmodell zu. Das war überraschend: Benutzer, die für ein Aggregator-Abonnement bezahlten, sahen, dass ein anderes Modell ihren Hilfsdatenverkehr verarbeitete. auto verwendet nun für alle das Hauptmodell; aufgabenspezifische Überschreibungen in config.yaml haben weiterhin Vorrang.“; und zur Webextraktion: „(Die Webextraktion ist keine Hilfsaufgabe: web_extract und Browser-Snapshots kürzen lange Inhalte deterministisch und speichern den vollständigen Text für die seitenweise Ausgabe mit read_file – ohne Beteiligung von LLM.)“ Die maßgebliche Slot-Liste befindet sich im Block mit den "auxiliary"-Standardwerten in hermes_cli/config_defaults.py beim Tag: vision, compression, skills_hub, approval, review, mcp, title_generation, memory_query_rewrite, tts_audio_tags, triage_specifier, kanban_decomposer, profile_describer, goal_judge, curator, monitor, background_review, moa_reference und moa_aggregator (zuzüglich der Einstellungen außerhalb der Slots transient_retries, free_only, openrouter_model und stream_only_base_urls); die Slots enthalten provider, model, base_url, api_key, timeout, extra_body und ein aufgabenspezifisches reasoning_effort. Hinweise zu Entfernungen in derselben Datei, wörtlich: „web_extract verwendet kein zusätzliches LLM mehr – Seiten werden gekürzt und zusammen mit einem read_file-Verweis gespeichert (keine Zusammenfassung), und Browser-Snapshots folgen demselben Muster. Der alte Block auxiliary.web_extract.* wurde hier entfernt. Vorhandene Werte in config.yaml-Dateien von Benutzern sind harmlose Überbleibsel und werden ignoriert.“ und „session_search verwendet kein zusätzliches LLM mehr (PR #27590 – das Tool mit einheitlicher Ausgabeform gibt Datenbankinhalte direkt zurück)“; der Block enthält keinen Schlüssel flush_memories. Die Kurzbeschreibungen der Slots stammen aus den Kommentaren derselben Datei („Triage-Spezifizierer – arbeitet eine grobe einzeilige Beschreibung in der Spalte Kanban Triage zu einer konkreten Spezifikation aus und verschiebt sie anschließend nach todo. Wird durch hermes kanban specify aufgerufen“; „Kanban-Dekomposition – zerlegt eine Triage-Aufgabe in einen Graphen untergeordneter Aufgaben, die anhand ihrer Beschreibung an spezialisierte Profile weitergeleitet werden. Wird durch hermes kanban decompose und den Dispatcher für die automatische Kanban-Dekomposition aufgerufen“; „Profilbeschreiber – erzeugt automatisch eine 1 bis 2 Sätze lange Beschreibung dessen, wofür sich ein Profil eignet. Wird durch hermes profile describe <name> --auto und die Schaltfläche zur automatischen Generierung im Dashboard aufgerufen“; „Zielbeurteilung – bewertet, ob die neueste Antwort eines /goal-Durchlaufs das Ziel bzw. den Vertrag erfüllt“; „Kurator – Fork zur Überprüfung der skill-Nutzung“; „Hintergrundüberprüfung – der Fork zur Selbstverbesserung nach einem Turn, der entscheidet, ob eine Erinnerung gespeichert oder ein skill angepasst werden soll“), aus den Kommentaren der vollständigen Referenz auf der Konfigurationsseite („Einfügen verborgener Audio-Tags für Gemini 3.1 TTS“; „Automatisch generierte Sitzungstitel. Bei leerer Sprachangabe wird die Sprache der Unterhaltung verwendet“; auxiliary.title_generation.enabled: false deaktiviert automatische Titel) sowie aus der Konfigurationstabelle auf der Kanban-Dokumentationsseite („auxiliary.kanban_decomposer | Modell, das den Aufgabengraphen erzeugt (wird durch Decompose aufgerufen)“; „auxiliary.profile_describer | Modell, das automatisch Profilbeschreibungen erzeugt (wird durch hermes profile describe --auto aufgerufen)“). Interaktiver Pfad: Führen Sie hermes model aus und wählen Sie „Hilfsmodelle konfigurieren“, um eine aufgabenspezifische Auswahl zu erhalten (vision, title_generation, tts_audio_tags, compression, approval, triage_specifier, kanban_decomposer, profile_describer, delegation); der Eintrag Delegation wird unter delegation.* auf oberster Ebene gespeichert, weil Subagents „vollständige untergeordnete Agents und keine nebenläufigen LLM-Aufrufe sind“. ↩↩↩↩↩↩↩↩↩↩↩

  35. Versionshinweise zu Hermes Agent v0.21.0, „The Pantheon Release“, Tag v2026.8.31, angegebenes Veröffentlichungsdatum 31. August, veröffentlicht am 31.08.2026 um 19:29:49 UTC. Statistikzeile im Wortlaut: „Seit v0.20.0: ca. 5.800 Commits · ca. 2.475 zusammengeführte PRs · ca. 5.680 geänderte Dateien · ca. 869.000 Einfügungen · ca. 135.000 Löschungen · ca. 2.100 geschlossene Issues · mehr als 760 Mitwirkende“. Einordnung im Wortlaut: „The Pantheon Release. Mit v0.20.0 wurde Hermes zum Herold – er sprach und überbrachte anderen Agents Botschaften. In v0.21.0 versammeln sich die Götter.“ und „Dieses Release bündelt alle Änderungen aus den Infrastruktur-Patch-Tags v0.20.1 bis v0.20.6 – diese Zeiträume sind hier vollständig dokumentiert.“ Oben verwendete Zitate zu den Funktionsbereichen, jeweils im Wortlaut: Bot Mode – „Bot Mode ist nun ein integrierter und standardmäßig aktivierter Bestandteil der Desktop-App: Jedes Agent-Profil erhält einen Namen, ein deterministisches Avatar-Gesicht (mit Steuerelementen zum Zufälliggenerieren und Sperren) und einen Platz in einer gemeinsamen Übersicht“ und „Zuvor bedeutete ‚Multi-Agent‘ lediglich technische Infrastruktur; jetzt sieht es wie eine Chat-App voller Kollegen aus“ (#87886, #88243, #89386, #96726); hermes peer – „Antworten landen im kanonischen Bot Chat des jeweiligen Agents, sodass Unterhaltungen zwischen Agents dauerhaft gespeichert und einsehbar sind und nicht einfach nach dem Senden verloren gehen“ (#88725, #88178, #91487); cron – „continuity=true übernimmt die Ausgabe jedes Durchlaufs in den nächsten (sodass ein Monitor bereits gemeldete Inhalte deduplizieren kann), jeder Job erhält einen dauerhaften Notizblock als Arbeitsfläche, und Jobs im Monitor-Modus überspringen LLM vollständig, wenn sich nichts geändert hat“ (#91447, #80774, #81139, #81138); delegation – „Lassen Sie sich laufende untergeordnete Agents anzeigen, lenken Sie einen davon während der Ausführung durch eine Kurskorrektur um oder stoppen Sie ihn vorzeitig und behalten Sie das Teilergebnis. Hinzu kommen eine optionale Validierung der Ausgaben untergeordneter Agents anhand eines JSON-Schemas, die Ausweisung der Kosten jeder Delegation in den Ergebnissen sowie höhere Standardwerte (250 Iterationen, 10 gleichzeitig ausgeführte untergeordnete Agents)“ (#85232, #81144, #81142, #86506, #86745); MCP – „hermes://-Deep-Links, die nach ausdrücklicher Bestätigung einen MCP-Server installieren“ (#87525-#87581); CLI – „Strg+P öffnet eine unscharfe Befehlspalette, die /model-Auswahl filtert während Ihrer Eingabe, /status zeigt den Reasoning-Modus, ausstehende Genehmigungen und die Kontextnutzung an, und die Statusleiste kann mit separaten Umschaltern für jedes Feld die aktuelle Cache-Trefferquote in %, die Latenz und Tokens pro Sekunde anzeigen“ (#90730, #90717, #90745, #98250, #98282, #97666); Browser – „Hermes navigiert nun direkt darin, klickt und liest die Inhalte“ (#90197, #89366); Anbieter – „Meta Model API (Muse Spark) wird als integrierter Anbieter eingeführt, gemeinsam mit CommandCode, Tencent TokenPlan, Nebius Token Factory, Ramp Router und Actual Computer“ (#88565, #88308, #97917, #97916, #97915 und die Wiederherstellung aus #79644/#26491); Sicherheit – „Geschützte Agent-Anweisungsdateien (AGENTS.md, skills, Speicher) erfordern nun stets eine Schreibgenehmigung, damit ein durch Prompt Injection manipulierter Agent nicht unbemerkt seine eigenen dauerhaften Anweisungen umschreiben kann“ (#81152), ergänzt um die umfassende Schwärzung vertraulicher Daten (#80965), die Genehmigungsabdeckung unter Windows (#84428), die TCC-Identität (#95091) und die Entfernung von Blender-MCP (#83404). Abschnitt zu zurückgenommenen Änderungen, im Wortlaut: „Model Council mode (/council) – wurde integriert und anschließend zurückgenommen; ist in diesem Release nicht enthalten.“; „DCP context engine – wurde integriert und anschließend zurückgenommen; ist in diesem Release nicht enthalten.“; „Nur über WS erreichbarer gateway-Server (#94245) – wurde zusammengeführt und anschließend zurückgenommen (#96118); FastAPI bleibt Teil des Desktop-Startpfads. Die mit Sequenznummern versehene Ereigniswiedergabe (#94219) wurde dagegen ausgeliefert.“; „Electron wurde auf 40.10.2 zurückgesetzt; der TCC-Interpreter-Anker wurde entfernt (ersetzt durch den ausgelieferten Ansatz mit Signaturidentität).“ Der Abschnitt zu Fehlerbehebungen schließt mit: „… und Änderungen im Umfang von rund zweitausend weiteren geschlossenen Issues – in diesem Zeitraum wurden durchschnittlich etwa 85 PRs pro Tag zusammengeführt.“ ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  36. Neue Anbieter im Tag v2026.8.31. hermes_cli/models.py erhält ProviderEntry("tencent-tokenplan", "Tencent TokenPlan", "Tencent TokenPlan (Hy4 preview via api.lkeap.cloud.tencent.com, Anthropic Messages)") (statischer Eintrag Nr. 39), die Katalogmodelle hy4-preview, hy3, hy3-preview sowie eine ausschließlich zur Anzeige dienende Auswahlgruppe "tencent": ("Tencent Hy", "Hy4 / Hy3 via TokenHub & TokenPlan", ["tencent-tokenhub", "tencent-tokenplan"]). Unter plugins/model-providers/ kommen nebius-token-factory/ und router/ hinzu, die beide auth_type="api_key" deklarieren und daher von der automatischen Erweiterung erfasst werden. Der Docstring des Router-Plugins im Wortlaut: „Anbieterprofil für Ramp Router, das LLM gateway von Ramp: ein mit OpenAI Responses kompatibler Endpunkt unter https://api.router.com/v1, der jede Anfrage an verschiedene vorgelagerte Anbieter (OpenAI, Anthropic, xAI, Fireworks, …) weiterleitet und Fallbacks sowie Ausgabenkontrollen serverseitig verwaltet“ … „Responses API ist das native Übertragungsformat.“ … „Gültige Modell-IDs sind alle IDs, die GET /v1/models für den jeweiligen Schlüssel zurückgibt (BYOK-Konten sehen zusätzliche Einträge). Daher enthält dieses Profil keine fallback_models – die Auswahl stützt sich gemäß Routers eigener Empfehlung, Modellnamen niemals fest zu codieren, auf den Live-Abruf.“ Die Dokumentationsseite zu AI Providers führt für diesen Tag 45 benannte Anbieter sowie die Zeile Custom Endpoint auf; die vier seit v2026.8.27 hinzugekommenen Zeilen im Wortlaut: „Ramp Router | RAMP_ROUTER_API_KEY in ~/.hermes/.env (Anbieter: router; Aliasse: ramp-router, ramp, router.com; Responses-natives gateway, kontospezifischer Live-Katalog)“; „Nebius Token Factory | NEBIUS_API_KEY in ~/.hermes/.env (Anbieter: nebius-token-factory; Aliasse: nebius, nebius-tf, tokenfactory)“; „Tencent TokenPlan | TOKENPLAN_API_KEY in ~/.hermes/.env (Anbieter: tencent-tokenplan, Aliasse: tokenplan, tencent-lkeap; Anthropic Messages-Endpunkt)“; „Alibaba Cloud (Token Plan) | ALIBABA_TOKEN_PLAN_API_KEY in ~/.hermes/.env (Anbieter: alibaba-token-plan; Endpunkt für Festlandchina: alibaba-token-plan-cn) – Model Studio-Tarif mit pauschalem Token-Kontingent“. model_overrides befindet sich für diesen Tag in hermes_cli/config_defaults.py ("model_overrides": {}; explizite Einträge unter model_overrides.<provider>.<model_id> haben Vorrang vor dem Katalog, während _default-Einträge lediglich Lücken bei Modellen füllen, die der Katalog nicht abdeckt). ↩↩↩↩↩↩↩↩

  37. Cron-Kontinuität im Tag v2026.8.31. Die Dokumentationsseite zu cron (Quelle beim Tag: website/docs/user-guide/features/cron.md) im Wortlaut: „Wenn Sie continuity=true setzen, fügt der Job bei jedem Lauf seine eigene jüngste Ausgabe ein. Wiederkehrende Jobs beginnen normalerweise jeden Lauf ohne Erinnerung – ein Nachrichten-Scout meldet dieselben Meldungen erneut, ein Monitor warnt wieder vor demselben Zustand. Bei aktivierter Kontinuität sieht der Job beim Aufwachen, was er beim letzten Mal gemeldet hat, kann Duplikate vermeiden und seine Arbeit dort fortsetzen, wo er aufgehört hat“; „Bei späteren Läufen wird die vorherige Ausgabe mit einem Kontinuitätshinweis vorangestellt (‚Wiederholen Sie nichts, was bereits gemeldet wurde‘) … Intern wird das Flag als reservierter Eintrag self in context_from gespeichert.“; „Über die CLI: hermes cron create "every 6h" "Scan for news" --continuity sowie hermes cron edit <job_id> --continuity / --no-continuity, um die Funktion für einen bestehenden Job ein- oder auszuschalten. Derselbe Schalter erscheint im Cron-Editor des Dashboards und im Dialog für Bot Mode-Routinen der Desktopanwendung.“ Aufwand pro Job im Wortlaut: „Ein Job kann unabhängig von der Modellfestlegung eine eigene Denkstufe festlegen: none, minimal, low, medium, high, xhigh, max oder ultra. Ist eine Stufe festgelegt, überschreibt sie sowohl das globale agent.reasoning_effort als auch die modellspezifischen agent.reasoning_overrides für die Läufe dieses Jobs“; festlegen lässt sie sich über hermes cron create/edit --reasoning-effort high. Bot Chat-Zustellung im Wortlaut: „bot-chat stellt die Ausgabe als echte Nachricht in der kanonischen „Bot Chat“-Sitzung eines profile zu … Empfänger ist hier der Bot selbst: Er empfängt die Ausgabe als eingehende Nachricht, führt alle erforderlichen Aktionen aus und antwortet in seinem Chat.“ Notizblöcke: der Modul-Docstring von cron/notepad.py – „Ein kleiner KV-Notizblock, mit dem jeder Cron-Job Zustände über geplante Aktivierungen hinweg beibehalten kann (Cursor, Wasserzeichen, Beobachtungslisten)“, begrenzt durch „MAX_VALUE_BYTES (16 KB)“ und „MAX_JOB_TOTAL_BYTES (64 KB)“ („der Notizblock wird bei jedem Lauf in den Prompt eingefügt; unbegrenztes Wachstum würde daher den Prompt jeder Aktivierung aufblähen“) sowie „Der Schreibpfad ist die CLI (hermes cron notepad <job_id> set <key> <value>), die der laufende Agent über sein Terminalwerkzeug aufruft; es wird kein Modellwerkzeug hinzugefügt.“ Monitor-Modus: der Docstring von cron/monitor.py – „Cron-Unterstützung im Monitor-Modus – hashbasierte Unterdrückung unveränderter Ergebnisse“ mit einer „kostengünstigen Monitor-Quelle (monitor_script oder monitor_url)“; „unverändert -> der Agent-Lauf wird vollständig unterdrückt (kein LLM, keine Zustellung); der Tick wird als stiller no_change-Lauf erfasst“; „Die Ausgabe wird als EXAKTE BYTES verglichen – ohne Entfernung von Zeitstempeln oder Normalisierung von Leerzeichen. Monitor-Skripte sollten eine stabile Ausgabe erzeugen … andernfalls wirkt jeder Tick wie eine Änderung.“; „Freischaltung: #80774.“ ↩↩↩↩↩↩↩

  38. Live-Subagent-Orchestrierung im Tag v2026.8.31. Die Dokumentationsseite zur Delegation (Quelle beim Tag: website/docs/user-guide/features/delegation.md), „Steuerung eines laufenden Subagenten“: Die Steuerungsoberfläche besteht aus {"action": "list"}, {"action": "steer", "subagent_id": "sa-0-1a2b3c4d", "message": "focus on pricing instead"}, {"action": "stop", "subagent_id": "sa-0-1a2b3c4d"}; im Wortlaut: „list gibt die aktiven untergeordneten Agenten der Unterhaltung zurück: subagent_id, Ziel, Status, running_seconds, accepting_steer und den Pfad zum Live-Transkript“; „stop beendet einen untergeordneten Agenten vorzeitig an seiner nächsten Iterationsgrenze; das Teilergebnis fließt dennoch als reguläre Abschlussnachricht wieder in die Unterhaltung ein“; Steuerungsaktionen sind „auf den eigenen Spawn-Baum des Aufrufers beschränkt – eine Unterhaltung kann die untergeordneten Agenten einer anderen Sitzung weder sehen noch steuern – und werden niemals auf das Subagent-Spawn-Limit pro Durchlauf angerechnet, sodass stop auch nach Erreichen des Limits weiterhin funktioniert“; bei der Zustellung von Steuerungsanweisungen wird das Race ehrlich dargestellt („In die Warteschlange gestellt bedeutet nicht zugestellt, ist aber niemals ein vorgetäuschter Erfolg“; dabei wird pending_steer in die Ergebnisse übernommen und missed_steer markiert, wenn ein untergeordneter Agent zuerst fertig war). Standardwerte: hermes_cli/config_defaults.py setzt delegation.max_iterations: 250 („Iterationslimit pro Subagent; jeder Subagent erhält sein eigenes Budget, unabhängig von max_iterations des übergeordneten Agenten“) und delegation.max_concurrent_children: 10 („einheitliches Parallelitätslimit: maximale Anzahl paralleler untergeordneter Agenten pro Batch UND maximale Anzahl gleichzeitig ausgeführter Delegationseinheiten im Hintergrund (background=true) … (Ersetzt das veraltete max_async_children.)“). Eine Stelle ist in den vorgelagerten Quellen noch veraltet: Auf der Dokumentationsseite zur Delegation ist weiterhin von „standardmäßig 3 Aufgaben“ die Rede, und in der Konfigurationsreferenz steht „max_iterations: 50 … (Standard: 50)“; die ausgelieferte config_defaults.py und die Versionshinweise („erhöhte Standardwerte (250 Iterationen, 10 gleichzeitige untergeordnete Agenten)“) sind die neueren, übereinstimmenden Quellen. ↩↩

  39. Sicherheitswelle beim Tag v2026.8.31. Geschützte Anweisungsdateien: In hermes_cli/config_defaults.py ist security.protected_instruction_files: True voreingestellt (Kommentar: „Schreibvorgänge in Agent-Anweisungsdateien (AGENTS.md/CLAUDE.md/SOUL.md/…)“), zusammen mit protected_instruction_extra_patterns: [] (fnmatch auf den Basisnamen); tools/file_tools.py implementiert die Sperre – „Geschützte Agent-Anweisungsdateien (Genehmigungssperre mit obligatorischer Nachfrage)“ über _PROTECTED_INSTRUCTION_BASENAMES = frozenset({"agents.md", "claude.md", "soul.md", ".cursorrules", ...}) – und benennt das Bedrohungsmodell wörtlich: „Vektor: eine eingeschleuste Anweisung, die AGENTS.md / CLAUDE.md / SOUL.md bearbeitet“ sowie „Projektkontext-Anweisungsdateien werden aus cwd-Verzeichnisbäumen geladen – jede AGENTS.md an einem Ort, von dem der Agent später ausgeführt werden könnte, ist ein aktives Ziel.“ TCC-Identität: hermes desktop --setup-tcc-identity ist in hermes_cli/main.py implementiert – _desktop_macos_setup_tcc_identity(identity: str = "Hermes Local Signing"), „Einmalige Einrichtung für hermes desktop --setup-tcc-identity“, abgesichert durch „(–setup-tcc-identity ist ausschließlich für macOS verfügbar; wird übersprungen)“ und „(–setup-tcc-identity erfordert openssl, security und codesign …)“. Die Bereinigungsrunde zur Schwärzung (#80965, #80964, #81675, #81686, #88232), die Windows-Abdeckung für Genehmigungen (#84428), die Entfernung von Blender MCP (#83404) und die Tier-1-Prüfung von Plugin-Installationen (#80728) entsprechen den Versionshinweisen.35 ↩↩↩↩

  40. Änderungen an der CLI-Oberfläche beim Tag v2026.8.31. COMMAND_REGISTRY in hermes_cli/commands.py registriert CommandDef("palette", "Open the fuzzy command palette (also Ctrl+P)", "Info", ...) und CommandDef("status", "Show session, model, token, and context info", "Session", ...) – /status ist ein Sitzungsbefehl der gemeinsamen Registry und nicht auf Messaging beschränkt. In _BUILTIN_SUBCOMMANDS gibt es keinen Eintrag approval-check (73 Einträge, identisch mit v2026.8.27); der Probelauf, den die Versionshinweise zu v0.21.0 als hermes approval-check (#81137) bezeichnen, lautet hermes approvals test – die Parser-Hilfe in hermes_cli/subcommands/approvals.py beim Tag: „Führt eine Probesimulation der Genehmigungsentscheidung für einen Befehl aus (führt ihn niemals aus)“, mit --backend („Typ des zu prüfenden Terminal-Backends (Standard: lokal …“) und --json. hermes_cli/_parser.py wurde nur innerhalb von hermes chat geändert: Die Hilfe zu -q/--query lautet nun „Auszuführende Abfrage. Auf einem echten TTY dient der Prompt als Ausgangspunkt einer interaktiven Sitzung (wörtlich als erster Turn übermittelt); in Kombination mit –oneshot oder -Q oder auf einem Nicht-TTY wird die Abfrage beantwortet und das Programm beendet.“; ein neues Flag --oneshot dokumentiert: „Bei -q/–query-file: die Abfrage beantworten und das Programm beenden (altes Verhalten für Einzelabfragen), anstatt eine interaktive Sitzung zu beginnen. Wird bei Nicht-TTY-stdio sowie durch -Q/–quiet impliziert.“; und --max-turns dokumentiert: „Maximale Anzahl von Iterationen mit Tool-Aufrufen pro Konversations-Turn (Standard: 500 oder agent.max_turns in der Konfiguration)“. ↩↩↩↩↩↩↩↩↩

  41. Versionshinweise zu Hermes Agent v0.21.1, Tag v2026.9.7, angegebenes Veröffentlichungsdatum 7. September, veröffentlicht am 2026-09-07T22:17Z. Der Text ist bewusst knapp gehalten; wörtlich handelt es sich um eine „Patch-Version“, die „den aktuellen Stand von main seit v0.21.0 für getaggte Bereitstellungen und nachgelagerte Nutzer bündelt“; Statistiken für den Zeitraum zum Vorbereitungszeitpunkt: „5.139 Nicht-Merge-Commits in 4.364 geänderten Dateien (+601.014 / -768.419)“ und „632 zusammengeführte PRs“; außerdem: „Vollständige, kuratierte Versionshinweise für diesen Zeitraum erscheinen mit v0.22.0.“ Prüfung im lokalen Klon: git rev-list --count --no-merges v2026.8.31..v2026.9.7 = 5.140 und git diff --shortstat = +601.018 / -768.423 – die Zahlen im Text entsprechen dem Schnappschuss vor dem Veröffentlichungs-Commit und weichen exakt um diesen Commit ab; der größte vorherige Zeitraum zwischen benachbarten Tags ist v2026.7.20..v2026.7.30 mit 2.790 Nicht-Merge-Commits (alle benachbarten Tag-Paare ab v2026.3.12 wurden im lokalen Klon gemessen). Die doctor-Prüfung des Eintrags zur Fehlerbehebung befindet sich beim Tag in hermes_cli/doctor_config.py:330-362 (_drift_max_iterations_ghost): Ein veraltetes HERMES_MAX_ITERATIONS in .env überschreibt agent.max_turns, wenn die Startbrücke aufgrund eines vorherigen Fehlers beim Parsen der Konfiguration abbricht (Issue #17534), und hermes doctor --fix entfernt die Zeile aus .env. In der aktuellen Sitzung am 8. September 2026 verifiziert. ↩↩↩↩↩

  42. COMPAT_MANIFEST.md beim Tag v2026.9.7 (Repository-Stammverzeichnis, 3.869 Zeilen). Wörtlich: „Die Aufteilung vom September 2026 (PR #102117) zerlegte die großen Module von Hermes Agent in fokussierte Dateien“; „Interne Importpfade sind keine stabile API“; „Diese Schicht ist vorübergehend und wird am 2026-09-14 entfernt. Sie wurde als einzelner Commit hinzugefügt und durch Zurücksetzen dieses Commits entfernt.“; die Tabelle zu den Auswirkungen (vor dem 2026-09-14: gelber Hinweis mit dem Namen des Plugins, dem Datum und hermes plugins compat; das Plugin „wird geladen; jede Auflösung eines alten Pfads gibt einmal HermesPluginCompatWarning aus“; ab dem 2026-09-14: „roter Hinweis: Plugin DEAKTIVIERT“ und „nicht geladen; hermes plugins list zeigt den Grund“; Desktop: „einmaliges modales Dialogfeld“); der Ausweg, wörtlich: „plugins.allow_deprecated_imports: true in config.yaml sorgt dafür, dass betroffene Plugins nach diesem Datum weiterhin geladen werden, bis die Pfade durch das Zurücksetzen tatsächlich entfernt werden.“; Anzahlen nach Art: moved-lazy 1148, import 592, restored-def 290, restored-helper 41, restored-import 17, module-stub 3, unrestorable 34; Umfang: nur öffentliche Namen auf oberster Ebene, „Test-Monkeypatch-Schnittstellen werden ebenfalls nicht beibehalten.“ Checker-Parser unter hermes_cli/subcommands/plugins.py:104-112: hermes plugins compat [path] [--json], Beschreibung wörtlich: „Durchsucht jedes aktivierte externe Plugin statisch nach Importen von Modulpfaden vor der Aufteilung (siehe COMPAT_MANIFEST.md) und gibt Datei:Zeile, alter Pfad -> neuer Pfad aus. Wird ein betroffenes Plugin gefunden, endet der Befehl mit Status 1.“ Struktur der Aufteilung beim Tag verifiziert: agent/ = 214 Module auf oberster Ebene + 7 Unterpakete (lsp, monitoring, pet, proxy_sources, secret_sources, transports, verify), hermes_cli/subcommands/ = 61 Module, CANONICAL_PROVIDERS unter hermes_cli/models_catalog_static.py:311 mit 39 Einträgen, deren Slugs mit der Liste aus hermes_cli/models.py bei v2026.8.31 identisch sind (einschließlich des statischen Tupels xai; plugins/model-providers/ enthält weiterhin 39 Verzeichnisse), die alte Datei prompt_builder.py auf oberster Ebene wurde entfernt (jetzt agent/prompt_builder.py) und run_agent.py im Stammverzeichnis ist weiterhin die Heimat von AIAgent. Nachwirkungen, für Version 1.19 des Leitfadens erneut verifiziert (15. September 2026): Die Entfernung wurde planmäßig als Datumssperre und nicht als Zurücksetzung aktiviert – beim Tag v2026.9.14 setzt hermes_cli/plugin_compat.py:32 COMPAT_REMOVAL_DATE = _dt.date(2026, 9, 14), removal_in_effect() (Zeilen 86–90) gibt ab diesem Datum oder bei fehlender Manifestdatei true zurück, und allow_deprecated_imports() (Zeilen 261–268) berücksichtigt ausschließlich einen booleschen Literalwert (die Prüfung lautet ... is True; Kommentar im Quelltext: „Nur boolesche Literalwerte“, sodass ein YAML-String wie "false" oder "no" die Umgehung nach der Entfernung niemals aktivieren kann). Die Zurücksetzung, mit der die alten Pfade gelöscht werden, ist NICHT erfolgt: COMPAT_MANIFEST.md, compat_manifest.json und hermes_cli/plugin_compat.py sind sowohl bei v2026.9.14 als auch auf main beim Commit 5d59366010 vorhanden (2026-09-15 12:55 PT, am selben Tag abgerufen), sodass der Ausweg die alten Pfade weiterhin auflöst; sobald die Zurücksetzung erfolgt, funktioniert er nicht mehr. Für Version 1.20 des Leitfadens erneut verifiziert (22. September 2026): weiterhin keine Zurücksetzung – alle drei Dateien sind beim Tag v2026.9.21 und auf main beim Commit a53b42ddea vorhanden (am 2026-09-22 committet und am selben Tag abgerufen). Bei v2026.9.21 sind Sperre und Prüfung inhaltlich unverändert: COMPAT_REMOVAL_DATE steht weiterhin unter plugin_compat.py:32, removal_in_effect() unter :86 und allow_deprecated_imports() nun unter :296-303 mit derselben Prüfung auf einen booleschen Literalwert (... is True; der Kommentar lautet nun: „Nur boolesche Literalwerte: Ein YAML-Wert wie "false" / "no" darf die Umgehung nach der Entfernung nicht aktivieren.“). Die einzigen Änderungen am Modul im Zeitraum von v0.21.4 betreffen Leistung und Portabilität: ein prozessweiter Scan-Cache, der auf der Dateisignatur (relpath, mtime_ns, size) jedes Plugin-Verzeichnisses basiert (ein Multiplex-gateway erkennt Plugins einmal pro bereitgestelltem profile, und das erneute Parsen des Quelltexts jedes Plugins kostete im Startpfad etwa 0,4 s pro profile), sowie Trefferpfade im POSIX-Format unter nativem Windows (#112576); aus dem Manifest wurden zudem 2 opencode-bezogene Zeilen entfernt (_OPENCODE_KEYLESS_EXTRA_SLUGS, is_opencode_zen_free_model) – strukturell änderte sich nichts. ↩↩↩↩↩↩↩↩↩

  43. docs/session-lifecycle.md beim Tag v2026.9.7, Abschnitt „6. Explizite Konversationsgrenzen“, wörtlich und vollständig: „Weder Inaktivität noch verstrichene Zeit führen jemals zu einem Wechsel der Konversation. /new und /reset erzeugen eine explizite Grenze; die Kontextkomprimierung verwaltet weiterhin lange Verläufe. Veraltete Timer-Konfigurationen werden ignoriert. Der vorhandene Datentyp SessionResetPolicy enthält inaktive Kompatibilitätsdaten und stellt keine Laufzeitrichtlinie dar. Eine explizite Unterbrechung erzeugt beim nächsten eingehenden Turn weiterhin eine Grenze. Bei der Wiederherstellung werden explizite und historische abgeschlossene Grenzen berücksichtigt, anstatt sie erneut zu öffnen. Eine reine Ressourcenverdrängung und das Entfernen verwaister WebSocket-Einträge lassen Konversationen fortsetzbar.“ ↩↩↩↩

  44. MCP-Autorisierung beim Tag v2026.9.7. Parser: hermes_cli/subcommands/mcp.py:55-66 – login („Erneute Authentifizierung für einen OAuth-basierten MCP-Server erzwingen“) akzeptiert --flow mit den Optionen browser/device; Hilfetext wörtlich: „OAuth-Ablauf (überschreibt oauth.flow): Browser-PKCE oder Gerätecode nach RFC 8628“; reauth („Einen OAuth-MCP-Server oder alle Server (–all) erneut authentifizieren“) akzeptiert einen optionalen Namen sowie --all. Der Gerätecode-Ablauf wurde innerhalb des betrachteten Zeitraums mit Commit f5afe8bd40 „feat: authorize MCP servers with device codes from the CLI“ eingeführt. Begleitende Absicherungen, nach Commit-Betreff innerhalb dieses Zeitraums: f914c9b070 „fix(mcp): enforce profile ownership throughout OAuth sessions“; f94307a7f7 „fix: ignore malformed MCP OAuth metadata caches“; e3ba651b6d „fix(desktop): relay MCP OAuth through client-local callbacks“. Nach toolset gefiltertes Starten: tools/mcp_tool_discovery.py:412-426 – der Filter ist vorhanden, damit „hermes -z -t <toolsets>“ das „Starten nicht benötigter Server beim Kaltstart überspringen“ kann; ein leerer Filter überspringt das Laden von MCP vollständig. ↩↩↩

  45. Zuverlässigkeit der Delegation beim Tag v2026.9.7, ermittelt aus dem Quellcode des Delegationswerkzeugs. Abschlusseinheiten: tools/delegate_tool_dispatch.py:326-341 (_units_of) – wörtlich: „Standardmäßig deaktiviert (delegation.independent_completions): Der gesamte Aufruf ist EINE Einheit und wird als eine Nachricht zurückgegeben. Eine Flut einzelner Abschlüsse pro Aufgabe (jeweils ein neuer Turn) fragmentierte Orchestratoren, die dafür keinen Plan hatten.“; Einheiten werden jeweils für jede eindeutige group von Aufgaben in der Reihenfolge ihres ersten Auftretens sowie für jede nicht gruppierte Aufgabe erstellt und treten jeweils eigenständig wieder in die Konversation ein; Commit c89f3b8800 innerhalb des betrachteten Zeitraums: „fix(delegation): one completion per call by default; queued units no longer stalled“. Übergabe von Hintergrundprozessen: Commit 3c0d90e8ef „feat(delegation): subagents hand background processes to the parent; leftovers are named, not trusted“; beim Tag zeichnet tools/delegate_tool_child_run.py:744-763 (account_background_processes) übergebene Prozesse im Ergebnis auf und führt noch laufende, nicht übergebene Prozesse als orphaned_processes sowie beendete, aber nie gelesene Prozesse als unread_completions (mit dem Ende der Ausgabe) auf, bevor cleanup sie beendet; Docstring: Der übergeordnete Agent „muss dies von der Laufzeit erfahren“, anstatt der Behauptung eines untergeordneten Agenten zu vertrauen, ein „Beobachter laufe“; das Übergabeverb lautet process_manage(action="handoff") (nur für untergeordnete Agenten) und ändert ProcessSession.owner_task_id unter der Registry-Sperre über process_registry.transfer_ownership (tools/AGENTS.md, Abschnitt „Delegation“, beim Tag). Fallback-Konfiguration: delegation.fallback_providers in hermes_cli/config_defaults.py, Kommentar wörtlich: „Für einen nicht festgelegten untergeordneten Agenten gilt: null = die Kette des übergeordneten Agenten übernehmen; [] = Fallback deaktivieren. Ein durch Anbieter, Endpunkt oder Modell festgelegter untergeordneter Agent erhält keinen Fallback, sofern diese Einstellung nicht ausdrücklich einen angibt.“; Kettenvalidierung in tools/delegate_tool_config.py:417-425 (_resolve_child_fallback_chain): „Fehlerhafte Einträge werden vom kanonischen Normalisierer verworfen.“ Ausfallsicherheit: tools/async_delegation.py:222-246 zeichnet jeden abgeschlossenen untergeordneten Agenten einer noch laufenden Einheit mit mehreren untergeordneten Agenten dauerhaft in der eigenen Zeile der Einheit auf ("partial": True), sodass abgeschlossene untergeordnete Agenten auch bei einem Absturz vor Abschluss der Einheit erhalten bleiben. Cache-Stufe: tools/delegate_tool.py:106-112 (_apply_child_cache_ttl), wörtlich: „Ein delegierter untergeordneter Agent verwendet niemals die 1h-Cache-Stufe.“; bei einem untergeordneten Agenten mit _cache_ttl == "1h" wird der Wert auf "5m" gesetzt. ↩↩

  46. Anbieter und Modelle beim Tag v2026.9.7. Astra-Stufen: hermes_cli/models_catalog_static.py:22-25 – openai/gpt-6-astra-fast „doppelter Preis, Prioritätsstufe“, -flex „halber Preis, Flex-Stufe“ sowie -pro-fast/-pro-flex; gpt-6-astra und -pro befinden sich in OPENROUTER_MODELS und sind nicht in der Ausschlussmenge _OPENROUTER_ONLY enthalten, sodass auch Nous Portal sie anbietet. Astra-Freigabe und 900K: hermes_cli/codex_models.py:96-101 („Astra ist kontogebunden: Nur der aktuelle kontospezifische Katalog darf es ausweisen“) und agent/model_metadata.py:1447-1462 – Codex OAuth weist 272K aus, gpt-6-astra ist für 900K geeignet, mit dem Kommentar „272K ausgewiesen; Eingabe mit 920.043 akzeptiert, mit 1.000.043 abgelehnt (live am 04.09.2026)“, und CODEX_CONTEXT_VARIANT_SUFFIX = "-900k" ist ein „ausschließlich für die Modellauswahl bestimmtes Opt-in-Suffix; wird niemals übertragen“ (der Astra-Kontext auf OpenRouter-Seite beträgt laut model_metadata.py:334 1.050.000). Neue Katalogeinträge in derselben statischen Datei (Zeilen 30–42): anthropic/claude-fable-5.1, google/gemini-3.8-flash und gemini-3.7-flash, qwen/qwen3.8-max-0902 und qwen/qwen3.8-flash, meta/muse-spark-1.3 und -contributor (1M Kontext gemäß agent/model_metadata.py:349). muse-image: plugins/image_gen/meta-ai/__init__.py („Meta Model API (muse-image): OpenAI-kompatibel (https://api.meta.ai/v1)“, einschließlich Modellen wie muse-image-1.0). Tavily: hermes_cli/config_defaults.py:2522-2525, wörtlich: „Tavily-API-Schlüssel für KI-native Websuche und Extraktion (optional – bei ausgewähltem Tavily funktioniert es auch ohne Schlüssel)“, Werkzeuge web_search und web_extract; der web-Block weist darauf hin, dass Tavily „über hermes tools ohne Schlüssel ausdrücklich aktiviert werden muss und kein Ringmitglied ist“. Verwaltete llama.cpp-Laufzeit: das Paket hermes_cli/local_runtime/ („Verwaltete llama.cpp-Laufzeit“), der Konfigurationsblock unter config_defaults.py:2327 („offizielle Binärdateien, ein überwachter“ Server; Dokumentationsverweis user-guide/local-models) und die Desktop-Oberfläche apps/desktop/src/api/local-models.ts. Anbieter mit externen Prozessen: agent/auxiliary_client.py:4740-4799 (_resolve_external_process_branch, „PROVIDER_REGISTRY-external_process-Anbieter, die über ihr registriertes profile bereitgestellt werden“), anhand des registrierten profile indiziert, „damit ein externer ACP-Anbieter“ aufgelöst werden kann. Katalogintervall: Konfigurationsmigration 39 -> 40 in hermes_cli/config_migrations.py:622-627 („model_catalog.ttl_hours -> ttl_minutes (Standardwert 20)“, Benutzermeldung „Der Modellkatalog wird jetzt alle 20 Minuten aktualisiert (model_catalog.ttl_minutes)“), wobei hermes_cli/model_catalog.py das veraltete ttl_hours „nur berücksichtigt, wenn ttl_minutes noch auf seinem Standardwert steht“. ↩↩↩

  47. Desktop-Welle beim Tag v2026.9.7. Kommentarmodus: website/docs/user-guide/desktop.md beim Tag, wörtliches Grundgerüst: „Klicken Sie in der Leiste des Vorschaubrowsers auf Annotate, klicken Sie dann auf ein beliebiges Element der Live-Seite (oder ziehen Sie einen Rahmen auf) und geben Sie eine Notiz ein; jeder gespeicherte Kommentar bleibt als nummerierte Markierung auf der Seite“; „Durch das Speichern einer Markierung wird niemals ein Turn gesendet“; „Add N comments fügt dem Composer pro Markierung einen zugeschnittenen Screenshot sowie einen kurzen Prompt hinzu, der jeden Kommentar benennt“; „Jeder Elementkommentar enthält seinen CSS-Selektor, sein Markup und die für das Layout relevanten berechneten Stile, damit der Agent das Element in Ihrem Quellcode finden kann, statt anhand des Bildes raten zu müssen“; „Werte aus Passwort- und ausgeblendeten Feldern sowie alle Attribute, die wie ein Schlüssel oder Token aussehen, werden auf der Seite unkenntlich gemacht, bevor das Markup sie verlässt“; „Größere Stapel werden danach gruppiert, in welchem Teil der Seite sich die einzelnen Kommentare befinden, sodass gut zwanzig Kommentare zu einer überschaubaren Zahl von Arbeitspaketen statt zu jeweils einer eigenen Aufgabe werden“; „Da die Gruppen separate DOM-Unterbäume sind, betreffen sie normalerweise unterschiedliche Dateien, wodurch sie sicher an parallele Worker übergeben werden können“. Commits innerhalb des Zeitfensters: 10f2a20966 „feat(desktop): add comment mode to the in-app browser“; e4bda3ff77 „feat(desktop): browser comments carry the element’s selector, markup, and styles“; Sitzungssteuerung 8cb2bcc8c1 „expose structured session controls“ + bfddf556bf „hydrate structured session controls“ + dffd8d62c2 „add session automation controls“; 6b1e12c7f4 „drag to create sessions from New session, project + controls, and profile groups“; 9186e3ebc5 „session import view for foreign coding-agent transcripts“; a1c25d393a „built-in optional-skills catalog in Capabilities → Skills with one-click install“; russische Locale a922dad9d8 „feat(desktop): add Russian (ru) locale“ + 269e5bde33 (registriert ru in Locale-Tests und der Dokumentation; apps/desktop/src/i18n/ru.ts ist in diesem Zeitfenster neu, während locales/ des CLI weiterhin 17 Kataloge enthält). display.resume_last_session: hermes_cli/config_defaults.py:777, Standardwert True, Kommentar wörtlich: „Desktop öffnet beim Kaltstart den letzten Chat bzw. die letzte Seite erneut (auch unter Settings → Appearance).“ Einwilligung für das reale profile: apps/desktop/src/app/chat/right-rail/real-profile-consent-dialog.tsx („Einwilligungsabfrage beim ersten Öffnen für das Browsen mit dem realen profile“, wird angezeigt, wenn sich ein Browser-Bereich öffnet, während browser.use_real_profile deaktiviert ist; durch Zustimmung wird derselbe Konfigurationsschlüssel geschrieben, den der Schalter unter Capabilities verwendet, „Not now“ unterdrückt die Abfrage für die aktuelle App-Ausführung, „Don’t show again“ dauerhaft über App-Neustarts hinweg). ↩↩

  48. Versionshinweise zu Hermes Agent v0.21.2, „The state.db Patch Release“, Tag v2026.9.11, angegebenes Veröffentlichungsdatum 11. September, veröffentlicht am 2026-09-11T19:20Z. Wörtliche Einordnung: „v0.21.0 brachte eine umfassende Überarbeitung der Verbindungsverwaltung des Sitzungsspeichers mit sich, durch die state.db bei einigen Installationen fehleranfällig wurde: Weitere Schreibprozesse hoben gegenseitig ihre Sperren auf, intakte Datenbanken wurden als beschädigt gemeldet und eine einzige fehlerhafte Zeile brachte sessions list zum Absturz.“ Beim Commit 04dd80a977 gemessene Statistiken: „947 Nicht-Merge-Commits“, „1.869 geänderte Dateien“, „312 zusammengeführte PRs“, „140 Mitwirkende“ (Prüfung im lokalen Klon: git rev-list --count --no-merges v2026.9.7..v2026.9.11 = 959 – die Zahl im Text ist eine Momentaufnahme vor der Veröffentlichung, nach demselben Muster wie bei v0.21.1). Kampagnenüberschrift wörtlich: „Zuverlässigkeitskampagne für state.db (sechs PRs, 44 geschlossene Issues)“ (PRs #108076, #108082, #108130, #108086, #108074, #108067); Aktualisierungshinweis wörtlich: „Führen Sie zuerst hermes doctor aus; der Befehl unterscheidet jetzt korrekt zwischen Struktur- und Indexschäden und verweist auf hermes sessions recover --inspect-only (an das profile gebunden), wenn ein Neuaufbau nicht ausreicht.“ Überprüfung des Quellcodes beim Tag: Status gehosteter Räume außerhalb des Root-Speichers unter gateway/hosted_rooms.py:398-426 – default_db_path verweist bei profile-gateways auf „die gemeinsam genutzte ROOT-shared-state.db statt auf die primäre state.db“, und der Docstring nennt den wiederkehrenden Korruptionsvektor durch mehrere Schreibprozesse, der in einer Flotte aus 6 gateways beobachtet wurde (2026-09-03), als Grund dafür, dass profile-gateways den primären Sitzungsspeicher niemals mit Schreibzugriff öffnen dürfen. Parser für hermes sessions recover unter hermes_cli/subcommands/sessions.py:185-196 mit dem wörtlichen Hilfetext zu --inspect-only: „Nur die Lesbarkeit der kanonischen Tabelle melden; keine Ausgabedatenbank erstellen“; der Unterbefehl existierte bereits vor diesem Zeitfenster (in hermes_cli/main.py bei v2026.8.31 vorhanden), war in diesem Leitfaden jedoch noch nicht dokumentiert. Anmeldedaten-Tresor: Docstring in agent/vault_backends/__init__.py („Anmelde-Backends für den Browser-Anmeldedaten-Tresor“; Handles werden nach Backend in Namensräume eingeordnet, sodass Browser-Tools ohne Schemaänderungen weiterleiten können; externe Manager bleiben bis zu einer sitzungsbezogenen Entsperrung gesperrt; das Masterpasswort „ist niemals ein Tool-Argument, niemals argv und wird niemals gespeichert“), agent/vault_backends/base.py (ein LoginBackend „listet Anmeldemetadaten auf (niemals Geheimnisse) und löst EIN Passwort erst beim Ausfüllen auf“) und agent/vault_store.py:74-105 (Authentifikatorschlüssel ausschließlich als Base32-Seeds oder otpauth://totp-URIs, zählerbasiertes HOTP wird abgelehnt, Codes werden von totp_now erzeugt); die Backends local.py, onepassword.py, bitwarden.py sowie agent/secret_sources/{onepassword,bitwarden,command}.py sind beim Tag sämtlich vorhanden. Plugin-Katalog-Unterparser in hermes_cli/subcommands/plugins.py: install mit dem Hilfetext „Ein Plugin aus dem kuratierten Katalog, über eine Git-URL oder als owner/repo installieren“, search „Den kuratierten Hermes-Plugin-Katalog durchsuchen“, browse „Alle Einträge des kuratierten Plugin-Katalogs auflisten“, pack „Deklarative, teilbare Plugin-Sammlungen (hermes-pack.yaml)“ mit install/export/show. Gast-Onboarding in apps/desktop/electron/guest-onboarding-flag.test.ts: Testtitel wörtlich: „guestOnboardingEnabled: Genau “1” in env oder –guest-onboarding in argv aktiviert den kostenlosen Tarif“; die Suite bestätigt, dass 'true', '0' und ein leerer Wert allesamt deaktiviert sind und dass desktopBackendSpawnEnv „die Startentscheidung zuletzt festschreibt und niemals zulässt, dass ein geerbter Wert durchsickert“. Cluster zur Absicherung mehrerer profiles aus den Issues #107609–#107630, wie in der Veröffentlichung aufgeführt. Überprüfung in der aktuellen Sitzung am 15. September 2026. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  49. Versionshinweise zu Hermes Agent v0.21.3, Tag v2026.9.14, angegebenes Veröffentlichungsdatum 14. September, veröffentlicht am 2026-09-14T16:04Z. Zweck wörtlich: Der Tag „existiert, damit die nachfolgenden Korrekturen für die Anmeldung am Remote-gateway die Cloud-Agenten erreichen, die automatisch auf den neuesten Release-Tag aktualisiert werden.“ Beim Commit 9b419a2d3c gemessene Statistiken: „1.036 Nicht-Merge-Commits“, „2.642 geänderte Dateien“, „338 zusammengeführte PRs“ (Prüfung im lokalen Klon: git rev-list --count --no-merges v2026.9.11..v2026.9.14 = 1.037, erneut einschließlich des Release-Commits). Beide dokumentierten Punkte wurden im lokalen Klon überprüft und sind ausschließlich in diesem Zeitfenster vorhanden: Commit 5dea46d13d „fix(dashboard-auth): one refresh single-flight for the cookie gate and the native route, off the event loop“ (#110061, behebt #55712; zusammen mit hermes-portal#1209 auf Portal-Seite, einem gleitenden Inaktivitätszeitraum von 30 Tagen mit einer 5-minütigen Übergangsfrist für rotierte Token) und Commit 939a2f64b4 „fix: long-lived processes stop minting duplicate state.db writer handles“ (#110934, behebt #100896 und #103339). Aufschub wörtlich: „Die vollständigen kuratierten Versionshinweise für dieses Zeitfenster erscheinen mit v0.22.0, das alles ab v0.21.0 dokumentieren wird“ und „Nichts in diesem Zeitfenster wird ausgelassen“; die bewusst undokumentierte Liste der Veröffentlichung umfasst JSON-RPC-Anfragen vom Server an den Client sowie eine Pydantic-Registry für Wire-Contracts, die Auswahl des Reasoning-Aufwands in jedem Modellselektor, OpenRouter OAuth PKCE, HEIF-/HEIC-/AVIF-Decodierung, die Überarbeitung des Honcho-Peer-Modells, Ergänzungen des FAL-Katalogs (Wan 3.0, Kling 3.0 / Kling Image v3, MiniMax H3 Max Turbo, Gemini Omni Flash 1.1, Meta Muse), in Slack eingefügte Tabellen und den Agent Sessions API, die Isolation multiplexierter profiles und Korrekturen der gateway-Verfügbarkeit sowie die Ablehnung des state.db-WAL-Modus auf VM-übergreifenden Dateisystemen – gemäß der eigenen Einordnung der Veröffentlichung alles für die Prüfung in v0.22.0 zurückgestellt. Überprüfung in der aktuellen Sitzung am 15. September 2026. ↩↩↩

  50. Versionshinweise zu Hermes Agent v0.21.4, Tag v2026.9.21, angegebenes Veröffentlichungsdatum 21. September, veröffentlicht am 21. September 2026 um 18:10:55 UTC. Zweck, wörtlich: „Patch-Version. Dieser Tag bündelt die rund 1.800 seit v0.21.3 zusammengeführten PRs in einer stabilen, mit einem Tag versehenen Version für nachgelagerte Nutzer (Docker-Images, Hermes Cloud, gehostete Bereitstellungen). Vollständige kuratierte Hinweise für diesen Zeitraum werden erst mit v0.22.0 veröffentlicht.“ Am Commit 4b8a8134009a gemessene Statistiken: „5.071 Nicht-Merge-Commits“ in „5.169 geänderten Dateien“ (+312.961 / -62.855), „1.812 zusammengeführte PRs“ und „2.116 geschlossene Issues“ – Prüfungen mit einem lokalen Klon reproduzieren alle fünf Werte exakt (git rev-list --count --no-merges v2026.9.14..4b8a8134 = 5.071; git diff --shortstat = 5.169 Dateien, +312.961 / -62.855; der Tag-Commit d337b736aa „chore(release): v0.21.4 (v2026.9.21)“ ist ein Child von 4b8a8134, womit sich 5.072 Nicht-Merge-Commits und insgesamt 5.173 Commits einschließlich Merges ergeben, und der GitHub-Vergleichs-API für v2026.9.14...v2026.9.21 meldet total_commits: 5173, ahead_by: 5173, behind_by: 0). Rangfolge der Zeiträume (für Version 1.21 des Leitfadens am 23. September erneut geprüft): Gemessen an den Nicht-Merge-Commits aller benachbarten v2026.*-Tag-Paare liegt v2026.8.31..v2026.9.7 (5.140 einschließlich des Release-Commits) vorn, gefolgt von v2026.9.14..v2026.9.21 (5.072) auf Platz 2 und v2026.7.20..v2026.7.30 (2.790); gemessen an den in den Versionshinweisen genannten zusammengeführten PRs sind 1.812 der höchste Wert in einer Zusammenfassung für einen einzelnen Zeitraum (v0.21.1: „632 zusammengeführte PRs“, v0.19.1: „rund 1.000+ PRs“; die „rund 2.475“ von v0.21.0 erstrecken sich über die sechs v0.20.x-Tags seit v0.20.0 und bilden daher keinen einzelnen Zeitraum zwischen zwei Tags). Wortlaut zur Verschiebung: „Die vollständigen kuratierten Versionshinweise für diesen Zeitraum erscheinen mit v0.22.0 und dokumentieren alles ab v0.21.0“ sowie „Nichts aus diesem Zeitraum wird ausgelassen.“ Die bewusst nicht dokumentierte Liste nennt die gateway-Singleton-Sperre samt Rendezvous-Datensatz, über den sich Desktop mit dem laufenden Host-Backend verbindet, den vom Backend verwalteten Connector-Betrieb einschließlich seiner Einrichtungskarte für Desktop/TUI/CLI, --format stream-json, skills.auto_load, die Auswahl der Schriftart für Desktop-Chat und -Benutzeroberfläche sowie lokale Engine-Updates mit einem Klick und die Deinstallation über den Plugins-Hub, das decline-Verhalten bei nicht autorisierten Direktnachrichten, mcp.discovery_concurrency, after-/before-Grenzen für session_search samt erneutem Abrufversuch mit gelockerter OR-Verknüpfung, hermes sessions set-journal-mode, LTX 2.5 und Kling O3 in den Videokatalogen, Katalog-Webseiten für jedes Plugin und jeden Autor mit an bestimmte Commits gebundenen READMEs und einer Sortierung nach hinzugefügt/aktualisiert, „ein Dutzend neuer Community-Plugins im Katalog (tailscale, ssh, shodan, terminal, rss, resetwatch, done-bell, kiwi, cognee, Octen)“ (Kurzfassung der Versionshinweise; die Katalogeinträge am Tag lauten hermes-tailscale, hermes-ssh, shodan, hermes-terminal, hermes-rss, hermes-resetwatch, done-bell, kiwi, cognee, web-octen) sowie „eine große Reihe von Korrekturen für profile-/Multiplex-Isolation, cron, Kanban, Desktop und state.db“. Aktualisierung: hermes update (Git-Installationen) oder der einzeilige Installer-Befehl; „Docker / Hermes Cloud: Images werden von diesem Tag erstellt (nousresearch/hermes-agent:v2026.9.21)“. In der aktuellen Sitzung am 22. September 2026 verifiziert. ↩↩↩↩↩↩

  51. Die in v0.21.4 offengelegten Elemente wurden im Quellcode beim Tag v2026.9.21 verifiziert (Guide v1.20, 22. September 2026; Ergänzungen der Betreiberregeln in Guide v1.21, 23. September). Host-Singleton: Docstring in gateway/host_rendezvous.py – „Host-weites Singleton-Rendezvous: eine Sperre und ein Datensatz pro ROLE und Betriebssystembenutzer“; „genau EIN hermes serve und EIN hermes gateway run pro Host, die jeweils alle profile multiplexen“; eine Host-flock-/msvcrt-Sperre, die „für die Lebensdauer des erfolgreichen Prozesses gehalten wird“, sowie ein Rendezvous-Datensatz, damit ein zweiter Aufruf „beweisen kann, dass es sich um denselben aktiven Prozess handelt, und sich ANHÄNGT, statt einen zweiten Port zu binden“; „Veraltung wird bewiesen, niemals angenommen“ anhand von (pid, createTime) („ein Client, der sich anhängt, darf niemals den Port einer wiederverwendeten PID ansprechen“); Sperrwurzel $HERMES_GATEWAY_LOCK_DIR, andernfalls $XDG_STATE_HOME/hermes/gateway-locks, begrenzt auf den Betriebssystembenutzer (gateway/status.py:308-324: Ein relatives XDG_STATE_HOME wird ignoriert, als Fallback dient ~/.local/state). Betreiberpfad: _host_attach_or_none in gateway/run.py:5466-5499 gibt bei ATTACH die Anhängenachricht aus und wird mit 0 beendet, verweigert bei REFUSE, sendet bei REPLACE_HOST --replace an „den HOST-Prozess, unabhängig davon, von welchem home aus er gestartet wurde“, und überspringt die Abfrage bei --force („der Notausgang für Betreiber, wenn der Eigentümer festhängt oder falsche Angaben macht“); bei _claim_host_gateway_role (gateway/run.py:5331-5346) wird der Verlierer des Sperrrennens mit EX_TEMPFAIL (75) beendet, weil „jeder von uns erzeugte Supervisor bei 75 einen erneuten Versuch unternimmt und der Datensatz des Eigentümers beim nächsten Versuch vorhanden ist“. Fünf Ergebnisse in gateway/host_attach.py: ATTACH, RESCAN->ATTACH (Control-Socket-rescan-profiles), REPLACE_HOST, REFUSE („Niemals stillschweigend einen zweiten starten“), START (eigenständige gateways pro profile koexistieren, „bis diese Migration erzwungen wird (#109417)“). Desktop-Hälfte: apps/desktop/electron/host-backend-attach.ts („An das auf dem Host ausgeführte Hermes-Backend anhängen (nur Multiplexing, Desktop-Hälfte)“; die E/A-Kaskade liest das Spawn-Ledger der Maschinenwurzel, validiert einen Kandidaten über „HTTP-Bereitschaft -> bereitgestelltes Sitzungstoken -> WebSocket-Authentifizierung“ und hält „eine Sperre auf Host-Ebene, sodass zwei gleichzeitig startende Apps ein einziges Backend statt zweier Backends erzeugen“; HOST_SPAWN_GATE_STALE_MS = 60_000). Connector-Betrieb: tools/connectors/operation.py:1 wörtlich: „Eine Backend-eigene Verbindungsoperation pro manage_connections-Aufruf. Reine Daten, keine E/A.“; OPERATION_DEADLINE_SECONDS = 300.0 mit dem Kommentar „Kein Konfigurationsschlüssel: Eine vom Benutzer einstellbare Wartezeit mit Begrenzungen war eine Fehlerquelle (PR1 lieferte eine solche aus, wurde jedoch nicht zusammengeführt)“; das Tool ist als manage_connections registriert (tools/connectors/tool.py:16,48,113); required_env pro Ziel „({name, prompt, required}); die Karte zeichnet für jeden Eintrag ein Feld und hält ihr Verb zurück, bis alle Pflichtfelder Text enthalten“; die in tests/hermes_cli/test_mcp_catalog_env_boundary.py:330 benannte Karte der drei Frontends („Das Backend der Connector-Karte (Desktop-/TUI-/CLI-Einrichtungskarte) nimmt dieselbe Aufteilung vor, bei der ausschließlich Geheimnisse berücksichtigt werden“). stream-json: hermes_cli/_parser.py:247-249 im Chat-Parser – --format mit den Auswahlmöglichkeiten text/stream-json, Standardwert text, Hilfetext wörtlich: „’stream-json’ gibt durch Zeilenumbrüche getrennte JSON-Ereignisse (JSONL) aus, impliziert –quiet und kann nicht mit –tui kombiniert werden“; Modul-Docstring in hermes_cli/stream_json.py: „ein JSON-Objekt pro stdout-Zeile … system/init -> text-Deltas / tool_use / tool_result -> eine abschließende result-Hülle (Exit-Code, endgültiger Text, Token-Statistiken). Diagnosemeldungen und session_id verbleiben auf stderr“, _TOOL_OUTPUT_CAP = 5000, Exit-Code 2 bei unzulässigen Kombinationen, stream_json_requested in hermes_cli/stream_json.py:23, das entweder query oder query_file akzeptiert, bevor es mit 2 beendet wird (der Fire-Einstiegspunkt in cli.py:1703-1705 prüft die bereits aufgelöste Abfrage); --query-file PATH in hermes_cli/_parser.py:218-222 befindet sich mit -q in einer gegenseitig ausschließenden Gruppe (Hilfetext wörtlich: „Die einzelne Abfrage aus einer Datei statt von der Befehlszeile lesen (‘-’ liest stdin). Sicher für beliebigen Text: Nichts wird von der Shell interpretiert“), wird von _read_query_file (hermes_cli/main.py:1735-1762) gelesen und ist seit Tag v2026.8.19 vorhanden; Vertragstests in tests/hermes_cli/test_stream_json.py (einschließlich „darf unter stream-json niemals stdout erreichen“). skills.auto_load: hermes_cli/config_defaults.py:1435, Standardwert [], Kommentar wörtlich: „skill-Namen, die in jeder neuen Sitzung vollständig geladen werden (CLI, TUI, gateway, cron, API). Einmalig aufgelöst, wenn der Prompt des Agenten erstmals erstellt wird; fehlende/deaktivierte Namen erzeugen eine Warnung und werden übersprungen; HERMES_IGNORE_RULES unterdrückt die Liste ebenso wie den übrigen automatisch eingefügten Kontext.“ decline: gateway/config.py:137-139 – Kommentar wörtlich: „’pair’ sendet per DM einen Kopplungscode, ‘ignore’ verwirft stillschweigend, ‘decline’ sendet eine höfliche Ablehnung und schweigt diesem Absender gegenüber anschließend für gateway.pairing.DECLINE_DEDUPE_SECONDS (#88028)“, UNAUTHORIZED_DM_BEHAVIORS = {"pair", "ignore", "decline"}, Feldstandardwert "pair" (:626), leere unauthorized_dm_decline_message -> DEFAULT_UNAUTHORIZED_DM_DECLINE_MESSAGE (die im Abschnitt zur Kopplung zitierte Antwort); DECLINE_DEDUPE_SECONDS = 24 * 3600 und aliasbewusste Ablehnungszeitstempel in gateway/pairing.py:37,565-576; plattformspezifische Auflösung und Email-Standardwert in get_unauthorized_dm_behavior (gateway/config.py:803-809: „Email ist wie ein Posteingang strukturiert und verwendet daher standardmäßig "ignore", sofern das eigene unauthorized_dm_behavior nicht ausdrücklich etwas anderes festlegt (ein globaler Standardwert bewirkt dies nicht)“). Der Schlüssel selbst einschließlich pair/ignore und der Email-Regel stammt aus der Zeit vor diesem Zeitraum (bereits in v2026.9.14 vorhanden, gateway/config.py:564,736-742; im März 2026 durch #1919 eingeführt); nur decline ist neu. Effektiver Standardwert: _get_unauthorized_dm_behavior in gateway/authz_mixin.py:699-740, Reihenfolge gemäß Docstring: „explizite plattformspezifische Konfiguration; Email -> “ignore”; expliziter, vom Standard abweichender globaler Wert; dm_policy des Adapters (pairing -> “pair”, allowlist/disabled -> “ignore”); jede konfigurierte allowlist -> “ignore” …; andernfalls “pair”“ (#9337), wobei der globale Wert nur berücksichtigt wird, wenn er != "pair" ist. YAML-Struktur: Plattformspezifische Schlüssel unter platforms.<name> werden in PlatformConfig.extra übernommen (gateway/config.py:456-460, #10206), der Schlüssel auf oberster Ebene oder das verschachtelte gateway.unauthorized_dm_behavior wird durch gateway/config_loader.py:39-46,102 überbrückt, und hermes gateway setup schreibt platforms.<name>.unauthorized_dm_behavior über write_platform_config_field (hermes_cli/config.py:2061-2069; hermes_cli/gateway_setup_wizard.py:182-184,219-249, Auswahl „Unbekannte Absender höflich ablehnen (einmalige Nachricht, danach Schweigen)“). Die Ablehnungsnachricht ist ausschließlich global (gateway/run_inbound.py:139). discovery_concurrency: hermes_cli/config_defaults.py:526, Standardwert 4; tools/mcp_tool_discovery.py:27-40 („mcp.discovery_concurrency überschreibt ihn, 0 = unbegrenzt (#117373)“; ein nicht ganzzahliger oder negativer Wert protokolliert „ist keine nichtnegative Ganzzahl; %d wird verwendet“ und verwendet den Standardwert); die durch tests/tools/test_mcp_tool.py:2813 festgeschriebene Semantik einer Obergrenze statt einer Sperre („begrenzt gleichzeitige Verbindungen (weiterhin parallel, jeder Server“ stellt eine Verbindung her). Begrenzungen und Wiederholungsversuch von session_search: tools/session_search_tool.py:578,621-635,708-725 – after: „Inklusive Untergrenze für die Startzeit der Sitzung. ISO-Datum/-Datumzeit (z. B. 2026-06-01) oder relative Dauer (7d, 24h, 2w = innerhalb der letzten N)“, before: „Exklusive Obergrenze für die Startzeit der Sitzung. ISO-Datum/-Datumzeit (ein reiner Datumswert bezeichnet Mitternacht UTC dieses Tages) oder relative Dauer (7d = älter als eine Woche)“, beide „nur Teil der Discovery-Struktur“, wobei „sort eine Gewichtung für die Rangfolge und keine Begrenzung ist“, und die neuen Parameter wurden zur Wahrung der Schemastabilität „nach detail angehängt“; der mit OR gelockerte Wiederholungsversuch in hermes_state_search.py:1151-1163, Kommentar wörtlich: „Das implizite AND zwischen Begriffen führt dazu, dass eine umformulierte Abfrage mit mehreren Wörtern einen gespeicherten Satz verfehlt, dem auch nur EIN Wort fehlt … Sobald sowohl die exakte Abfrage als auch alle Substring-Fallbacks erfolglos bleiben, wird der unicode61-Index erneut abgefragt, wobei ein Treffer für EINEN BELIEBIGEN Begriff genügt. … Nur bei einem Fehlschlag ohne Ergebnisse aktiviert, sodass Treffer die Semantik exakter Übereinstimmungen beibehalten; Abfragen mit explizitem OR/NOT, einem einzelnen Begriff oder CJK-Routing bleiben unverändert“; eigene Testsuite tests/hermes_state/test_search_or_relaxed_fallback.py. set-journal-mode: Parser in hermes_cli/subcommands/sessions.py:177, Hilfetext wörtlich: „state.db offline (alle zugreifenden Prozesse gestoppt) zwischen journal_mode=WAL und DELETE konvertieren“; Docstring in hermes_cli/sessions_cmd_journal_mode.py – der Offline-Selbsthilfepfad für #100896 (zuvor „bestand der einzige Notausgang in einem undokumentierten, manuell ausgeführten PRAGMA journal_mode=DELETE“), „verweigert die Ausführung, solange IRGENDEIN fremder Prozess die Datei oder eine Sidecar-Datei geöffnet hält (foreign_state_db_holders), schaltet den Modus um, ohne das Ende offener Zugriffe abzuwarten (_set_journal_mode_no_wait), und verifiziert anschließend die Header-Bytes 18/19, die SQLite für den Modus schreibt“; Dispatch ist als „offline: darf den zu konvertierenden Store nicht öffnen“ gekennzeichnet (hermes_cli/sessions_cmd.py:982); hermes doctor empfiehlt den Befehl bei nicht standardmäßigen Stores mit --db (hermes_cli/doctor_platform.py:148,163). Parser-Beschreibung wörtlich: „Führen Sie dies aus, wenn gateway, dashboard und alle CLI-Instanzen gestoppt sind: Der Befehl verweigert die Ausführung, solange ein Prozess die Datei geöffnet hält, wechselt den Modus und verifiziert den Datei-Header“; Hilfetext zu --force: „Nur Windows: Nach dem manuellen Stoppen aller Hermes-Prozesse ohne die dort nicht vorhandene Prüfung auf zugreifende Prozesse fortfahren“ (hermes_cli/subcommands/sessions.py:176-189), durchgesetzt in _refusal (sessions_cmd_journal_mode.py:40-44: „Unter Windows kann nicht nachgewiesen werden, dass keine Zugriffe auf die Datenbank erfolgen – keine Prüfung auf zugreifende Prozesse“). Desktop-Welle: Schriftfeld apps/desktop/src/app/settings/chat-font-setting.tsx (CONFIG_PATH = 'desktop.font_family', automatisches Speichern nach 550 ms) mit themes/chat-font.ts (Vorschläge: OpenDyslexic, Atkinson Hyperlegible, Lexend, Inter, IBM Plex Sans, Source Sans 3, Noto Sans, Segoe UI, SF Pro Text; leer bedeutet die Schriftart des Themes), angewendet über themes/context.tsx:279, wodurch das Theme-Token --dt-font-sans überschrieben wird; Engine-Aktualisierungen in apps/desktop/src/app/settings/local-models-settings.tsx samt Test (eine Schaltfläche „Engine aktualisieren“, wenn die verwaltete lokale Laufzeitumgebung update_available meldet; sie startet installLocalRuntime als Fortschritt meldenden runtime-install-Job; der Test „hält eine fehlgeschlagene explizite Aktualisierung mit direkter Wiederholungsmöglichkeit und ohne bereitgestellte Modelle sichtbar“); Deinstallation im Plugins-Hub in apps/desktop/src/app/capabilities/plugins/plugins-tab.tsx samt Test („deinstalliert erst über plugins.manage remove, nachdem der Bestätigungsdialog akzeptiert wurde“; eigenständige Desktop-Plugins über uninstallDiskPlugin im Electron-Loader). Videokataloge: plugins/video_gen/fal/__init__.py:43-44,99-101 – ltx-2.5 („LTX 2.5“, „Open-Source-Audio-Video-Modell von Lightricks. Natives Audio, bis zu 20 s/4K (i2v), Kamerabewegungsvoreinstellungen.“, günstige Stufe, lightricks/ltx-2.5/text-to-video/fast und /image-to-video/fast, Seitenverhältnisse 16:9/9:16, ganzzahlige Laufzeiten; :128: „fal lehnt LTX 2.5 bei mehr als 10 s in 1440p/2160p ab“) und kling-o3 („Kling O3 (Standard)“, „Spitzenmodell von Kuaishou. Natives Storytelling mit mehreren Einstellungen, optionales Audio, 3–15 s.“, Premiumstufe, Laufzeit als Zeichenfolge von 3–15, i2v leitet das Seitenverhältnis aus dem Bild ab, generate_audio ist ein echter Umschalter); Payload-Tests in tests/plugins/video_gen/test_fal_plugin.py:641,681; Übersichtszeile in website/docs/reference/toolsets-reference.md:72. Katalogausbau: plugin-catalog/ bei v2026.9.14 = 9 Einträge plus removed.yaml, bei v2026.9.21 = 228 Einträge plus removed.yaml; Eintragsstruktur gemäß plugin-catalog/hermes-tailscale.yaml (Name, Repository, 40-stelliges sha, Beschreibung, Maintainer, tier: community, Kategorie, docs_url, Funktionen); Aufnahme- und Veröffentlichungsmodell in hermes_cli/plugin_catalog.py:4-10,33 („an eine exakte, 40 Zeichen lange Commit-SHA angeheftet. Das Vorhandensein im Verzeichnis IST“ die Aufnahme; website/scripts/extract-plugins.py veröffentlicht /docs/api/plugin-catalog.json; LIVE_CATALOG_URL wird abgerufen und unter ~/.hermes/cache/plugin-catalog.json zwischengespeichert); Website-Seiten in website/plugins/plugin-catalog-pages/index.js („/docs/plugins/ eine Seite pro Eintrag“, „/docs/plugins/by/ eine Seite pro Maintainer“, „nur durch einen zusammengeführten Katalog-PR kann eine Seite erscheinen, geändert werden oder verschwinden“, und die Website „verliert allenfalls Funktionen, schlägt jedoch nie fehl“) und readme.js (die README jedes Eintrags wird „vom ANGEHEFTETEN Commit“ über eine Raw-URL mit der sha gerendert, „niemals von der Spitze eines Branches“, sodass die Seite genau die README zeigt, die der Katalogprüfer gelesen hat; Rendering zur Build-Zeit anhand einer Positivliste, das rohes HTML entfernt, Obergrenze von 512 KB, Hosts auf raw.githubusercontent.com und gitlab.com beschränkt; Deaktivierung mit readme: false); Autoren-Slugs und anhand des Commit-Datums erzeugte Hinzugefügt-/Aktualisiert-Zeitstempel in website/scripts/extract-plugins.py:80,142; alle zehn in der Veröffentlichung genannten Community-Plugins sind beim Tag als Einträge unter den in 50 aufgeführten Slugs vorhanden. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  52. Versionshinweise zu Hermes Agent v0.21.5, Tag v2026.9.24, angegebenes Veröffentlichungsdatum 24. September, veröffentlicht am 2026-09-24T10:09:38Z. Wortlaut zur Zielsetzung: „Patch-Release. Dieser Tag bündelt die seit v0.21.4 zusammengeführten rund 460 PRs in einem stabilen, getaggten Release für nachgelagerte Nutzer (Docker-Images, Hermes Cloud, gehostete Bereitstellungen). Vollständige kuratierte Hinweise für diesen Zeitraum werden erst mit v0.22.0 veröffentlicht.“ Am Tag-Commit f97608f178 („chore: release v0.21.5 (2026.9.24)“) gemessene Statistiken: „1.610 Nicht-Merge-Commits“ in „4.828 geänderten Dateien“ (+164.132 / -149.440), „460 zusammengeführte PRs“ und „475 geschlossene Issues“. Prüfungen mit einem lokalen Klon reproduzieren die Commit- und Diff-Zahlen exakt (git rev-list --count --no-merges v2026.9.21..v2026.9.24 = 1.610; 1.638 einschließlich Merges; git diff --shortstat = 4.828 Dateien, +164.132 / -149.440); die Anzahl der PRs und Issues wurde nicht unabhängig überprüft. Die bewusst undokumentierte Liste im Text nennt GPT-6 „Sol/Terra/Luna“ und Claude Opus 5.5 in den Katalogen von Nous und OpenRouter, profilbezogenes Stoppen/Starten/Neustarten mit gateway.standalone sowie eine Welle von Desktop-Plugin-SDK; Hindsight wird nicht erwähnt. Wortlaut zum Aktualisierungspfad: „hermes update (Git-Installationen) oder das einzeilige Installationsprogramm erneut ausführen“ und „Images werden aus diesem Tag erstellt (nousresearch/hermes-agent:v2026.9.24)“. ↩↩↩↩

  53. Im Quellcode am Tag v2026.9.24 überprüfte Elemente von v0.21.5 (Leitfaden v1.22, 24. September 2026). Hindsight: Commit 4cbf862abe „chore(memory): remove the bundled hindsight provider (moved to the plugin catalog)“ (22. September) ist ein Vorgänger des Tags; plugins/memory/ enthält am Tag sieben Provider-Verzeichnisse (byterover, holographic, honcho, mem0, openviking, retaindb, supermemory), gegenüber acht bei v2026.9.21; Commit 73c598e319 „build: drop the hermes-agent[hindsight] extra“ entfernte es aus pyproject.toml. plugin-catalog/hindsight.yaml: repo: https://github.com/vectorize-io/hindsight, maintainer: vectorize-io, tier: community, requires_hermes: ">=0.21.4". Migration: Der Docstring in hermes_cli/memory_provider_migration.py (Zeilen 1–14) nennt zwei Hooks, „hermes update“ und „agent init“; Zeile 75 gibt „Memory provider ‘{name}’ moved out of core – installed its plugin from the catalog“ aus; recover_at_startup() (Zeile 110) „berücksichtigt security.allow_lazy_installs“; die Funktion wird in hermes_cli/update_cmd_deps.py:535-536 und agent/agent_init.py:1315-1316 aufgerufen. Auswirkungen auf dem Datenträger und die Prüfkommandos: memory-providers.md:482-490. Multiplex: hermes_cli/gateway_multiplex_mode.py, Zeile 10: „Ein explizites false wird NICHT MEHR UNTERSTÜTZT“, und Zeilen 43–44: „gateway.multiplex_profiles: false wird nicht mehr unterstützt und wurde in true umgeschrieben“ (Commit b936546561, 23. September). gateway.standalone: hermes_cli/profiles.py:979-982, „Das DEFAULT-profile ist niemals standalone – es IST der Host – und warnt einmal pro Prozess, wenn der Schlüssel dort gesetzt ist“ (Commit 0238c9d740). Parken: Commit 4c342c05de „stop, start and restart one profile under the host multiplexer“; multi-profile-gateways.md:120-138, 233-244 („ein temporärer Kompatibilitäts-Shim“; „gateway.standalone hat Vorrang“). Modelle: hermes_cli/models_catalog_static.py, OPENROUTER_MODELS, Zeilen 32 und 36–37 (anthropic/claude-opus-5.5, openai/gpt-6-sol, -sol-pro, gpt-6-luna, -luna-pro); die nous-Liste in Zeile 162 wird daraus abgeleitet. In den Auswahlkatalogen des Tags kommt keine gpt-6-terra-Modell-ID vor, daher werden hier nur Sol und Luna aufgeführt. Provider: CANONICAL_PROVIDERS in Zeile 314 lässt sich in 39 Einträge parsen (AST-Zählung, unverändert); plugins/model-providers/ enthält sowohl bei v2026.9.21 als auch bei v2026.9.24 38 Verzeichnisse, gegenüber 39 bei v2026.9.14. Commit 998f614c7f „feat(providers): remove the keyless opencode-free tier“ (18. September) löschte das Plugin; seine Nachricht lautet: „Die kostenlose Stufe von OpenCode gibt für anonymen Datenverkehr außerhalb des OpenCode-Clients nun HTTP 403 zurück.“ hermes_cli/auth.py:1255-1259 behält für opencode-free, free und opencode_free einen Fehler bei, der auf opencode-zen und opencode-go verweist. Kompatibilität: COMPAT_MANIFEST.md, compat_manifest.json und hermes_cli/plugin_compat.py sind sowohl am Tag als auch auf main bei aa8a33d22d (24. September) vorhanden. git diff v2026.9.21 v2026.9.24 -- hermes_cli/plugin_compat.py ist leer (COMPAT_REMOVAL_DATE in Zeile 32; die Prüfung „Literal boolean only“ in den Zeilen 296–303). Aus dem Manifest-Paar wurden lediglich die Einträge des gelöschten plugins.memory.hindsight entfernt (-7 / -12 Zeilen). ↩↩↩↩↩↩↩↩

  54. Versionshinweise zu Hermes Agent v0.20.3 (Tag v2026.8.16.2, angegebenes Veröffentlichungsdatum 16. August, veröffentlicht am 17. August 2026) und Versionshinweise zu v0.20.4 (Tag v2026.8.18, 18. August 2026); beide am 20. August 2026 über GitHub API abgerufen (prerelease: false). Wortlaut zu v0.20.3: „die Migration von MCP 2.x SDK und die Unterstützung des zustandslosen Protokolls vom 28.07.2026, das gebündelte Bot-Mode-Plugin (hermes-bots) mit dem zentralen Teamkollegenprotokoll, das CommandCode-Provider-Plugin, die Absicherung der Besitzverhältnisse der Python-Laufzeit für Unterprozesse (PYTHONHOME/PYTHONPATH-Isolierung), Cua-Driver-0.20-Laufzeitverträge für die Computernutzung.“ Wortlaut zu v0.20.4: „die Arbeiten an Glas-/Transluzenzoberflächen für den Desktop (mattes Glas, Frost-Auswahl, macOS-Vorauswahl), die SESSIONS|BOTS-Seitenleiste mit Registerkarten und individuellem Ein-/Ausblenden einzelner Bots, … beratende NVIDIA-SkillEvaluator-Tier-1-Prüfungen bei der Installation von skills (Lizenz- und Sicherheitsprüfungen).“ Zu beiden Releases: „Vollständige kuratierte Versionshinweise für diesen Zeitraum werden mit v0.21.0 veröffentlicht.“ ↩↩↩↩↩↩↩↩↩↩↩↩↩

  55. Versionshinweise zu Hermes Agent v0.20.0, „The Herald Release“, Tag v2026.8.3, 3. August 2026, mit den Stabilisierungstags v2026.8.13 und v2026.8.16. Wortlaut aus dem Release: „Node 26 ist für Installationsprogramme/Fehlerbehebung/Upgrades erforderlich“; „brew- und pip/PyPI-Wheel-Kanäle wurden eingestellt (Shell-Installationsprogramm / Docker / Nix sind die unterstützten Kanäle)“; „standardmäßiges Iterationslimit 90 → 500“; „claude-marketplace-Quelle entfernt“. Die Node-Mindestversion wurde unabhängig im Quellcode des Installationsprogramms unter scripts/install.sh bestätigt – NODE_VERSION="26" und die Schutzprüfung „Node.js $(node –version) is too old (Hermes requires Node >=26)“ –, dessen Kopfkommentar auch den kanonischen Einzeiler curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash dokumentiert. Beachten Sie den Widerspruch: Auf der Installationsseite der Dokumentation wird weiterhin Node v22 angegeben; diese Angabe ist gegenüber beiden Quellen veraltet. Plattformstufen gemäß Plattformunterstützung; skill-Quellen und Standard-Taps gemäß skills; die Zahl von 28 Plattformen wurde durch Aufzählen der Vergleichstabelle unter Messaging ermittelt, die keine offizielle Gesamtzahl nennt. Alles am 16.08.2026 abgerufen und überprüft. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  56. Versionshinweise zu Hermes Agent v0.19.0, „The Quicksilver Release“, Tag v2026.7.20, 20. Juli 2026; Stand 21. Juli 2026 die neueste Version. Kennzahlen seit v0.18.0: ca. 2.245 Commits, ca. 1.065 zusammengeführte PRs, ca. 3.300 geschlossene Issues, mehr als 450 Community-Mitwirkende. Leistungsverbesserungen als Rückgrat: Verkürzung der TTFT im ersten Durchlauf um ca. 80 %, kalte Übermittlung bis Dispatch von ca. 4,3 s auf ca. 0,9 s über CLI/gateway/TUI/Desktop/cron hinweg (PR #59332); Reasoning wird standardmäßig live gestreamt, wobei display.show_reasoning aktiviert ist und die Antwort Token für Token dargestellt wird (PR #59389); Geschwindigkeitswelle für den Desktop mit ca. 20 PRs, darunter 14-mal schnelleres Streaming-Markdown; inkrementelles Markdown in der TUI. pip-/Homebrew-Installationen wurden auf einen nur noch warnenden Status als „nicht unterstützte Legacy-Installationen“ herabgestuft; die Veröffentlichung über PyPI/Homebrew soll eingestellt werden (PR #57225). Erweiterbare SecretSource-Schnittstelle mit Bitwarden- und 1Password-Anbietern, op://-Referenzen, Unterstützung mehrerer Vaults, deterministischer Prioritätsreihenfolge und Herkunftsnachweis pro Variable (PR #59498). Smart Approvals als Standard (unabhängiger LLM-Prüfer für jeden markierten Befehl), benutzerdefinierte Ablehnungsregeln, die auch im YOLO-Modus gelten, sowie /deny <reason> (PRs #62661, #59164, #54518); die Genehmigungseskalation über das Plugin-Event pre_tool_call wurde erneut integriert (PR #60504). Abrechnung im Terminal über /subscription und /topup sowie Abrechnungsregisterkarte in der Desktop-Anwendung (PR #51639). Live-Transkriptdateien für Subagents und dauerhafte Hintergrunddelegation (PRs #67479, #63494); Verzeichnis der Zustellungsverpflichtungen in state.db (PR #67181); max_async_children wurde zugunsten einheitlicher Parallelitätsgrenzen für Delegationen als veraltet markiert (PR #56955). profile-basiertes gateway-Routing sowie GATEWAY_MULTIPLEX_PROFILES; der Routing-Index wurde nach state.db verschoben, während sessions.json als optionaler Legacy-Spiegel dient (PRs #64835, #65700, #60589, #59203). Anbieter/Modelle: Fireworks AI als vollständig integrierte Option an Position 2 der Auswahl (PR #62593), DeepInfra, Upstage Solar, durchgängige Unterstützung für GPT-5.6 Sol/Terra/Luna und Pro (PR #61616), allgemeine Verfügbarkeit von grok-4.5, kimi-k3 (kimi-k2.x wurde eingestellt), vollständige Einbindung von Claude Sonnet 5 sowie anbieterspezifisches enabled: false und excluded_providers (PR #67971); Reasoning-Effort-Stufen max/ultra mit Überschreibungen pro Modell bzw. MoA-Slot und sitzungsbezogenem /reasoning (PRs #62650, #64458). CLI/MCP: hermes sessions export für Markdown/Quarto/HTML/nur Prompts/HF-Traces mit --redact (PR #60186), /model --once (PR #67113), gestapelte Slash-skill-Aufrufe (PR #57987), --safe-mode, hermes config get/unset (PR #65540), echtes Headless-Verhalten für hermes serve (PR #55923), MCP-Benennung nach dem Muster mcp__server__tool (PR #52750). Marketingformulierungen zur Version wurden ausgeschlossen; innerhalb des Zeitfensters zurückgenommene Elemente (iron-proxy-Egress-Firewall, dynamic-workflow-skill und memory-provider-actions) wurden bewusst nicht als ausgeliefert dokumentiert. Überprüfung in der aktuellen Sitzung am 21. Juli 2026. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  57. Release-Tag von Hermes Agent v0.18.1 und Release-Tag von v0.18.2, 7.–8. Juli 2026. Zusammenfassende Infrastruktur-Patches für die v0.18-Reihe; die wesentliche Korrektur in v0.18.2 hebt die feste Bindung von WhatsApp Baileys auf und verwendet für zuverlässige Docker-Builds Version 7.0.0-rc13. Beide Patch-Zeitfenster sind in den Versionshinweisen zu v0.19.0 zusammengefasst und dort vollständig dokumentiert. ↩

  58. Versionshinweise zu Hermes Agent v0.15.1 und Versionshinweise zu Hermes Agent v0.15.2. v0.15.1 (29. Mai 2026, 01:12 UTC) ist der noch am selben Tag veröffentlichte Velocity-Hotfix: Behebung der 401-Neuladeschleife des Dashboards im Loopback-Modus; Docker erfordert nun ausdrücklich HERMES_DASHBOARD_INSECURE=1; bloße MCP-Befehle (npx, npm, node) werden in Docker-Containern aufgelöst; Quell-Badges und Kategorie-Seitenleiste der Skills-Seite wurden wiederhergestellt; Kanban-Worker reagieren auf SIGTERM; der Skills.sh-Katalog wuchs über die Sitemap von 858 auf 19.932 Einträge. 28 Commits, 21 zusammengeführte PRs, 9 Mitwirkende. v0.15.2 (29. Mai 2026, 13:37 UTC) ist ein reiner Packaging-Hotfix, der plugin.yaml-Manifeste in Wheel- und sdist-Distributionen bündelt, sodass PyPI-Installationen ohne seitliches Laden des Quellcodes funktionieren. 4 Mitwirkende. ↩

  59. Versionshinweise zu Hermes Agent v0.15.0 und die Versionsseite von Hermes Agent. „The Velocity release“, Tag v2026.5.28. Kennzahlen: 1.302 Commits, 747 zusammengeführte PRs, 321 Community-Mitwirkende. Umfang von run_agent.py durch Refactoring um 76 % reduziert (16.083 → 3.821 Zeilen in 14 Modulen). Hinzu kommt die Multi-Agent-Kanban-Plattform (automatische Zerlegung, Schwarmtopologie, Modellüberschreibungen pro Aufgabe, geplante Aufgaben und Worktree-Verwaltung). session_search wurde neu gestaltet, ist 4.500-mal schneller und kommt ohne die LLM-Abhängigkeit aus. Promptware-Schutz gegen Prompt-Injection der Brainworm-Klasse an drei sicherheitskritischen Kontrollpunkten. Die Integration von Bitwarden Secrets Manager ersetzt mehrere anbieterspezifische API-Schlüssel durch ein einziges Bootstrap-Token. Mithilfe von skill-Bundles lassen sich mehrere skills mit einem einzigen Slash-Befehl laden. TUI-Sitzungsorchestrator zur Verwaltung mehrerer Sitzungen in einem Terminalfenster. Unterstützung für Krea 2 (Medium/Large) und das FAL-Plugin zur Bilderzeugung. Eine weitere xAI-Integrationsrunde ergänzt ein Websuch-Plugin und OAuth-Upstream-Unterstützung sowie die Erkennung eingestellter Modelle und natürliche TTS-Pausen bei der Sprachausgabe. Eine auf GitHub erwähnte Patch-Version behebt die 401-Neuladeschleife des Dashboards, die nun erforderliche ausdrückliche Angabe der Umgebungsvariable HERMES_DASHBOARD_INSECURE=1 für Docker --insecure, die Auflösung bloßer MCP-Befehle (npx, npm, node) in Docker, die Darstellung der Skills-Seite, die SIGTERM-Verarbeitung der Kanban-Worker, den vollständigen Skills-Katalog mit 19.932 Einträgen über die Sitemap sowie eine kleinere Gruppe von Korrekturen für die Bereitstellung von .md-Dateien, die Sicherheit von gateway-Prüfungen, die Schwärzung von Web-URLs, die Bildverarbeitungsfähigkeit von Kanban-Workern und die Standardwerte für rückblickende Beobachtungen. ↩↩↩↩

  60. Versionshinweise zu Hermes Agent v0.11.0. 23. April 2026. „The Interface release“ — vollständige Neuentwicklung der interaktiven CLI mit React/Ink und einem Python JSON-RPC-Backend (tui_gateway); erweiterbare Transportarchitektur (agent/transports/); native AWS-Bedrock-Unterstützung über die Converse-API; fünf neue Inferenzpfade (NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth, Vercel ai-gateway); GPT-5.5 über Codex OAuth; QQBot als 17. Messaging-Plattform mit Einrichtung per QR-Scan; erweiterte Plugin-Oberfläche (Slash-Befehle, Tool-Dispatch, Ausführungsblockierung und Ergebnistransformation); /steer <prompt> für Hinweise an den laufenden Agenten, die nach dem nächsten Tool-Aufruf Kontext einfügen, ohne den Prompt-Cache zu beeinträchtigen; Shell-Hooks für Lebenszyklusereignisse ohne Python-Plugins; Webhook-Modus für die Direktzustellung, der Payloads unmittelbar an einen Plattform-Chat weiterleitet; intelligentere Delegation mit Orchestrator-Rollen, konfigurierbarer Spawn-Tiefe und Dateikoordination; Dashboard-Plugin-System, Live-Designwechsel, i18n und mobile Responsivität. Kennzahlen seit v0.9.0: 1.556 Commits · 761 zusammengeführte PRs · 1.314 geänderte Dateien · 224.174 Einfügungen · 29 Community-Mitwirkende. Siehe auch: GitHub-Release-Tag von Hermes Agent v0.11.0. ↩↩↩

  61. Hermes Agent v0.10.0 Release Notes. 16. April 2026. „The Tool Gateway Release.“ Integration des Nous Tool Gateway für zahlende Abonnenten von Nous Portal — verwalteter Zugriff auf die Websuche von Firecrawl, die Bildgenerierung mit FAL / FLUX 2 Pro, OpenAI TTS und die Browserautomatisierung mit Browser Use, ohne zusätzliche API-Schlüssel. Individuelle Aktivierung pro Tool über das neue Konfigurationsfeld use_gateway. Sind beide Optionen konfiguriert, bevorzugt die Laufzeitumgebung das gateway gegenüber direkten API-Schlüsseln. Vollständige Integration in hermes tools und hermes status. Ersetzt die veraltete Umgebungsvariable HERMES_ENABLE_NOUS_MANAGED_TOOLS. Implementiert von @jquesnelle (emozilla). Der CLI von Hermes Agent bleibt unter der MIT-Lizenz verfügbar und vollständig quelloffen; das gateway ist eine Integration in das bestehende Abonnementprodukt von Portal und keine Bezahlschranke für den CLI. Siehe auch: Nous Portal für Abonnementpreise und Registrierung. ↩↩↩