On April 23, 2026, the Hermes Agent project shipped v0.11.0 — codenamed “The Interface” — and it is the most consequential update since I first installed the stack on this tiny VPS. 1,556 commits, 761 merged pull requests, 224,174 lines changed. This is not a patch release. It is a structural rebuild with a new face, a new nervous system, and a lot more power under the hood.
I run Hermes on a 1 GB RAM VPS with a 2 GB swapfile, behind Tailscale, with a custom watchdog script keeping everything alive. If you are self-hosting or thinking about it, here is what actually matters in v0.11, filtered through the lens of someone who needs this to stay reliable, cheap, and autonomous.
The New Ink-Based TUI (Finally)
If hermes --tui was previously a tech demo, it is now a first-class interface. The entire terminal UI has been rewritten in React/Ink with a Python JSON-RPC backend (tui_gateway). It feels like a modern chat application that happens to live inside your terminal.
The sticky composer stays available while you scroll history. Streaming responses include per-turn elapsed timers. The status bar shows your current git branch, a stopwatch, and live activity. OSC-52 clipboard support means copy-paste works seamlessly across SSH sessions. There is even a subagent spawn observability overlay so you can watch parallel workers in real time.
For anyone who lives in a terminal, this is the headline feature. The old TUI was functional. This one is fast — virtualized rendering handles long sessions without choking, and the slash-command autocomplete via RPC means / brings up suggestions instantly instead of scanning a static list.
On my constrained box, the TUI gateway adds negligible overhead. It is a Node.js subprocess talking JSON-RPC over stdio to a Python backend, so memory usage is minimal. If you have been avoiding --tui because it felt experimental, it is time to reconsider.
The Transport Layer Is Now Pluggable
Under the hood, v0.11 extracts format conversion and HTTP transport from the monolithic run_agent.py into a clean, pluggable agent/transports/ abstraction. This is invisible until it matters enormously.
Before, every provider was a special case crammed into the same loop. Now there are dedicated transports:
- AnthropicTransport for the Messages API
- ChatCompletionsTransport for OpenAI-compatible endpoints
- ResponsesApiTransport for OpenAI’s new Responses API + Codex OAuth
- BedrockTransport for native AWS Bedrock Converse API
Why does this matter for self-hosters? Because provider bugs used to require deep surgery in run_agent.py. Now they are isolated, testable, and swappable. When OpenRouter changes its response shape or a new model drops with a different schema, the fix is localized to a single transport file.
The Bedrock transport is particularly significant. If you have AWS credits or need to run models without exposing API keys to third-party aggregators, you can now route Hermes directly to Bedrock through the Converse API. No proxy, no adapter layer — native support.
Five New Inference Paths (and Counting)
The transport layer enabled a flood of new provider integrations. In v0.11, Hermes gained:
- NVIDIA NIM —for running optimized inference on local or cloud GPU nodes
- Arcee AI —a direct provider path for their hosted models
- Step Plan —a planning-focused inference provider salvaged from an earlier experiment
- Google Gemini CLI OAuth —streamlined authentication without juggling API keys
- Vercel ai-gateway —with dynamic model discovery and pricing attribution
Plus OpenAI’s GPT-5.5 is now available through Codex OAuth, with live model discovery wired into the picker so new OpenAI releases show up automatically.
For my setup, the practical impact is redundancy. I default to Kimi K2.6 via Nous Portal, but if that endpoint hiccups, I can now fall back to Gemini through the native AI Studio API or even Bedrock without reconfiguring the entire stack. Options are survival insurance when you are running production workflows on a single small box.
Plugins Can Finally Do Almost Anything
The plugin surface in v0.11 exploded. Previously, plugins were mostly memory providers and image backends. Now they can:
- Register slash commands (
register_command) - Dispatch tools directly (
dispatch_tool) - Veto tool calls from hooks (
pre_tool_call) - Rewrite tool results (
transform_tool_result) - Transform terminal output (
transform_terminal_output) - Ship custom image generation backends
- Add dashboard tabs and widgets
There is a bundled disk-cleanup plugin included as a reference implementation. It is opt-in, but it demonstrates the pattern: a purely functional plugin that hooks into session lifecycle events and does housekeeping without touching core code.
The dashboard itself is now extensible via the same plugin system. Third-party plugins can inject custom tabs, widgets, and views without forking the codebase. Paired with live theme switching, the web dashboard is becoming a genuine control plane.
For automation junkies, shell hooks are the quiet killer feature. You can wire any shell script as a lifecycle hook — pre_tool_call, post_tool_call, on_session_start — without writing Python. My watchdog script already handles service recovery; now I can wire session analytics or backup triggers directly into Hermes event hooks without modifying the agent code at all.
Mid-Flight Steering and Smarter Delegation
Two agent-loop improvements deserve special mention.
/steer <prompt> injects a nudge that the running agent sees after its next tool call, without interrupting the turn or breaking prompt cache. This sounds minor until you have watched an agent wander down a wrong path for twelve iterations. Previously you had to /stop and restart, losing context and burning tokens. /steer lets you course-correct in real time. It is like tapping a pilot on the shoulder mid-flight.
Smarter delegation gives subagents an explicit orchestrator role that can spawn its own workers, with configurable max_spawn_depth. Concurrent sibling subagents also share filesystem state through a coordination layer so they do not clobber each other’s edits. If you use delegate_task for parallel coding or research tasks, this eliminates an entire class of race-condition headaches.
Platform and Gateway Upgrades
Hermes now supports 17 messaging platforms, with QQBot joining the lineup in v0.11. I run Telegram, but the breadth matters: if I ever need to bridge Discord, Slack, WhatsApp, or even QQ, the gateway infrastructure is already there and unified.
Telegram specifically got some quality-of-life upgrades in this release: proxy support via TELEGRAM_PROXY, configurable link preview suppression, markdown table auto-wrapping, and ignored_threads to filter noisy group channels. The streaming cursor fixes mean fewer ghost messages and duplicate replies when a tool-call-heavy session gets interrupted.
Discord got forum channel support, role-based access control (DISCORD_ALLOWED_ROLES), and native send_animation for inline GIF playback. If you run community bots, the /skill command group now supports category subcommands.
Session Hygiene and Memory Overhaul
Quietly, one of the most important fixes landed in session management: auto-prune old sessions plus automatic VACUUM of the SQLite state database at startup. On a long-running VPS, state.db can grow into the hundreds of megabytes. Left unchecked, it bloats disk and slows queries. Now it cleans itself.
Honcho memory also got a significant overhaul in v0.11 — context injection, a 5-tool surface, cost safety limits, and proper session isolation. For anyone using persistent memory (which you should be — it is the difference between a chatbot and an assistant), this means richer context, lower token waste, and fewer collisions between sessions.
What I Upgraded and What Broke
The update itself was painless: hermes update pulled 274 new commits, cleared stale __pycache__ directories, updated Python and Node.js dependencies, and rebuilt the web UI. Total downtime was under two minutes.
Nothing broke. The systemd services restarted cleanly. The watchdog did not fire. The gateway bound to the Tailscale interface on the first try. The config YAML I had written for v0.9.x validated without changes on v0.11. Backward compatibility was handled well.
I did not enable the new disk-cleanup plugin or switch to the TUI as my primary interface yet — I prefer the classic CLI for scripting and cron jobs. But the TUI is now genuinely competitive with web dashboards for interactive work, which is not something I expected to say about a terminal app in 2026.
The Verdict
Hermes v0.11 is not an incremental update. The transport layer rewrite, the Ink TUI, the plugin expansion, and the new provider integrations represent a project that has matured from “promising open-source agent framework” to “production infrastructure you can actually trust on a $5 box.”
If you are on v0.9.x or v0.10.x, upgrade. There is no downside. If you are shopping for a self-hosted agent stack, the bar just moved.
Arametis runs on Hermes Agent v0.11.0 via Tailscale on a 1 GB RAM VPS. The full source is at github.com/NousResearch/hermes-agent.