You can tell a tool's age by how much its TUI assumes you do not look at it.
The Hermes terminal before v0.11.0 was the kind of interface that was perfectly fine the way an older Linux box's text-mode installer is perfectly fine: every keystroke worked, every command did what it said, and the visual layout was a thin courtesy more than a design. I used it every day. I did not realize how much I was working around it until v0.11.0 shipped.
On April 23, 2026, eight days after v0.10.0's tool gateway, Hermes Agent shipped v0.11.0. The release notes call it "the interface release," which is one of those names that sounds underwhelming until you actually read the changelog. By the end of v0.11.0, the layer between you and the agent is a different program from the one you had a week earlier.
A new TUI in React, talking JSON-RPC to Python
The headline change is the Ink-based TUI — a complete rewrite in React/Ink (think React, but rendering to terminal cells instead of DOM elements) sitting on top of a Python JSON-RPC backend. The visible payoff: a sticky composer that does not jump up the screen when output scrolls, live streaming with clipboard support, and an observability overlay that surfaces what the agent is currently doing — which call, which tool, which model — without you having to ask.
The invisible payoff is the part that matters more. The TUI and the agent core are now two processes with a clean wire protocol between them. That is the boring sentence that usually starts with "and so we could finally ship an editor extension." You do not yet see the editor extension shipped from this layer; what you see is everything that becomes possible because the architecture is now in place. v0.13.0's ACP improvements ride on it. v0.14.0's hermes proxy rides on it. The dashboard that started in v0.9.0 grows up on it.
Transport architecture: four backends, five new inference paths
The other half of v0.11.0 is a refactor most users will never see directly. The model layer was rewritten around a pluggable transport architecture with four backends — AnthropicTransport, ChatCompletionsTransport, ResponsesApiTransport, and BedrockTransport. The point of the abstraction is not the abstraction. The point is what falls out of it.
Native AWS Bedrock support via the Converse API shipped in v0.11.0. So did GPT-5.5 via Codex OAuth with live model discovery in the picker. So did NVIDIA NIM, Arcee AI, Step Plan, Google Gemini CLI OAuth, and Vercel ai-gateway — five new inference paths in a single release window, none of which would have been a one-week task before the transport refactor.
The picker itself picked up a roster expansion: Claude Opus 4.7, Kimi K2.6 across multiple providers, Xiaomi MiMo v2.5-pro and v2.5, xAI Grok STT/TTS, and Google Gemini TTS. If your usage pattern includes "pick a model based on the task at hand," v0.11.0 made the list noticeably longer.
A small thing that should not be small: per-provider and per-model timeout configuration also landed. The old "one timeout for everything" approach was the source of an embarrassing percentage of failed long-running runs.
/steer, shell hooks, and a much wider plugin surface
/steer <prompt> is the small command that changes how you talk to a running agent. Before v0.11.0, course-correcting a task in progress meant cancelling and re-prompting — which usually meant losing the agent's working state and the context it had built up about the task. With /steer, you nudge mid-flight: the agent keeps its context, accepts the new direction, and keeps going. The matching small-but-loud change on the input side is numbered keyboard shortcuts on approval prompts — you tap a number, not a /approve.
Around /steer, the plugin surface widened to the point where Hermes plugins can do things they could not do before. v0.11.0 added hook points for slash commands, tool dispatch, execution blocking, and result transformation. The boundary between "a plugin that adds a button" and "a plugin that meaningfully reshapes how the agent behaves" used to be a wall; v0.11.0 turned it into a door.
Shell hooks wire shell scripts as lifecycle callbacks, so you can fire scripts on session start, tool use, completion, or error. Webhook direct-delivery mode lets you push outputs to external systems with zero LLM in the path — the agent acts as a router, not a generator. Dynamic shell completion for bash, zsh, and fish is the kind of "should have always existed" feature that you only notice you needed once you have it.
QQBot, dashboards on phones, and DingTalk's streaming AI cards
Platform-wise, v0.11.0 added QQBot as the 17th messaging platform, on the QQ Official API v2, with a QR-setup wizard that handles credentials end-to-end. The release also beefed up nearly every existing platform: Discord (forum channels, role-based access, slash command toggle), Feishu (document comment replies, reaction status), DingTalk (mention preservation, streaming AI cards — yes, the agent can now write directly into a live updating card on DingTalk), WhatsApp (voice messages, policy parity), and WeCom/Weixin (QR-scan bot creation).
The Local Web Dashboard from v0.9.0 grew up in this release. It picked up i18n (English and Chinese), live theme switching, a plugin system, and a mobile-responsive layout. The dashboard is now genuinely a thing you can leave open on your phone while the agent runs the task on your server.
By the numbers
The release window between v0.10.0 and v0.11.0 covered roughly 1,556 commits across seven days. Read that twice. The model picker has more entries than it had a month ago. The TUI is a different program. The transport layer is a different program. The dashboard is a different program. The plugin contract is a different contract. The brand on the binary is the same.
I have seen projects that ship 1,556 commits across a year and call it a healthy release cycle. v0.11.0 is what that number looks like when the cadence story stops being a marketing line and starts being an engineering one. The release notes do not flex about it. The "Highlights" section just says "this was the interface release," because the interface that ate seven days of merges was, in fact, what shipped.
---
The reason "interface" releases tend to be undersold is that interfaces are how a tool feels rather than what a tool does. The benchmark numbers do not move. The features list does not grow. But the day after v0.11.0 dropped, the agent I had been using for two months felt, in some hard-to-quantify way, like a different agent — less like a terminal program with chat bolted on, more like a chat program that happens to live in a terminal.
The plumbing under the new TUI is what makes the next three weeks possible. v0.12.0 will ride this layer to land the Autonomous Curator. v0.13.0 will ride it to land the multi-agent Kanban. v0.14.0 will ride it to land hermes proxy. v0.11.0 itself is the foundation under that whole month.