changelogs.info
OpenClaw Claude Code Codex Gemini Kilo Code Hermes Models Dispatches
Hermes Agent

Hermes Agent

Hermes is the messenger — a terminal AI agent built around the idea that the hardest part of agentic coding isn't generating code, it's understanding what to generate and why. It takes a thoughtful, step-by-step approach to tasks: read the codebase, understand the architecture, plan the changes, then execute. Not the fastest tool in the drawer, but arguably the most reliable.

It's a project-scoped AI agent. You initialize it in your repo with hermes init, configure your model preference, and it creates a context file that helps it understand your project. From there, every task starts with codebase analysis — Hermes reads relevant files, understands relationships, and builds a mental model before writing a single line of code.

The dry-run habit is the most important thing to internalize early. Hermes is designed to show you what it plans to do before it does it. By default, changes are proposed, not applied. You review the plan, you approve it, then it executes. This deliberate approach means fewer "oh no what did it do" moments and more "yeah that's exactly what I wanted" outcomes.

Model flexibility is a first-class feature. Hermes works with Anthropic Claude, OpenAI, or any OpenAI-compatible API endpoint. Running local models? Point it at your Ollama instance. Want to use a specific fine-tuned model? Just configure the endpoint. The agent doesn't care what's generating the responses — it just needs something smart enough to follow its workflow.

The task decomposition is where Hermes differentiates. Complex tasks get broken into sub-tasks with clear dependencies. "Refactor the auth system" becomes: (1) map all auth-related files, (2) identify the current pattern, (3) propose the new pattern, (4) update core auth module, (5) update dependent modules, (6) add/update tests. Each step is visible and reviewable.

Project memory is persistent across sessions. Hermes maintains a memory file in your project that captures architectural decisions, coding patterns, and lessons learned from previous tasks. This means the second task in a project benefits from everything it learned doing the first task. The hundredth task has accumulated real understanding of your codebase.

The review mode is perfect for code review tasks. Feed it a PR diff, and Hermes analyzes the changes in context — checking for bugs, suggesting improvements, verifying test coverage, and flagging potential issues. It's like having a thorough senior engineer review every PR, except it doesn't get tired, doesn't miss things because it's reviewing its tenth PR of the day.

Error recovery is thoughtful. When something goes wrong — a test fails, a build breaks, a lint rule is violated — Hermes doesn't just retry blindly. It reads the error, understands what went wrong, adjusts its approach, and tries again. This iterative debugging loop is where you really see the value of the "understand first, act second" philosophy.

The documentation-first approach means Hermes is good at explaining what it's doing and why. Every change comes with context about the reasoning behind it. This isn't just nice for understanding — it's essential for trust. When an AI agent is making autonomous changes to your codebase, being able to understand its reasoning is the difference between trusting the process and babysitting the output.

Who's it for? Engineers who want a reliable, predictable AI agent they can trust with real tasks. Teams doing careful, methodical development where quality matters more than speed. Anyone who's been burned by aggressive AI tools that made messes they had to clean up. If you'd rather have an agent that takes an extra minute but gets it right the first time — Hermes is built for that.

