v0.11.0

Hermes Agent v0.11.0 — The Interface Release


Overview

v0.11.0 — The Interface Release. Released April 23, 2026. ~1,556 commits · 761 merged PRs · 1,314 files changed · ~224,000 insertions · 29 community contributors (290 including co-authors).

This is the architecture release Hermes Agent needed. The Interface Release does three things simultaneously: it rewrites the interactive CLI as a React/Ink TUI with a JSON-RPC backend, extracts a pluggable transport layer that decouples every provider from the core agent loop, and dramatically expands the plugin surface so third-party code can hook into tool execution, terminal output, and the dashboard. All while adding five new inference paths, native AWS Bedrock, and GPT-5.5.

This release folds in all highlights deferred from v0.10.0 (which shipped only the Nous Tool Gateway), so it covers roughly two weeks of work across the full stack.


Major Features

1. New Ink-based TUI — hermes --tui

The interactive CLI has been completely rewritten as a React/Ink terminal UI with a Python JSON-RPC backend (tui_gateway). This is not a skin overlay — it is a ground-up rebuild with ~310 commits across ui-tui/ and tui_gateway/.

Key capabilities:

  • Sticky composer that freezes during scroll — your input stays pinned at the bottom no matter how much agent output is streaming
  • Live streaming with OSC-52 clipboard support — copy agent output into your system clipboard even over SSH
  • Status bar with per-turn stopwatch, git branch label, and activity indicators
  • Stable picker keys — model and tool pickers use deterministic keybindings that don’t shift
  • /clear confirm — no more accidental session wipes
  • Light-theme preset alongside the default dark theme
  • Subagent spawn observability overlay — see when and where subagents are spawned, in real time

For users who live in the terminal:

hermes --tui
# or set it permanently
export HERMES_TUI=1

The TUI also ships slash command autocomplete (complete.slash), path autocomplete (complete.path), virtualized history rendering for performance, and dozens of resize/ghosting/sticky-prompt fixes. Internally, app.tsx was decomposed into app/event-handler, app/slash-handler, app/stores, and app/hooks — a clean separation of concerns that makes the TUI maintainable and extensible.

Primary authors: @OutThisLife + Teknium.

2. Transport ABC — Pluggable Provider Architecture

This is the most significant architectural change in the release. Previously, every provider lived as branching logic inside run_agent.py — format conversion, HTTP transport, and API shape were all tangled together in the core inference path. Adding a new provider meant modifying the core.

The Transport ABC extracts all of this into agent/transports/, where each transport owns its own format conversion and API shape:

Transport Provider Purpose
AnthropicTransport Anthropic Messages API path
ChatCompletionsTransport OpenAI-compatible Default for most providers
ResponsesApiTransport OpenAI Responses API + Codex wiring
BedrockTransport AWS Bedrock Converse API transport

Why this matters: Adding a new provider is now a plugin operation instead of a core patch. This is the foundation that lets five new inference paths land in a single release — NIM, Bedrock, Arcee, Step Plan, and Vercel ai-gateway all ship as self-contained transports. If you maintain a Hermes profile or write skills against it, this is the architecture you are building on.

3. Native AWS Bedrock Support

AWS Bedrock is now a first-class provider via the Converse API, built on top of the new BedrockTransport. Enterprise AWS deployments no longer need a third-party gateway to use Hermes.

# hermes.config.yaml
providers:
  - name: bedrock-claude
    provider: bedrock
    model: us.anthropic.claude-sonnet-4-20250514-v1:0
    region: us-east-1

This opens up Hermes to organizations that run inference inside their AWS account for compliance, data residency, or cost reasons.

4. Five New Inference Paths

The transport architecture made it possible to ship five entirely new inference backends in one release cycle:

  • NVIDIA NIM — Native provider for NVIDIA’s inference microservices, allowing Hermes to call models deployed on your own infrastructure
  • Arcee AI — Direct provider for Arcee’s specialized fine-tuned models
  • Step Plan — Provider salvaged from community PR #6005
  • Google Gemini CLI OAuth — Authenticate with Gemini via OAuth instead of API keys
  • Vercel ai-gateway — With dynamic model discovery, pricing metadata, and attribution tracking (@jerilynzheng)

Additionally, Gemini is now routed through the native AI Studio API for better performance.

5. GPT-5.5 over Codex OAuth

OpenAI’s GPT-5.5 reasoning model is now available through your ChatGPT Codex OAuth credentials. Live model discovery is wired into the model picker — new OpenAI model releases appear automatically without catalog updates.

/hermes model:openai/gpt-5.5

This means Hermes users get access to OpenAI’s latest models the moment they are available, without waiting for a Hermes release to add them to the catalog.

6. QQBot — 17th Messaging Platform

Native QQBot adapter via QQ Official API v2 joins the messaging lineup:

  • QR scan-to-configure setup wizard — scan a QR code, done
  • Streaming cursor support with emoji reactions
  • DM and group policy gating — parity with WeCom/Weixin adapters

This makes Hermes Agent available to hundreds of millions of QQ users.