vv2026.6.19 Hermes Agent v0.17.0 (v2026.6.19) Jun 19, 2026
# Hermes Agent v0.17.0 (v2026.6.19) **Release Date:** June 19, 2026 **Since v0.16.0:** ~1,475 commits · ~800 merged PRs · 1,693 files changed · 235,390 insertions · 50,730 deletions · 300+ issues closed · 245 community contributors > **The Reach Release.** v0.16.0 put Hermes on your desktop. v0.17.0 is about how far that reach extends — across new places to talk to it, deeper into the tools you already use, and out to the people running Hermes for a team. Hermes reached two new channels (iMessage via Photon, and the Raft agent network), the desktop app gained substantial new capability, subagents can now run in the background, image generation learned to edit, and Cursor's Composer model is reachable through an xAI Grok subscription. The dashboard got a full profile builder and secure login, the Skills Hub browser was rehauled, the `memory` tool got a major upgrade, and the curator stopped spending aux-model budget on every routine run. 300+ issues closed ride along, plus a security round. ## ✨ Highlights - **Hermes reaches iMessage — Photon Spectrum, no Mac relay required** — There's now an iMessage platform plugin built on Photon's managed line pool. Run `hermes photon login`, authenticate with a device code, and Hermes can send and receive iMessage — no Mac sitting in a closet running a relay, no BlueBubbles bridge to babysit. It's positioned as the successor to BlueBubbles: free to start, nothing to self-host. If your friends and family live in the blue bubbles, Hermes lives there now too. ([#32348](https://github.com/NousResearch/hermes-agent/pull/32348), [#42582](https://github.com/NousResearch/hermes-agent/pull/42582), [#44713](https://github.com/NousResearch/hermes-agent/pull/44713) — @teknium1) - **Raft — Hermes joins the Raft agent network as a gateway channel** — A new bundled Raft platform adapter lets Hermes connect to [Raft](https://raft.build) as an external agent through a wake-channel bridge. Set `RAFT_PROFILE`, run the bridge, and Raft can wake Hermes to handle messages — with a privacy-by-contract design where wake payloads carry only metadata (event IDs, timestamps), never message bodies. Another surface where Hermes can show up and do work. ([#48210](https://github.com/NousResearch/hermes-agent/pull/48210) — @xxchan, @teknium1) - **A substantially more capable desktop app** — v0.16.0 shipped the desktop app; v0.17.0 deepened it across dozens of PRs. Rebindable keyboard shortcuts, native OS notifications with per-type toggles, live subagent **watch-windows** that stream a delegated agent's activity into its own pane, a composer model selector with per-model presets, automatic RTL/bidi text direction, a resizable VS Code-themed terminal pane, per-thread composer drafts, and the ability to install **any VS Code Marketplace theme** directly into the app. The desktop is now a serious daily driver, not a preview. ([#45866](https://github.com/NousResearch/hermes-agent/pull/45866), [#40660](https://github.com/NousResearch/hermes-agent/pull/40660), [#47060](https://github.com/NousResearch/hermes-agent/pull/47060), [#46959](https://github.com/NousResearch/hermes-agent/pull/46959), [#43292](https://github.com/NousResearch/hermes-agent/pull/43292), [#44596](https://github.com/NousResearch/hermes-agent/pull/44596) — @OutThisLife, @teknium1) - **Background / async subagents — delegate work and keep going** — `delegate_task(background=true)` now dispatches a subagent that runs in the background and returns a handle immediately. You and the model keep working while it churns, and the full result re-enters the conversation as a new turn the moment it finishes. Kick off a long research dive or a multi-step build, then carry on with something else instead of sitting blocked waiting on it. ([#40946](https://github.com/NousResearch/hermes-agent/pull/40946), [#46968](https://github.com/NousResearch/hermes-agent/pull/46968) — @teknium1) - **Edit images, not just generate them — image-to-image in `image_generate`** — `image_generate` can now edit and transform a source image, not only create one from scratch. Pass an existing image and a prompt and it routes to the backend's edit endpoint (same tool, same pattern as `video_generate`), across every supported image provider. "Make this logo blue," "remove the background," "turn this sketch into a render" — all from the tool you already use. ([#48705](https://github.com/NousResearch/hermes-agent/pull/48705) — @teknium1) - **Automation Blueprints — schedule things without learning cron** — Pick an automation by name and Hermes asks you for what it needs — no cron syntax, no `slot=value` typing. One blueprint definition renders natively on every surface: a form in the dashboard, a slash command in the CLI/TUI/messenger, a conversation with the agent, an entry in the docs catalog. "Daily news briefing at 8am" becomes a thing you set up by answering questions, not by memorizing `0 8 * * *`. ([#41309](https://github.com/NousResearch/hermes-agent/pull/41309) — @teknium1) - **Cursor's Composer model, through your xAI Grok subscription** — `grok-composer-2.5-fast` is now in the xAI OAuth model picker, with its context window reconciled to the full 200k. Composer is the fast coding model behind Cursor — and if you have an xAI Grok subscription, you can now point Hermes at it directly over OAuth, no separate API key. Your Grok plan, Hermes's agent loop, Composer's coding speed. ([#47908](https://github.com/NousResearch/hermes-agent/pull/47908), [#6f89e17](https://github.com/NousResearch/hermes-agent/pull/47371) — @teknium1) - **Full profile builder in the dashboard** — Build a complete Hermes profile from the browser — pick its model, choose its skills, attach its MCP servers — without hand-editing `config.yaml`. The dashboard also unified multi-profile management into one machine-wide view with a global profile switcher, so you manage every profile from a single place. ([#39084](https://github.com/NousResearch/hermes-agent/pull/39084), [#44007](https://github.com/NousResearch/hermes-agent/pull/44007) — @teknium1) - **Skills Hub browser rehaul** — The dashboard's Skills Hub got a ground-up rework: connected hubs, a Featured section, full skill previews before you install, and a security scan on each skill. Browsing and installing skills from the trusted taps (OpenAI, Anthropic, HuggingFace, NVIDIA) is now a real browsing experience, not a flat list. ([#40384](https://github.com/NousResearch/hermes-agent/pull/40384), [#43398](https://github.com/NousResearch/hermes-agent/pull/43398) — @teknium1) - **The `memory` tool got a major upgrade — atomic batch operations** — The `memory` tool gained an `operations` array that applies a batch of add/replace/remove edits **atomically against the final character budget**. The model can free up space and add new entries in a single call — even when an add alone would overflow the budget — collapsing what used to be a fragile multi-turn dance into one reliable operation. Memory updates are now faster and far less likely to fail mid-edit. ([#48507](https://github.com/NousResearch/hermes-agent/pull/48507) — @teknium1) - **Secure dashboard login** — The dashboard's authentication was hardened: every token-required endpoint now correctly returns 401 behind the OAuth gate, websocket auth uses the served dashboard token, and a warning fires when a `public_url` override is silently rejected. Exposing your dashboard to the network is safer by default. ([#42578](https://github.com/NousResearch/hermes-agent/pull/42578), [#42578](https://github.com/NousResearch/hermes-agent/pull/43214) — @benbarclay, @teknium1) - **Official WhatsApp Business Cloud API adapter** — Alongside the existing Baileys bridge, Hermes now speaks the **official** WhatsApp Business Cloud API — Meta's first-party, hosted, no-bridge-process path. Point it at your Business API credentials and Hermes talks WhatsApp through the supported channel, with no QR-scanning bridge process to keep alive. ([#44331](https://github.com/NousResearch/hermes-agent/pull/44331), [#43921](https://github.com/NousResearch/hermes-agent/pull/43921) — @jquesnelle, @teknium1) - **Rich text for Telegram — Bot API 10.1 rich messages** — Telegram replies now render as proper rich messages via Bot API 10.1: better formatting, cleaner long-message handling, native markup instead of flattened text. It's on by default with an opt-out, so your Telegram conversations look the way they should without any configuration. ([#44829](https://github.com/NousResearch/hermes-agent/pull/44829), [#45584](https://github.com/NousResearch/hermes-agent/pull/45584), [#45953](https://github.com/NousResearch/hermes-agent/pull/45953) — @teknium1) - **Curator cost optimization — no aux-model spend on routine runs** — The skill curator now prunes stale skills by default but no longer runs its LLM-powered consolidation pass unless you opt in (`curator.consolidate: true` or `hermes curator run --consolidate`). The deterministic inactivity sweep keeps running for free; the opinionated, aux-model-spending "build umbrella skills" fork is now off by default. Routine background curation costs you **zero tokens**. ([#47840](https://github.com/NousResearch/hermes-agent/pull/47840) — @teknium1) ## 🖥️ Hermes Desktop App ### New surfaces & UX - Rebindable keyboard shortcuts panel; native OS notifications with per-type toggles; curated turn-completion cue + dismissable error banners ([#40660](https://github.com/NousResearch/hermes-agent/pull/40660), [#45866](https://github.com/NousResearch/hermes-agent/pull/45866), [#42480](https://github.com/NousResearch/hermes-agent/pull/42480), [#47985](https://github.com/NousResearch/hermes-agent/pull/47985) — @OutThisLife, @teknium1) - Live subagent **watch-windows** — stream a delegated agent's activity into its own pane; composer status stack + editable prompts; open any chat in its own window; new-session-in-compact-window hotkey ([#47060](https://github.com/NousResearch/hermes-agent/pull/47060), [#44630](https://github.com/NousResearch/hermes-agent/pull/44630), [#43219](https://github.com/NousResearch/hermes-agent/pull/43219), [#46951](https://github.com/NousResearch/hermes-agent/pull/46951) — @OutThisLife, @teknium1) - Composer model selector + per-model presets + external-provider disconnect; surface every provider/model from `hermes model` in the GUI; unify provider list to one source; warn when a main-model switch leaves auxiliary tasks pinned elsewhere ([#46959](https://github.com/NousResearch/hermes-agent/pull/46959), [#40563](https://github.com/NousResearch/hermes-agent/pull/40563), [#49080](https://github.com/NousResearch/hermes-agent/pull/49080), [#40286](https://github.com/NousResearch/hermes-agent/pull/40286) — @teknium1, @OutThisLife) - Install **any VS Code Marketplace theme**; assignable themes per profile; window translucency slider; unified overlay design system + BrandMark + onboarding redesign ([#43292](https://github.com/NousResearch/hermes-agent/pull/43292), [#42286](https://github.com/NousResearch/hermes-agent/pull/42286), [#45086](https://github.com/NousResearch/hermes-agent/pull/45086), [#40708](https://github.com/NousResearch/hermes-agent/pull/40708) — @teknium1, @OutThisLife) - Resizable VS Code-themed terminal pane + palette polish; auto-detect RTL/bidi text direction in chat; Mac-style session switcher (^Tab / ^1-9); worktree-aware sidebar grouping; hover-reveal collapsed sidebars; messaging source folders in sidebar ([#42521](https://github.com/NousResearch/hermes-agent/pull/42521), [#44596](https://github.com/NousResearch/hermes-agent/pull/44596), [#43111](https://github.com/NousResearch/hermes-agent/pull/43111), [#45273](https://github.com/NousResearch/hermes-agent/pull/45273), [#41670](https://github.com/NousResearch/hermes-agent/pull/41670), [#41751](https://github.com/NousResearch/hermes-agent/pull/41751) — @OutThisLife) - Arrow-key history + queue editing in composer; expand full command inline from the approval bar; follow-streaming-at-bottom + jump-to-bottom button; first-class cron jobs in the sidebar + dashboard scheduler ([#40234](https://github.com/NousResearch/hermes-agent/pull/40234), [#44864](https://github.com/NousResearch/hermes-agent/pull/44864), [#45263](https://github.com/NousResearch/hermes-agent/pull/45263), [#40684](https://github.com/NousResearch/hermes-agent/pull/40684) — @OutThisLife, @teknium1) - Desktop pets — pop-out overlay + notifications ([#47938](https://github.com/NousResearch/hermes-agent/pull/47938) — @teknium1) - Full tool-backend config (pickers + per-backend settings) in Settings; run tool-backend post-setup installs from the GUI; uninstall the Chat GUI without removing the agent; Shift+click status-bar zap to toggle YOLO globally; `/browser connect` on a local gateway ([#41232](https://github.com/NousResearch/hermes-agent/pull/41232), [#40559](https://github.com/NousResearch/hermes-agent/pull/40559), [#40355](https://github.com/NousResearch/hermes-agent/pull/40355), [#41666](https://github.com/NousResearch/hermes-agent/pull/41666), [#47245](https://github.com/NousResearch/hermes-agent/pull/47245) — @teknium1, @OutThisLife) - Japanese + Traditional Chinese language switching ([#40114](https://github.com/NousResearch/hermes-agent/pull/40114)) - "Restart gateway" action (renamed from "Restart messaging") surfaced in the statusbar + on messaging save/toggle toasts; rendered logs are selectable/copyable ([#49094](https://github.com/NousResearch/hermes-agent/pull/49094) — @OutThisLife) ### Remote-gateway & multi-profile - **Remote media relay** — attach images/PDFs and display agent-written images over the network for the first time; remote-gateway file attachments via `file.attach` ([#41336](https://github.com/NousResearch/hermes-agent/pull/41336), [#42634](https://github.com/NousResearch/hermes-agent/pull/42634) — @teknium1) - Client + backend version buttons + remote-backend update flow; browse remote backend files; route global-remote profile REST calls; recover chat after sleep/wake by revalidating a stale remote backend ([#42181](https://github.com/NousResearch/hermes-agent/pull/42181), [#44326](https://github.com/NousResearch/hermes-agent/pull/44326), [#47011](https://github.com/NousResearch/hermes-agent/pull/47011), [#41350](https://github.com/NousResearch/hermes-agent/pull/41350) — @OutThisLife, @teknium1) - Multi-profile fallout cleanup — WS auth + cross-profile session reads; release profile backends before delete; scope session list/model switch/timer per session ([#44529](https://github.com/NousResearch/hermes-agent/pull/44529), [#42613](https://github.com/NousResearch/hermes-agent/pull/42613), [#41103](https://github.com/NousResearch/hermes-agent/pull/41103), [#41120](https://github.com/NousResearch/hermes-agent/pull/41120), [#41182](https://github.com/NousResearch/hermes-agent/pull/41182) — @OutThisLife, @teknium1) - Stream subagent activity into watch windows; keep streaming painting in unfocused secondary chat windows; recover stranded session windows ([#47060](https://github.com/NousResearch/hermes-agent/pull/47060), [#47919](https://github.com/NousResearch/hermes-agent/pull/47919), [#47655](https://github.com/NousResearch/hermes-agent/pull/47655) — @OutThisLife) ## 📊 Web Dashboard - Full-featured profile builder (model + skills + MCPs); unify multi-profile management — one machine dashboard + global profile switcher; profile-scoped skills & toolsets; session switcher panel on the Chat tab ([#39084](https://github.com/NousResearch/hermes-agent/pull/39084), [#44007](https://github.com/NousResearch/hermes-agent/pull/44007), [#43808](https://github.com/NousResearch/hermes-agent/pull/43808), [#49077](https://github.com/NousResearch/hermes-agent/pull/49077) — @teknium1) - Skills hub browser rehaul — connected hubs, featured, preview + security scan; SKILL.md editor on Skills page + attach-skill selector in cron modals; full per-MCP catalog detail; full tool-backend config in the GUI ([#40384](https://github.com/NousResearch/hermes-agent/pull/40384), [#44231](https://github.com/NousResearch/hermes-agent/pull/44231), [#48520](https://github.com/NousResearch/hermes-agent/pull/48520), [#40418](https://github.com/NousResearch/hermes-agent/pull/40418) — @teknium1) - Enable webhooks from the Webhooks page; idempotent `hermes dashboard register`; auto-restart gateway after Telegram QR onboarding; file browser; change UI font from the theme picker; reasoning-effort picker in the chat sidebar ([#44021](https://github.com/NousResearch/hermes-agent/pull/44021), [#42455](https://github.com/NousResearch/hermes-agent/pull/42455), [#43424](https://github.com/NousResearch/hermes-agent/pull/43424), [#43512](https://github.com/NousResearch/hermes-agent/pull/43512), [#41145](https://github.com/NousResearch/hermes-agent/pull/41145), [#49141](https://github.com/NousResearch/hermes-agent/pull/49141) — @teknium1) ## 🏗️ Core Agent & Architecture ### God-file refactor wave (run_agent.py / cli.py / gateway/run.py) - **`cli.py` main() 3297 → 954 lines** — extracted 28 subcommand parsers into `hermes_cli/subcommands/`, then promoted 9 closure handlers; 32 slash-command handlers → `CLICommandsMixin`; 18 model-flow wizard functions → `model_setup_flows`; agent-construction cluster → `CLIAgentSetupMixin` ([#41798](https://github.com/NousResearch/hermes-agent/pull/41798), [#41835](https://github.com/NousResearch/hermes-agent/pull/41835), [#41942](https://github.com/NousResearch/hermes-agent/pull/41942), [#42174](https://github.com/NousResearch/hermes-agent/pull/42174), [#42153](https://github.com/NousResearch/hermes-agent/pull/42153) — @teknium1) - **`gateway/run.py` 19157 → 15870 lines** — 42 slash-command handlers → `GatewaySlashCommandsMixin`; authorization cluster → `GatewayAuthorizationMixin`; kanban watcher loops → `GatewayKanbanWatchersMixin` ([#41886](https://github.com/NousResearch/hermes-agent/pull/41886), [#42159](https://github.com/NousResearch/hermes-agent/pull/42159), [#41849](https://github.com/NousResearch/hermes-agent/pull/41849) — @teknium1) - **`run_agent.py` turn loop** — extracted prologue into `TurnContext`, post-loop tail into `finalize_turn`, consolidated inner-retry-loop recovery flags into `TurnRetryState` ([#41778](https://github.com/NousResearch/hermes-agent/pull/41778), [#42169](https://github.com/NousResearch/hermes-agent/pull/42169), [#41828](https://github.com/NousResearch/hermes-agent/pull/41828) — @teknium1) ### Agent loop, prompt & tools - **`memory` batch operations** — atomic add/replace/remove array against the final char budget, so a single call can free space and add entries ([#48507](https://github.com/NousResearch/hermes-agent/pull/48507) — @teknium1) - **`search_files` lossless densification** — headroom evaluation report + the one densification improvement worth shipping (fewer tokens per result, same matches) ([#47866](https://github.com/NousResearch/hermes-agent/pull/47866) — @teknium1) - Removed the agent-callable `send_message` tool; coding-context posture across CLI/TUI/desktop/ACP; `read_file` extracts `.ipynb`/`.docx`/`.xlsx` to text ([#47856](https://github.com/NousResearch/hermes-agent/pull/47856), [#43316](https://github.com/NousResearch/hermes-agent/pull/43316), [#37082](https://github.com/NousResearch/hermes-agent/pull/37082) — @teknium1) - Context-file handling: configurable truncation limit + warnings; scale context-file cap to model window + point agent at the truncated file ([#47251](https://github.com/NousResearch/hermes-agent/pull/47251), [#47846](https://github.com/NousResearch/hermes-agent/pull/47846) — @teknium1) - Compression: temporal anchoring in compaction summaries; raise compaction trigger to 85% for gpt-5.5 on Codex OAuth ([#41102](https://github.com/NousResearch/hermes-agent/pull/41102), [#40957](https://github.com/NousResearch/hermes-agent/pull/40957) — @teknium1) - Adaptive middleware (consumed by NeMo-Relay observer telemetry); usable mid-turn steer — desktop affordance + trusted injection ([#29724](https://github.com/NousResearch/hermes-agent/pull/29724), [#40240](https://github.com/NousResearch/hermes-agent/pull/40240) — @teknium1) ### Provider & model support - New models: `z-ai/glm-5.2` (verified 1M context, OpenRouter + Nous), `anthropic/claude-fable-5`, `laguna-m.1` + `nemotron-3-ultra`, xAI Composer 2.5 in the OAuth picker; default xAI to `grok-build-0.1` ([#47391](https://github.com/NousResearch/hermes-agent/pull/47391), [#45695](https://github.com/NousResearch/hermes-agent/pull/45695), [#42979](https://github.com/NousResearch/hermes-agent/pull/42979), [#42629](https://github.com/NousResearch/hermes-agent/pull/42629), [#47908](https://github.com/NousResearch/hermes-agent/pull/47908), [#47371](https://github.com/NousResearch/hermes-agent/pull/47371) — @teknium1) - Model picker: Refresh-Models control to bust stale cache; persist Nous recommended-models to disk + fall back on Portal failure; seed catalog disk cache from checkout on update; MiniMax-M3 reports true 1M context ([#48691](https://github.com/NousResearch/hermes-agent/pull/48691), [#42628](https://github.com/NousResearch/hermes-agent/pull/42628), [#42614](https://github.com/NousResearch/hermes-agent/pull/42614), [#43338](https://github.com/NousResearch/hermes-agent/pull/43338) — @teknium1) - Anthropic adaptive models: default to modern thinking contract; never send `reasoning` field; route `reasoning_effort` to verbosity; require confirmation for very expensive selections ([#42991](https://github.com/NousResearch/hermes-agent/pull/42991), [#43012](https://github.com/NousResearch/hermes-agent/pull/43012), [#43436](https://github.com/NousResearch/hermes-agent/pull/43436), [#43391](https://github.com/NousResearch/hermes-agent/pull/43391) — @teknium1) - Auth: auto-detect OpenRouter credential from the pool; keep Codex OAuth pool accounts distinct on add/re-auth; resolve xAI OAuth across profiles + write rotated tokens back to root; honor `model.default_headers` for custom OpenAI-compatible providers ([#42263](https://github.com/NousResearch/hermes-agent/pull/42263), [#42316](https://github.com/NousResearch/hermes-agent/pull/42316), [#46614](https://github.com/NousResearch/hermes-agent/pull/46614), [#41096](https://github.com/NousResearch/hermes-agent/pull/41096) — @teknium1) - Bedrock falls back to non-streaming `InvokeModel` when IAM denies the streaming variant; Ollama default `max_tokens=65536`; surface model refusals as `content_filter` ([#44293](https://github.com/NousResearch/hermes-agent/pull/44293), [#41694](https://github.com/NousResearch/hermes-agent/pull/41694), [#46013](https://github.com/NousResearch/hermes-agent/pull/46013) — @teknium1) ### Sessions, state & multi-agent - Optional **max session cap**; drop empty sessions on CLI exit and rotation; ACP session-provenance metadata for compression rotation ([#42389](https://github.com/NousResearch/hermes-agent/pull/42389), [#43855](https://github.com/NousResearch/hermes-agent/pull/43855), [#41724](https://github.com/NousResearch/hermes-agent/pull/41724) — @teknium1) - Delegation: resolve custom-endpoint subagent pools by endpoint identity; remove the default subagent wall-clock timeout; stop subagent completion lines leaking into parent CLI display ([#41730](https://github.com/NousResearch/hermes-agent/pull/41730), [#45149](https://github.com/NousResearch/hermes-agent/pull/45149), [#44223](https://github.com/NousResearch/hermes-agent/pull/44223) — @teknium1) - Kanban: config-gated auto-subscribe on `kanban_create`; machine-global singleton lock for the embedded dispatcher; pin assigned profile toolsets for workers; hold reclaim while worker still alive ([#48635](https://github.com/NousResearch/hermes-agent/pull/48635), [#49068](https://github.com/NousResearch/hermes-agent/pull/49068), [#45590](https://github.com/NousResearch/hermes-agent/pull/45590), [#49064](https://github.com/NousResearch/hermes-agent/pull/49064) — @teknium1) - Memory: configurable Hindsight retain observation scopes; OpenViking setup UX; Honcho gateway-gated identity tree; Supermemory session-level ingest ([#46611](https://github.com/NousResearch/hermes-agent/pull/46611), [#48262](https://github.com/NousResearch/hermes-agent/pull/48262), [#44431](https://github.com/NousResearch/hermes-agent/pull/44431), [#38756](https://github.com/NousResearch/hermes-agent/pull/38756) — @teknium1, @alt-glitch) ## 📱 Messaging Platforms (Gateway) ### New channels - **iMessage via Photon Spectrum** — `hermes photon login` (device-code OAuth), gRPC-native channel (no webhook), markdown rendering, emoji reactions, outbound media via spectrum-ts ([#32348](https://github.com/NousResearch/hermes-agent/pull/32348), [#42582](https://github.com/NousResearch/hermes-agent/pull/42582), [#44713](https://github.com/NousResearch/hermes-agent/pull/44713), [#42397](https://github.com/NousResearch/hermes-agent/pull/42397) — @teknium1) - **WhatsApp Business Cloud API** adapter (official, no bridge process) ([#44331](https://github.com/NousResearch/hermes-agent/pull/44331), [#43921](https://github.com/NousResearch/hermes-agent/pull/43921) — @jquesnelle, @teknium1) - **SimpleX** — groups, native attachments, text batching, auto-accept; **Raft** bundled platform plugin with activity hooks ([#42584](https://github.com/NousResearch/hermes-agent/pull/42584), [#48210](https://github.com/NousResearch/hermes-agent/pull/48210) — @teknium1) ### Gateway core & rendering - Render terminal tool calls as native bash code blocks on markdown platforms; bare fenced code blocks in chat; optional message timestamps for LLM context; configurable `tool_progress_grouping` ([#41215](https://github.com/NousResearch/hermes-agent/pull/41215), [#42576](https://github.com/NousResearch/hermes-agent/pull/42576), [#47253](https://github.com/NousResearch/hermes-agent/pull/47253), [#47228](https://github.com/NousResearch/hermes-agent/pull/47228) — @teknium1) - Telegram: Bot API 10.1 rich messages (now always-on with opt-out); opt-in Online/Offline bot status indicator; stop cutting long streamed responses; MarkdownV2 on progress edits; gate oversized voice/audio before download ([#44829](https://github.com/NousResearch/hermes-agent/pull/44829), [#45584](https://github.com/NousResearch/hermes-agent/pull/45584), [#49134](https://github.com/NousResearch/hermes-agent/pull/49134), [#43761](https://github.com/NousResearch/hermes-agent/pull/43761), [#44245](https://github.com/NousResearch/hermes-agent/pull/44245) — @teknium1) - Discord: propagate `role_authorized` so `DISCORD_ALLOWED_ROLES` works end-to-end; recover from runtime gateway task exits; cancel `_bot_task` on connect failure; stop typing after replies ([#43327](https://github.com/NousResearch/hermes-agent/pull/43327), [#44383](https://github.com/NousResearch/hermes-agent/pull/44383), [#44432](https://github.com/NousResearch/hermes-agent/pull/44432), [#44836](https://github.com/NousResearch/hermes-agent/pull/44836) — @teknium1) - Slack: scope top-level channel messages when `reply_in_thread=false`; thread approval UX (block-size overflow + typed-prefix); make video attachments available to agents; `register_slack_action_handler` plugin API ([#41703](https://github.com/NousResearch/hermes-agent/pull/41703), [#43444](https://github.com/NousResearch/hermes-agent/pull/43444), [#45512](https://github.com/NousResearch/hermes-agent/pull/45512), [#44664](https://github.com/NousResearch/hermes-agent/pull/44664) — @teknium1) - Replied-to media attachments included; document attachments classified as DOCUMENT on Signal/Email/SimpleX/Teams; WhatsApp restarts stale bridge processes; Matrix room-context isolation; QQbot CPU-spin fix; Weixin rate-limit circuit breaker ([#46107](https://github.com/NousResearch/hermes-agent/pull/46107), [#44695](https://github.com/NousResearch/hermes-agent/pull/44695), [#44205](https://github.com/NousResearch/hermes-agent/pull/44205), [#18505](https://github.com/NousResearch/hermes-agent/pull/18505), [#40574](https://github.com/NousResearch/hermes-agent/pull/40574), [#41718](https://github.com/NousResearch/hermes-agent/pull/41718) — @teknium1, @banditburai) ## 🖥️ CLI, TUI & Setup - `/version` slash command; `/billing` interactive terminal billing (TUI + CLI); show time since last final agent response on the status bar; persist resolved approval/clarify prompts in scrollback ([#40214](https://github.com/NousResearch/hermes-agent/pull/40214), [#45449](https://github.com/NousResearch/hermes-agent/pull/45449), [#44265](https://github.com/NousResearch/hermes-agent/pull/44265), [#44702](https://github.com/NousResearch/hermes-agent/pull/44702) — @teknium1) - Lock hermes worktrees so concurrent processes can't clobber them; display custom profile alias names in list/show; clone profiles from any source ([#48699](https://github.com/NousResearch/hermes-agent/pull/48699), [#40371](https://github.com/NousResearch/hermes-agent/pull/40371), [#45630](https://github.com/NousResearch/hermes-agent/pull/45630) — @teknium1) - Opt-in structured profile-build path on first contact; configurable per-platform system-prompt hints; configurable background memory/skill notifications ([#41114](https://github.com/NousResearch/hermes-agent/pull/41114), [#48630](https://github.com/NousResearch/hermes-agent/pull/48630), [#47226](https://github.com/NousResearch/hermes-agent/pull/47226) — @teknium1) - TUI: interactive Plugins Hub enable/disable overlay; session name in the terminal titlebar; paint approval/clarify/sudo/secret modals directly (not via throttle); wrap long approval commands instead of truncating ([#42965](https://github.com/NousResearch/hermes-agent/pull/42965), [#43188](https://github.com/NousResearch/hermes-agent/pull/43188), [#41155](https://github.com/NousResearch/hermes-agent/pull/41155), [#44691](https://github.com/NousResearch/hermes-agent/pull/44691) — @teknium1) - TTS: Gemini persona prompts + audio tags; xAI auto speech tags + speed/streaming knobs; Piper speaker_id; OGG for Telegram auto-TTS ([#43442](https://github.com/NousResearch/hermes-agent/pull/43442), [#49061](https://github.com/NousResearch/hermes-agent/pull/49061), [#49062](https://github.com/NousResearch/hermes-agent/pull/49062), [#49060](https://github.com/NousResearch/hermes-agent/pull/49060), [#41644](https://github.com/NousResearch/hermes-agent/pull/41644) — @teknium1) ## 🔧 Tool System, Skills & MCP - **image-to-image / editing** in `image_generate` across all backends; shrink images to provider dimension limit ([#48705](https://github.com/NousResearch/hermes-agent/pull/48705), [#45979](https://github.com/NousResearch/hermes-agent/pull/45979) — @teknium1) - MCP: official **Unreal Engine 5.8** MCP server in the catalog; **elicitation handler** so MCP servers can prompt for mid-tool-call confirmation (payment/OAuth) on whichever surface owns the session — CLI/TUI/Telegram/Slack; expose late-connecting MCP tools to the agent between turns (cache-safe); keepalive ping for short-TTL HTTP sessions; block exfil-shaped / suspicious stdio configs before probe; capability-gate `tools/list` so prompt-only servers connect; preserve stdio argv passthrough + Windows env vars ([#48397](https://github.com/NousResearch/hermes-agent/pull/48397), [#49203](https://github.com/NousResearch/hermes-agent/pull/49203), [#49208](https://github.com/NousResearch/hermes-agent/pull/49208), [#49221](https://github.com/NousResearch/hermes-agent/pull/49221), [#46083](https://github.com/NousResearch/hermes-agent/pull/46083), [#44550](https://github.com/NousResearch/hermes-agent/pull/44550), [#44324](https://github.com/NousResearch/hermes-agent/pull/44324) — @teknium1, @lgalabru) - Skills: `simplify-code` skill (parallel 3-agent code review & cleanup) + risk-tiered application with Chesterton's Fence; find & diff user-modified bundled skills; optional **payments** skills (Stripe Link, MPP, Projects); CLI-based shop skill; live per-source browse progress ([#41691](https://github.com/NousResearch/hermes-agent/pull/41691), [#49070](https://github.com/NousResearch/hermes-agent/pull/49070), [#48286](https://github.com/NousResearch/hermes-agent/pull/48286), [#31343](https://github.com/NousResearch/hermes-agent/pull/31343), [#47309](https://github.com/NousResearch/hermes-agent/pull/47309), [#43398](https://github.com/NousResearch/hermes-agent/pull/43398) — @teknium1, @colinwren-stripe) - Curator: make skill consolidation opt-in (prune stays default-on) ([#47840](https://github.com/NousResearch/hermes-agent/pull/47840) — @teknium1) - Plugins: install from a subdirectory within a repo; accept browser-pasted GitHub URLs in `hermes plugins install`; `session:compress` lifecycle event + `thread_id`/`chat_type` in agent:start/end context ([#42963](https://github.com/NousResearch/hermes-agent/pull/42963), [#33539](https://github.com/NousResearch/hermes-agent/pull/33539), [#47252](https://github.com/NousResearch/hermes-agent/pull/47252), [#41672](https://github.com/NousResearch/hermes-agent/pull/41672) — @teknium1) - Memory/skill **write approval** gate (default off) — boolean `write_approval` replaces the tri-state `write_mode` ([#38199](https://github.com/NousResearch/hermes-agent/pull/38199), [#43354](https://github.com/NousResearch/hermes-agent/pull/43354) — @teknium1) ## 🌐 Fleet, Relay & Automation - **Managed scope** — administrator-pinned, user-immutable config & secrets from a root-owned `/etc/hermes` ([#49098](https://github.com/NousResearch/hermes-agent/pull/49098) — @teknium1) - **Multiplex all profiles over one gateway process** (opt-in) ([#48273](https://github.com/NousResearch/hermes-agent/pull/48273) — @benbarclay) - **Pluggable CronScheduler** + Chronos managed-cron provider (scale-to-zero) ([#48275](https://github.com/NousResearch/hermes-agent/pull/48275) — @benbarclay) - **Automation Blueprints** — parameterized automation templates across every surface ([#41309](https://github.com/NousResearch/hermes-agent/pull/41309) — @teknium1) - Gateway-Gateway relay (phases 0-3): relay adapter + capability descriptor, connector⇄gateway channel auth + signed-HTTP inbound + enroll CLI, WS-only inbound, managed-boot self-provision client ([#48078](https://github.com/NousResearch/hermes-agent/pull/48078), [#48147](https://github.com/NousResearch/hermes-agent/pull/48147), [#48294](https://github.com/NousResearch/hermes-agent/pull/48294), [#48242](https://github.com/NousResearch/hermes-agent/pull/48242) — @teknium1) ## 🐳 Docker, Nix & Installer - s6: detect supervisor directly for gateway restart; register profile gateways without auto-starting; persist desired state; clear stale log locks ([#46290](https://github.com/NousResearch/hermes-agent/pull/46290), [#46266](https://github.com/NousResearch/hermes-agent/pull/46266), [#46292](https://github.com/NousResearch/hermes-agent/pull/46292), [#46289](https://github.com/NousResearch/hermes-agent/pull/46289) — @teknium1) - Docker: optimize image size (.dockerignore, drop dev deps, split layers); pre-install matrix deps; supervised gateway uses `--replace`; harden hosted install tree against self-modification ([#38749](https://github.com/NousResearch/hermes-agent/pull/38749), [#42413](https://github.com/NousResearch/hermes-agent/pull/42413), [#47555](https://github.com/NousResearch/hermes-agent/pull/47555), [#47490](https://github.com/NousResearch/hermes-agent/pull/47490) — @teknium1) - Nix: cold npm build fixes + auto-fix-lockfiles workflow; hashless npm deps via `importNpmLock`; refresh npmDepsHash after Electron 40.10.2 pin ([#41867](https://github.com/NousResearch/hermes-agent/pull/41867), [#48883](https://github.com/NousResearch/hermes-agent/pull/48883), [#48457](https://github.com/NousResearch/hermes-agent/pull/48457) — @teknium1) - Installer: clear unmerged git index before autostash; scope install-method stamp to the code tree ([#45515](https://github.com/NousResearch/hermes-agent/pull/45515), [#48188](https://github.com/NousResearch/hermes-agent/pull/48188) — @teknium1) ## 🔒 Security & Reliability - Fail closed on own-policy gateway adapters; fail closed for approval-button auth on Slack/Feishu/Discord when no allowlist is set ([#45634](https://github.com/NousResearch/hermes-agent/pull/45634), [#41226](https://github.com/NousResearch/hermes-agent/pull/41226) — @teknium1) - Redact secrets in request debug dumps; withhold host metadata from public status; block exfil-shaped / suspicious MCP stdio configs before probe ([#46637](https://github.com/NousResearch/hermes-agent/pull/46637), [#45642](https://github.com/NousResearch/hermes-agent/pull/45642), [#46083](https://github.com/NousResearch/hermes-agent/pull/46083) — @teknium1) - Close shell-escape denylist bypass + fail-closed on missing approval module; scrub operator environment before launching cua-driver MCP; sanitize env for cron job-script subprocesses; bound TodoStore content length/count; scan REST cron prompts for parity with the agent tool ([#40591](https://github.com/NousResearch/hermes-agent/pull/40591), [#48423](https://github.com/NousResearch/hermes-agent/pull/48423), [#49207](https://github.com/NousResearch/hermes-agent/pull/49207), [#41648](https://github.com/NousResearch/hermes-agent/pull/41648), [#41335](https://github.com/NousResearch/hermes-agent/pull/41335) — @teknium1, @kshitijk4poor) - Bump urllib3 and PyJWT to clear CVEs; Langfuse redacts base64 data URIs instead of truncating into invalid base64 ([#40179](https://github.com/NousResearch/hermes-agent/pull/40179), [#43322](https://github.com/NousResearch/hermes-agent/pull/43322) — @teknium1) ## 🪟 Windows - Dashboard `/chat` tab via ConPTY (`win_pty_bridge`) + tests; resolve PowerShell host instead of bare `powershell` for uv install; resolve `powershell.exe` by absolute path so Desktop install doesn't stall ([#42251](https://github.com/NousResearch/hermes-agent/pull/42251), [#48341](https://github.com/NousResearch/hermes-agent/pull/48341), [#40927](https://github.com/NousResearch/hermes-agent/pull/40927) — @teknium1) - Repair stale winget registration + refresh/merge PATH; kill hermes before recreating venv to release `_bcrypt.pyd` lock; read HERMES_HOME from the registry when env is stale; quarantine running `hermes.exe` during update repair ([#44084](https://github.com/NousResearch/hermes-agent/pull/44084), [#45120](https://github.com/NousResearch/hermes-agent/pull/45120), [#46772](https://github.com/NousResearch/hermes-agent/pull/46772), [#40409](https://github.com/NousResearch/hermes-agent/pull/40409) — @teknium1) - JOB-breakaway watcher reliability + status --deep probes; handle Windows PTY stdin + detached WS frames; decode subprocess output as UTF-8; confirm-modal on native Windows ([#40909](https://github.com/NousResearch/hermes-agent/pull/40909), [#41953](https://github.com/NousResearch/hermes-agent/pull/41953), [#44328](https://github.com/NousResearch/hermes-agent/pull/44328), [#42419](https://github.com/NousResearch/hermes-agent/pull/42419) — @teknium1) ## 🐛 Notable Bug Fixes - Percent-encode non-ascii URL components; sanitize `:` in FTS5 queries so colon searches don't silently return empty ([#41430](https://github.com/NousResearch/hermes-agent/pull/41430), [#40653](https://github.com/NousResearch/hermes-agent/pull/40653) — @teknium1) - Preserve multimodal user content through crash-resilience persist; flatten multimodal content before provider sync; strip MEDIA directives from compressor input ([#47907](https://github.com/NousResearch/hermes-agent/pull/47907), [#44738](https://github.com/NousResearch/hermes-agent/pull/44738), [#44708](https://github.com/NousResearch/hermes-agent/pull/44708) — @teknium1) - Re-enter retry loop on genuine Nous 429 so the fallback guard runs; scope Nous tags to Nous auxiliary calls; suppress "Credit access paused" notice on free models ([#45136](https://github.com/NousResearch/hermes-agent/pull/45136), [#45801](https://github.com/NousResearch/hermes-agent/pull/45801), [#43669](https://github.com/NousResearch/hermes-agent/pull/43669) — @teknium1) - Cron: don't strict-scan script-injected output in no-skills jobs; resolve per-job provider "custom" to `providers.custom` instead of codex; repair cron ownership on container restart ([#43223](https://github.com/NousResearch/hermes-agent/pull/43223), [#43505](https://github.com/NousResearch/hermes-agent/pull/43505), [#41976](https://github.com/NousResearch/hermes-agent/pull/41976) — @teknium1) - *(300+ issues closed this window; full per-area fix list is exhaustive — these are the highest-impact.)* ## ↩️ Reverted in this window (not shipping) - `html-artifact` skill + sketch/architecture-diagram/concept-diagrams fold ([#48899](https://github.com/NousResearch/hermes-agent/pull/48899)) — reverted ([#49053](https://github.com/NousResearch/hermes-agent/pull/49053)); absent on main. - Cron per-job profile support reverted ([#43956](https://github.com/NousResearch/hermes-agent/pull/43956)); a nix patchPhase workaround reverted ([#42151](https://github.com/NousResearch/hermes-agent/pull/42151)). ## 👥 Contributors A huge thank-you to everyone who contributed to this release — **245 contributors** across commits, co-author trailers, and salvaged PRs. ### Core @teknium1 ### Top community contributors (by merged PRs) - @OutThisLife — 92 PRs (desktop app maturity (shortcuts, notifications, watch-windows, themes)) - @kshitijk4poor — 60 PRs (onboarding, model picker, cron env sanitization) - @xxxigm — 27 PRs (desktop & gateway fixes) - @benbarclay — 23 PRs (gateway multiplex, Chronos cron, dashboard auth) - @helix4u — 21 PRs (gateway & installer reliability) - @austinpickett — 19 PRs (dashboard & desktop UX) - @alt-glitch — 14 PRs (usage-aware credits, Supermemory) - @ethernet8023 — 14 PRs (desktop build pipeline & Linux/Windows) - @liuhao1024 — 5 PRs (session lifecycle fixes) ### All contributors (alphabetical) @0z1-ghb, @0xdany, @0xneobyte, @0xyg3n, @1960697431, @895252509, @achaljhawar, @Adolanium, @AhmetArif0, @AIalliAI, @aimable100, @AJ, @ak2k, @alarcritty, @AlchemistChaos, @aldoeliacim, @alelpoan, @AlexanderBFoley, @alfred-smith-0, @ali-nld, @alt-glitch, @am423, @ameobius, @AMIK-coorporations, @annguyenNous, @ArcanePivot, @ARegalado1, @asdlem, @ashishpatel26, @austinpickett, @banditburai, @barronlroth, @Bartok9, @basilalshukaili, @bbednarski9, @bcsmith528, @benbarclay, @benegessarit, @benfrank241, @bionicbutterfly13, @BlackishGreen33, @blut-agent, @bmoore210, @bpasquini, @briandevans, @BROCCOLO1D, @capt-marbles, @ccook1963, @Cdddo, @channkim, @ChasLui, @chimpera, @chromalinx, @CiarasClaws, @claytonchew, @cnfi, @colinwren-stripe, @cresslank, @cyb0rgk1tty, @dangelo352, @davidgut1982, @deaneeth, @definitelynotguru, @Diyoncrz18, @draix, @dschnurbusch, @Dusk1e, @dusterbloom, @ehz0ah, @emozilla, @enesilhaydin, @Erosika, @ethernet8023, @Evisolpxe, @firefly, @flooryyyy, @flyinhigh, @foras910521-lab, @Frowtek, @ft-ioxcs, @fyzanshaik, @Ganesh0690, @gauravsaxena1997, @giladbau, @glesperance, @GodsBoy, @goku94123, @H-Ali13381, @HaozheZhang6, @haran2001, @harshitAgr, @hbentel, @helix4u, @HeLLGURD, @Hermes, @huangxun375-stack, @iamlukethedev, @ianculling, @IAvecilla, @iborazzi, @infinitycrew39, @islam666, @ITheEqualizer, @itsflownium, @Jaaneek, @james47kjv, @jeeves-assistant, @jeffrobodie-glitch, @JezzaHehn, @jiangkoumo, @jimjsong, @JimLiu, @JimStenstrom, @jmsunseri, @JoaoMarcos44, @joel611, @JoelJJohnson, @joerj123, @johnjacobkenny, @jooray, @joshuadow, @jplew, @justinbao19, @Justlrnal4, @Kailigithub, @kamonspecial, @kdunn926, @Kenmege, @Kewe63, @kmccammon, @konsisumer, @kristianvast, @kshitijk4poor, @kyssta-exe, @l37525778-coder, @LaPhilosophie, @leo4226, @LeonSGP43, @liuhao1024, @Llugaes, @loongfay, @loongzhao, @lsaether, @m4dni5, @manishbyatroy, @MaxFreedomPollard, @maxmilian, @maxtrigify, @mnajafian-nv, @mohamedorigami-jpg, @mollusk, @MrDiamondBallz, @mssteuer, @mvanhorn, @naqerl, @Nea74, @necoweb3, @nepenth, @nicoloboschi, @NormallyGaussian, @OmarB97, @omegazheng, @OndrejDrapalik, @OutThisLife, @oxngon, @OYLFLMH, @Paperclip, @paulb26, @pengyuyanITYU, @PhilipAD, @pinguarmy, @plcunha, @ProgramCaiCai, @psionic73, @qin-ctx, @qingshan89, @Que0x, @qWaitCrypto, @r266-tech, @randomsnowflake, @rbrtbn, @rewbs, @rio-jeong, @Rivuza, @rob-maron, @rodboev, @ruangraung, @RyTsYdUp, @Sahil-SS9, @salesondemandio, @sanidhyasin, @sarvesh1327, @sdyckjq-lab, @shannonsands, @SHL0MS, @simpolism, @sitkarev, @skyc1e, @skylarbpayne, @SNooZyy2, @Spaceman-Spiffy, @srojk34, @sweetcornna, @synapsesx, @Tamaz-sujashvili, @tangtaizong666, @temalo, @tfournet, @thedavidweng, @TheGardenGallery, @tim404x, @tomekpanek, @Tranquil-Flow, @tt-a1i, @tuancookiez-hub, @underthestars-zhy, @Veritas-7, @victor-kyriazakos, @wesleysimplicio, @WolframRavenwolf, @WompaJango, @x1erra, @xiaoxinova, @xtymac, @xushibo, @XVVH, @xxchan, @xxxigm, @xy200303, @y0shua1ee, @yanxue06, @yatesjalex, @YLChen-007, @yoniebans, @youjunxiaji, @yubingz, @zakame, @zapabob, @zccyman, @zimigit2020, @ziwon, @zwcf5200, @zxcasongs. --- **Full Changelog**: [v2026.6.5...v2026.6.19](https://github.com/NousResearch/hermes-agent/compare/v2026.6.5...v2026.6.19)
View on GitHub ↗
02