7. Plugin Surface — Major Expansion

The plugin system gained significant new capabilities in this release:

Hook / Capability Description
register_command() Plugins can add slash commands to the agent
dispatch_tool() Plugins can invoke tools directly from their code
pre_tool_call blocking Plugins can veto tool execution before it happens
transform_tool_result() Plugins rewrite tool results generically after execution
transform_terminal_output() Plugins rewrite terminal tool output
Pluggable image_gen backends Plugins can ship their own image generation providers
Custom dashboard tabs Plugins can extend the web dashboard with their own views
Shell hooks Wire any shell script as a lifecycle hook — no Python required

The bundled disk-cleanup plugin is now opt-in by default as a reference implementation, showing plugin authors how to use the new hooks.

8. /steer — Mid-Run Agent Nudges

/steer "Stop using SQLite, switch to PostgreSQL"

/steer <prompt> injects a note that the running agent sees after its next tool call — without interrupting the turn or breaking the prompt cache. For when the agent is heading in the wrong direction mid-task and you want to course-correct without restarting.

9. Smarter Delegation — Orchestrator Role

Subagents now have an explicit orchestrator role that can spawn their own workers, with configurable max_spawn_depth. The default is flat (no recursive spawning), keeping things predictable.

Concurrent sibling subagents share filesystem state through a file-coordination layer so they do not clobber each other’s edits:

delegate_task:
  max_spawn_depth: 2  # allow orchestrators to spawn one level of workers

10. Auxiliary Models — Configurable UI

hermes model now has a dedicated “Configure auxiliary models” screen for per-task overrides:

  • Compression model
  • Vision model
  • Session search model
  • Title generation model

The auto routing now defaults to the main model for all auxiliary tasks across all users. Previously, aggregator users were silently routed to a cheap provider-side default — a behavior that caused confusion.

11. Web Dashboard — Plugin System & Live Theme Switching

The web dashboard is now extensible. Third-party plugins can add custom tabs, widgets, and views without forking the dashboard codebase.

Paired with a live-switching theme system — themes control colors, fonts, layout, and density — so users can hot-swap the dashboard look without a reload. Same theming discipline the CLI has, now on the web.

Dashboard polish highlights:

  • i18n (English + Chinese) with language switcher
  • react-router sidebar layout with sticky header
  • Mobile-responsive design
  • Vercel deployment support
  • Real per-session API call tracking
  • One-click update + gateway restart buttons

12. Shell Hooks

Wire any shell script as a Hermes lifecycle hook — no Python plugin required:

# pre_tool_call hook — runs before every tool execution
hermes config set hooks.pre_tool_call "./scripts/audit.sh"

# on_session_start hook
hermes config set hooks.on_session_start "./scripts/notify.sh"

Supported hooks: pre_tool_call, post_tool_call, on_session_start, on_session_end, and more.

13. Webhook Direct-Delivery Mode

Webhook subscriptions can now forward payloads straight to a platform chat without going through the agent — zero-LLM push notifications for alerting, uptime checks, and event streams. This saves token costs and latency for notifications that do not need AI processing.


Messaging Platforms — Major Updates

Telegram

  • Dedicated TELEGRAM_PROXY env var + config.yaml proxy support — finally closes multiple proxy-related issues
  • ignored_threads config for Telegram groups — ignore noisy threads
  • Config option to disable link previews
  • Auto-wrap markdown tables in code blocks for proper rendering
  • Fixes: duplicate replies on cancelled streams, streaming cursor artifacts, Unicode dash normalization for iOS smart punctuation

Discord

  • Forum channel support — Hermes can now participate in Discord forum threads
  • DISCORD_ALLOWED_ROLES — role-based access control for who can interact with the agent
  • Config option to disable slash commands
  • Native send_animation for inline GIF playback
  • send_message media attachments
  • /skill command group with category subcommands

Feishu

  • Intelligent reply on document comments with 3-tier access control
  • Show processing state via reactions on user messages
  • Preserve @mention context for agent consumption

DingTalk

  • require_mention + allowed_users gating — parity with Slack/Telegram/Discord
  • QR-code device-flow authorization for the setup wizard
  • AI Cards streaming + emoji reactions + media handling

WhatsApp

  • send_voice — native audio message delivery
  • dm_policy and group_policy — parity with WeCom/Weixin/QQ adapters

Other Platforms

  • WeCom: QR-scan bot creation + interactive setup wizard
  • Signal: Media delivery support via send_message
  • Slack: Per-thread sessions for DMs by default
  • BlueBubbles (iMessage): Group chat session separation, webhook fixes

Gateway Core

  • Gateway proxy mode — forward messages to a remote API server
  • Per-channel ephemeral prompts (Discord, Telegram, Slack, Mattermost)
  • Surface plugin slash commands natively on all platforms
  • --all flag for gateway start and restart
  • Notify active sessions on gateway shutdown
  • Fix: block agent from self-destructing the gateway via terminal

Tools & Skills

New Skills

Skill Description
concept-diagrams Generate system concept diagrams
architecture-diagram Cocoon AI port for architecture visualization
pixel-art Hardware-palette pixel art with video animation support
baoyu-comic Comic-style image generation
baoyu-infographic 21 layouts × 21 styles for data visualization
page-agent Embed Alibaba’s in-page GUI agent in your webapp
fitness-nutrition Nutrition tracking with optional env var support
drug-discovery ChEMBL, PubChem, OpenFDA, ADMET integration
touchdesigner-mcp TouchDesigner integration for creative coding
adversarial-ux-test UX testing from adversarial perspective

Skill System Improvements

  • Namespaced skill registration for plugin bundles
  • hermes skills reset to un-stick bundled skills
  • Skills guard opt-inconfig.skills.guard_agent_created
  • Fuzzy @ file completions with mtime sorting
  • xitter replaced with xurl — the official X API CLI

Tool Expansions

  • Browser: browser_cdp — raw Chrome DevTools Protocol passthrough for advanced browser automation
  • Execute Code: Project/strict execution modes (default: project)
  • Image Generation: Multi-model FAL support, Recraft V3→V4, GPT Image 2, xAI image generation provider
  • TTS/STT: Google Gemini TTS, xAI Grok STT, xAI TTS, KittenTTS local provider, CLI record beep toggle
  • Cron: wakeAgent gate for LLM-less jobs, per-job enabled_toolsets to cap token overhead
  • API Server: Stream /v1/responses SSE tool events, inline image inputs on both chat completions and responses endpoints
  • Docker/Podman: Entry-level Podman support, file-sync back to host on teardown
  • MCP: 12 improvements across status tracking, timeout handling, and tool-call forwarding

Provider & Model Support

An extensive refresh of the model catalog:

Addition Details
Kimi K2.6 OpenRouter, Nous Portal, native Kimi, HuggingFace
Kimi K2.5 Promoted to first position in all model suggestion lists
Xiaomi MiMo v2.5-pro + v2.5 OpenRouter, Nous Portal, and native
Claude Opus 4.7 Nous Portal catalog
GLM-5V-Turbo For coding plan
GPT-5 family Corrected context lengths in fallback defaults
xAI Grok Upgraded to Responses API
Ollama Cloud provider support, GLM continuation, think=false control
minimax-m2.5 OpenRouter free tier

Configurable request_timeout_seconds per-provider and per-model, configurable agent.api_max_retries, and ctx_size context length key for Lemonade server.


Agent Loop & Conversations

  • /steer <prompt> — mid-run course correction without breaking prompt cache
  • Orchestrator role + configurable spawn depth for hierarchical delegation
  • Cross-agent file state coordination for concurrent subagents
  • Compressor upgrades: smart collapse, dedup, anti-thrashing, template upgrade
  • Compression summaries respect the conversation’s language
  • Auto-continue interrupted agent work after gateway restart
  • Activity heartbeats prevent false gateway inactivity timeouts
  • PLATFORM_HINTS for Matrix, Mattermost, and Feishu

Multiple agent-loop fixes: reset retry counters after compression, break compression-exhaustion infinite loops, prevent premature loop exits with weak models, improve interrupt responsiveness during concurrent tool execution, and preserve pre-start terminal interrupts.


Session & Memory

  • Auto-prune old sessions + VACUUM state.db at startup
  • Honcho overhaul — context injection, 5-tool surface, cost safety, session isolation
  • Hindsight richer session-scoped retain metadata
  • Fixes: deduplicate memory provider tools, discover user-installed memory providers, preserve session_id across previous_response_id chains

CLI & UX

  • Dynamic shell completion for bash, zsh, and fish
  • Light-mode skins + skin-aware completion menus
  • Numbered keyboard shortcuts on approval and clarify prompts
  • Markdown stripping + compact multiline previews
  • --ignore-user-config and --ignore-rules flags
  • Account limits section in /usage
  • ESC cancels secret/sudo prompts with clearer skip messaging
  • Doctor: Command Installation check for hermes bin symlink

Performance

  • Virtualized history rendering in the TUI — smooth scrolling through thousands of messages
  • Concurrent tool execution with improved interrupt responsiveness
  • Session auto-prune + VACUUM keeps the state database lean
  • Faster session switching with lazy-loaded platform adapters

Security & Reliability

  • Global toggle to allow private/internal URL resolution — off by default
  • Block agent from self-destructing the gateway via terminal
  • Telegram callback authorization on update prompts
  • SECURITY.md added to the repository
  • Complete ASCII-locale UnicodeEncodeError recovery for api_messages and reasoning_content
  • Prevent stale os.environ leak after clear_session_vars
  • Prevent agent hang when backgrounding processes via terminal tool
  • Warn about legacy hermes.service units during hermes update

Upgrade

hermes update

This is a non-breaking upgrade. Existing profiles continue working as-is. If you spend significant time in interactive sessions, try the new TUI with hermes --tui. If you deploy on AWS, prototype the Bedrock transport against your existing prompts and compare latency and per-token cost.

For new installations, visit the install guide.


Full changelog on GitHub

← Hermes Agent Changelog