Power Tips

Task descriptions, plans, checkpoints

Quick Wins

01
hermes init first, always

Without hermes.config.json, Hermes uses defaults that probably don't match your stack. The init wizard takes 2 minutes and makes every subsequent task dramatically more accurate.

02
--dry-run before you execute

Hermes is autonomous. See the full plan before any files are touched. This is especially important for refactors, migrations, and anything involving multiple files.

hermes "your task" --dry-run
03
Specific descriptions = better plans

Vague: "improve auth." Specific: "Add rate limiting to POST /api/auth/login — max 5 requests per minute per IP, return 429 with Retry-After header." Specificity is everything.

04
Read the execution log when things go wrong

Hermes logs every step of its execution. When a task doesn't go as expected, the log tells you exactly what happened and where it diverged from the plan.

hermes log
05
Checkpoint saves mid-task state

For long-running operations, checkpoint at meaningful milestones. If something goes wrong later, you can resume from the checkpoint instead of starting over.

hermes checkpoint
06
--model swaps the underlying model

Use a cheaper model for exploration and planning tasks, a smarter one for actual implementation. You're not locked into one model for the whole workflow.

hermes --model claude-opus-4-6 "your task"
🔍

Hidden Features

📋
YAML workflow plans for repeatable tasks

Write a .hermes/workflow.yaml that describes a multi-step process. Hermes executes it deterministically every time — great for deployment pipelines, onboarding scripts, and anything you'd otherwise document as a manual runbook.

🔌
Tool plugins extend what Hermes can do

Hermes has a plugin system for tools. Add plugins for your database CLI, cloud provider, test framework, or any other tool you use. Hermes can then invoke them directly as part of its execution plans.

🔁
Resume from checkpoint after interruption

Long tasks get interrupted — network drops, rate limits, system sleep. Checkpoints let Hermes resume exactly where it left off without re-running everything from the start.

hermes resume --checkpoint latest
💀

Common Mistakes

☠️
Skipping --dry-run on first tasks

Hermes is autonomous and will make real changes immediately. Running without --dry-run on a task you haven't validated means you're discovering the plan by watching it execute.

Always --dry-run on any task that modifies files. No exceptions until you know the tool well.
☠️
Vague task descriptions

Vague input = vague plan = vague output. Hermes is only as good as the task description you give it. Ambiguous tasks produce generic results.

Include: what to change, where (file/function), the expected behaviour, and any constraints.
☠️
No checkpoint on long tasks

A 15-minute task that gets interrupted at minute 12 has to start over. That's avoidable.

Run hermes checkpoint at logical milestones during long operations.
03 📋

Command Reference

Flags and commands
CLI Flags
--dry-run Show the execution plan without modifying any files.
--interactive Start an interactive session with back-and-forth conversation.
--scope Restrict file access to a specific path. Hermes cannot read or edit outside this path.
--task Read the task description from a file (markdown or plain text).
--max-steps Maximum number of agent iterations before stopping.
--model Override the model for this task.
--output-json Ask Hermes to return structured JSON output.
--parallel Run multiple task files concurrently.
Daily Workflows
One-shot task execution hermes 'fix all TypeScript errors in src/'
Interactive mode hermes --interactive
Dry run — see the plan without executing hermes --dry-run 'refactor auth module'
Run from a task file hermes --task tasks/migrate-db.md
Limit scope to specific paths hermes --scope src/lib/ 'refactor the utilities'
Check what Hermes did cat hermes.log or hermes log --last
⚡ Power Moves
Chain tasks with a pipeline file hermes --pipeline pipeline.yaml
Use hermes.context.md for persistent instructions Create hermes.context.md at project root
Capture structured output hermes --output-json 'list all API endpoints as JSON'
Parallel task execution hermes --parallel tasks/a.md tasks/b.md tasks/c.md