Hermes Agent v0.12.0¶
Release Date: April 30, 2026 Since v0.11.0: 1,096 commits ยท 550 merged PRs ยท 1,270 files changed ยท 217,776 insertions ยท 213 community contributors (including co-authors)
The Curator release - Hermes Agent now maintains itself. An autonomous background Curator grades, prunes, and consolidates your skill library on its own schedule. The self-improvement loop that reviews what to save got a substantial upgrade. Four new inference providers, a 18th messaging platform, a 19th via Teams plugin, native Spotify + Google Meet integrations, ComfyUI and TouchDesigner-MCP moved from optional to bundled-by-default, and a ~57% cut to visible TUI cold start.
โจ Highlights¶
-
Autonomous Curator -
hermes curatorruns as a background agent on the gateway's cron ticker (7-day cycle default). It grades your skill library, consolidates related skills, prunes dead ones, and writes per-run reports tologs/curator/run.json+REPORT.md. Archived skills are classified consolidated-vs-pruned via model + heuristic. Defense-in-depth gates protect bundled/hub skills from mutation. Unified underauxiliary.curator- pick the curator's model inhermes model, manage it from the dashboard.hermes curator statusranks skills by usage (most-used / least-used). (#17277, #17307, #17941, #17868, #18033) -
Self-improvement loop - substantially upgraded - The background review fork (the core of Hermes' self-improvement: after each turn it decides what memories/skills to save or update) is now class-first (rubric-based rather than free-form), active-update biased (prefers the skill the agent just loaded), handles
references//templates/sub-files, and properly inherits the parent's live runtime (provider, model, credentials actually propagate). Restricted to memory + skills toolsets so it can't sprawl. Memory providers shut down cleanly. Prior-turn tool messages excluded from the summary so the fork sees a clean context. (#16026, #17213, #16099, #16569, #16204, #15057) -
Skill integrations - major expansion - ComfyUI v5 with official CLI + REST + hardware-gated local install, moved from optional to built-in by default (#17610, #17631, #17734). TouchDesigner-MCP bundled by default, expanded with GLSL, post-FX, audio, geometry, and 9 new reference docs (#16753, #16624, #16768 - @kshitijk4poor + @SHL0MS). Humanizer skill ports a text-cleaner that strips AI-isms (#16787). claude-design HTML artifact skill + design-md (Google DESIGN.md spec) + airtable salvage +
skill_manageedits inexternal_dirs+ direct-URL skill install +/reload-skillsslash command. (#16358, #14876, #16291, #17512, #16323, #17744) -
LM Studio - first-class provider - upgraded from a custom-endpoint alias to a full-blown native provider: dedicated auth,
hermes doctorchecks, reasoning transport, live/modelslisting. (Salvage of @kshitijk4poor's #17061.) (#17102) -
Four more new inference providers - GMI Cloud (first-class, salvage of #11955 - @isaachuangGMICLOUD), Azure AI Foundry with auto-detection, MiniMax OAuth with PKCE browser flow (salvage #15203), Tencent Tokenhub (salvage of #16860). (#16663, #15845, #17524, #16960)
-
Pluggable gateway platforms + Microsoft Teams - the gateway is now a plugin host. Drop-in messaging adapters live outside the core, and Microsoft Teams is the first plugin-shipped platform. (Salvage of #17664.) (#17751, #17828)
-
Tencent ๅ ๅฎ (Yuanbao) - 18th messaging platform - native gateway adapter with text + media delivery. (#16298, #17424)
-
Spotify - native tools + bundled skill + wizard - 7 tools (play, search, queue, playlists, devices) behind PKCE OAuth, interactive setup wizard, bundled skill, surfacing in
hermes tools, cron usage documented. (#15121, #15130, #15154, #15180) -
Google Meet plugin - join calls, transcribe, speak, follow up. Realtime OpenAI transport + Node bot server, full pipeline bundled as a plugin. (#16364)
-
hermes -zone-shot mode +hermes update --check- non-interactivehermes -z <prompt>with--model/--provider/HERMES_INFERENCE_MODEL.hermes update --checkpreflight. Opt-in pre-update HERMES_HOME backup. (#15702, #15704, #15841, #16539, #16566) -
Models dashboard tab + in-browser model config - rich per-model analytics, switch main + auxiliary models from the dashboard. (#17745, #17802)
-
Remote model catalog manifest - OpenRouter + Nous Portal model catalogs are now pulled from a remote manifest so new models show up without a release. (#16033)
-
Native multimodal image routing - images now route based on the model's actual vision capability rather than provider defaults. (#16506)
-
Gateway media parity - native multi-image sending across Telegram, Discord, Slack, Mattermost, Email, and Signal; centralized audio routing with FLAC support + Telegram document fallback. (#17909, #17833)
-
TUI catches up to (and past) the classic CLI - LaTeX rendering (@austinpickett),
/reload.env hot-reload, pluggable busy-indicator styles (@OutThisLife, #13610), opt-in auto-resume of last session, expanded light-terminal auto-detection, session delete from/resumepicker withd, modified mouse-wheel line scroll, and a/mousetoggle that kills ConPTY's phantom mouse injection (@kevin-ho). (#17175, #17286, #17150, #17130, #17113, #17668, #17669, #15488) -
Observability + achievements plugins - bundled Langfuse observability plugin (salvage #16845) + bundled hermes-achievements plugin that scans full session history. (#16917, #17754)
-
TTS provider registry + Piper local TTS - pluggable
tts.providers.<name>registry; Piper ships as a native local TTS provider. (Closes #8508.) (#17843, #17885) -
Vercel Sandbox backend - Vercel sandboxes as an execute_code/terminal backend (@kshitijk4poor). (#17445)
-
Secret redaction off by default - default flipped to off. Prevents the long-standing patch-corruption incidents where fake secret-shaped substrings mangled tool outputs. Opt in via
redaction.enabled: truewhen you need it. (#16794) -
Cold-start performance - visible TUI cold start cut ~57% via lazy agent init (@OutThisLife), lazy imports of OpenAI / Anthropic / Firecrawl / account_usage, mtime-cached
load_config(), memoizedget_tool_definitions()with TTL-cachedcheck_fnresults, precompiled dangerous-command patterns. (#17190, #17046, #17041, #17098, #17206) -
Configurable prompt cache TTL -
prompt_caching.cache_ttl(5m default, 1h opt-in - cost savings for bursty sessions that keep cache warm). Salvage of #12659. (#15065)
๐ง Autonomous Curator & Self-Improvement Loop¶
Curator - autonomous skill maintenance¶
hermes curatoras a background agent - runs on the gateway's cron ticker, 7-day cycle by default, umbrella-first prompt, inherits parent config, unbounded iterations (#17277 - issue #7816)- Per-run reports -
logs/curator/run.json+REPORT.mdper cycle (#17307) - Consolidated vs pruned classification - archived skills split with model + heuristic (#17941)
hermes curator status- ranks skills by usage, shows most-used and least-used (#18033)- Unified under
auxiliary.curator- pick the model inhermes model, configure from the dashboard (#17868) - Documentation - dedicated curator feature page on the docs site (#17563)
- Fix: seed defaults on update, create
logs/curator/directory, defer fire import (#17927) - Fix: scan nested archive subdirs in
restore_skill(@0xDevNinja) (#17951) - Fix: use actual skill activity in curator status (@y0shua1ee) (#17953)
- Fix:
skill_managerefuses writes on pinned skills; pinning now blocks curator writes (#17562, #17578) - Fix:
bump_use()wired into skill invocation + preload + skill_view (salvage #17782) (#17932)
Self-improvement loop (background review fork)¶
- Class-first skill-review prompt - rubric-based grading rather than free-form "should this update" (#16026)
- Active-update bias - prefers updating skills the agent just loaded, handles
references/+templates/sub-files (#17213) - Fork inherits parent's live runtime - provider, model, credentials actually propagate now (#16099)
- Scoped toolsets - review fork restricted to memory + skills (no shell, no web) (#16569)
- Clean shutdown - background review memory providers exit properly (salvage #15289) (#16204)
- Clean context - prior-history tool messages excluded from review summary (salvage #14967) (#15057)
๐งฉ Skills Ecosystem¶
Skill integrations - newly bundled or promoted¶
- ComfyUI v5 - official CLI + REST + hardware-gated local install; moved from optional to built-in (#17610, #17631, #17734, #17612)
- TouchDesigner-MCP - bundled by default (#16753 - @kshitijk4poor), expanded with GLSL, post-FX, audio, geometry references (#16624), 9 new reference docs (#16768 - @SHL0MS)
- Humanizer - strips AI-isms from text (#16787)
- claude-design - HTML artifact skill with disambiguation from other design skills (#16358)
- design-md - Google's DESIGN.md spec skill (#14876)
- airtable - salvaged skill + skill API keys wired into
.env(#15838) (#16291) - pretext - creative browser demos with @chenglou/pretext (#17259)
- spike + sketch - throwaway experiments + HTML mockups, adapted from gsd-build (#17421)
Skills UX¶
- Install skills from a direct HTTP(S) URL -
hermes skills install <url>(#16323) /reload-skillsslash command (salvage #17670) (#17744)hermes skills listshows enabled/disabled status (#16129)skill_managerefuses writes on pinned skills (#17562)skill_manageedits external_dirs skills in place (salvage #9966) (#17512, #17289)- Fix: inline-shell rendering in
skill_view(#15376) - Fix: exclude
.archive/from skill index walk (salvage #17639) (#17931) - Fix: dedicated docs page per bundled + optional skill (#14929)
- Fix:
google-workspaceshared HERMES_HOME helper + ship deps as optional extra (#15405) - Fix: auto-wrap ASCII-art code blocks in generated skill pages (#16497)
- Point agent at
hermes-agentskill + docs site for Hermes questions (#16535)
๐๏ธ Core Agent & Architecture¶
Provider & Model Support¶
New providers¶
- GMI Cloud - first-class API-key provider on par with Arcee/Kilocode/Xiaomi (salvage of #11955 - @isaachuangGMICLOUD) (#16663)
- Azure AI Foundry - auto-detection, full wiring (#15845)
- LM Studio - upgraded from custom-endpoint alias to first-class provider: dedicated auth, doctor checks, reasoning transport, live
/models(salvage of #17061 - @kshitijk4poor) (#17102) - MiniMax OAuth - PKCE browser flow with full OAuth integration (salvage #15203) (#17524)
- Tencent Tokenhub - new provider (salvage of #16860) (#16960)
Model catalog¶
- Remote model catalog manifest - OpenRouter + Nous Portal catalogs pulled from remote manifest so new models show up without a release (#16033)
openai/gpt-5.5andgpt-5.5-proadded to OpenRouter + Nous Portal (#15343)deepseek-v4-proanddeepseek-v4-flashadded (#14934)qwen3.6-plusadded to Alibaba-supported models (#16896)- Gemini free-tier keys blocked at setup with 429 guidance surfacing (#15100)
Model configuration¶
- Configurable
prompt_caching.cache_ttl- 5m default, 1h opt-in (salvage #12659) (#15065) /fastwhitelist broadened to all OpenAI + Anthropic models (#16883)auxiliary.extra_body.reasoningtranslates into Codex Responses API (#17004)hermes fallbackcommand for managing fallback providers (#16052)
Agent Loop & Conversation¶
- Native multimodal image routing - based on model vision capability, not provider defaults (#16506)
- Delegate
child_timeout_secondsdefault bumped to 600s (#14809) - Diagnostic dump when subagent times out with 0 API calls (#15105)
- Gateway busts cached agent on compression/context_length config edits (#17008)
- Opt-in runtime-metadata footer on final replies (#17026)
/reload-mcpawareness - rebuild cached agents + prompt-cache cost confirmation (#17729)- Fix: repair CamelCase +
_toolsuffix tool-call emissions (#15124) - Fix: retry on
json.JSONDecodeErrorinstead of treating as local validation error (#15107) - Fix: handle unescaped control chars in
tool_call.arguments(#15356) - Fix: ordering fix in
_copy_reasoning_content_for_api- cross-provider reasoning isolation (@Zjianru) (#15749) - Fix: inject empty
reasoning_contentfor DeepSeek/Kimitool_callsunconditionally (@Zjianru) (#15762) - Fix: persist streamed
reasoning_contenton assistant turns (#16844) (#16892) - Fix: cancel coroutine on timeout so worker thread exits; full traceback on tool failure (#17428)
- Fix: isolate
get_tool_definitionsquiet_mode cache + dedup LCM injection (#17335) (#17889) - Fix: serialize concurrent
hermes_toolsRPC calls fromexecute_code(#17770) (#17894, #17902) - Fix: rename
[SYSTEM:โ[IMPORTANT:in all user-injected markers (dodges Azure content filter) (#16114)
Compression¶
- Retry summary on main model for unknown errors before giving up (#16774)
- Notify users when configured aux model fails even if main-model fallback recovers (#16775)
/compresswrapped in_busy_commandto block input during compression (#15388)- Fix: reserve system + tools headroom when aux binds threshold (#15631)
- Fix: use text-char sum for multimodal token estimation in
_find_tail_cut_by_tokens(#16369)
Session, Memory & State¶
- Trigram FTS5 index for CJK search, replace LIKE fallback (@alt-glitch) (#16651)
- Index
tool_name+tool_callsin FTS5, with repair + migration (salvages #16866) (#16914) - Checkpoints: auto-prune orphan and stale shadow repos at startup (#16303)
- Memory providers notified on mid-process session_id rotation (#6672) (#17409)
- Fix: quote underscored terms in FTS5 query sanitization (#16915)
- Fix: resolve viking_read 500/412 on file URIs + pseudo-summary URIs (salvage #5886) (#17869)
- Fix: skip external-provider sync on interrupted turns (#15395)
- Fix: close embedded Hindsight async client cleanly (salvage #14605) (#16209)
- Fix: pass session transcript to
shutdown_memory_provideron gateway + CLI (#15165) (#16571) - Fix: write-origin metadata seam (#15346)
- Fix: preserve symlinks during atomic file writes (#16980)
- Refactor: remove
flush_memoriesentirely (#15696)
Auxiliary models¶
- Fix: surface auxiliary failures in UI (previously silent) (#15324)
- Fix: surface title-gen auxiliary failures instead of silently dropping (#16371)
- Fix: generalize unsupported-parameter detector and harden
max_tokensretry (#15633)
๐ฑ Messaging Platforms (Gateway)¶
New Platforms¶
- Microsoft Teams (19th platform) - as a plugin, + xdist collision guard (#17828)
- Yuanbao (Tencent ๅ ๅฎ, 18th platform) - native adapter with text + media delivery (#16298, #17424, #16880)
Pluggable Gateway Platforms¶
- Drop-in messaging adapters - the gateway is now a plugin host for platforms (salvage of #17664) (#17751)
Telegram¶
- Chat allowlists for groups and forums (@web3blind) (#15027)
- Send fresh finals for stale preview streams (port openclaw#72038) (#16261)
- Render markdown tables as row-group bullets + prompt hint (#16997)
- Document fallback in centralized audio routing (#17833)
- Native multi-image sending (#17909)
Discord¶
- Opt-in toolsets + ID injection + tool split + Feishu wiring (salvage #15457, #15458) (#15610, #15613)
- Fix: coerce
limitparameter to int beforemin()call (#16319)
Slack¶
- Register every gateway command as a native slash (Discord/Telegram parity) (#16164)
strict_mentionconfig - prevents thread auto-engagement (#16193)channel_skill_bindings- bind specific skills to specific Slack channels (#16283)
Signal¶
- Native formatting - markdown โ bodyRanges, reply quotes, reactions (#17417)
- Native multi-image sending (#17909)
Feishu / Mattermost / Email / Signal¶
- All participate in native multi-image sending (#17909)
Gateway Core¶
- Centralized audio routing + FLAC support + Telegram doc fallback (#17833)
- Native multi-image sending across Telegram, Discord, Slack, Mattermost, Email, Signal (#17909)
- Make hygiene hard message limit configurable (#17000)
- Opt-in runtime-metadata footer on final replies (#17026)
pre_gateway_dispatchhook - plugins can intercept before dispatch (#15050)pre_approval_request/post_approval_responsehooks (#16776)- Fix: timeouts - guard
load_config()call against runtime exceptions (#16318) - Fix: support passing handler tools via registry (#15613)
๐ง Tool System¶
Plugin-first architecture¶
- Pluggable gateway platforms - platforms can ship as plugins (#17751)
- Microsoft Teams as first plugin-shipped platform (#17828)
pre_gateway_dispatchhook (#15050)pre_approval_request+post_approval_responsehooks (#16776)duration_msonpost_tool_call(inspired by Claude Code 2.1.119) (#15429)- Bundled plugins: Spotify (#15174), Google Meet (#16364), Langfuse observability (#16917), hermes-achievements (#17754)
- Page-scoped plugin slots for built-in dashboard pages (#15658)
- Declarative plugin installation for NixOS module (@alt-glitch) (#15953)
Browser¶
- CDP supervisor - dialog detection + response + cross-origin iframe eval (#14540)
- Auto-spawn local Chromium for LAN/localhost URLs when cloud provider is configured (#16136)
Execute code / Terminal¶
- Vercel Sandbox backend for
execute_code/ terminal (@kshitijk4poor) (#17445) - Collapse subagent
task_ids to shared container (#16177) - Docker: run container as host user to avoid root-owned bind mounts (@benbarclay) (#17305)
- Fix: safely quote
~/subpaths in wrappedcdcommands (#15394) - Fix: close file descriptor in
LocalEnvironment._update_cwd(#17300) - Fix: SSH - prevent tar from overwriting remote home dir permissions (#17898, #17867)
Image generation¶
- See Provider section for updates; no new image providers this window.
TTS / Voice¶
- Pluggable TTS provider registry under
tts.providers.<name>(#17843) - Piper as native local TTS provider (closes #8508) (#17885)
- Voice mode CLI parity in the TUI - VAD loop + TTS + crash forensics (#14810)
- Fix: vision - use HERMES_HOME-based cache dir instead of cwd (#17719)
Cron¶
- Honor
hermes toolsconfig for the cron platform (#14798) - Per-job
workdir- project-aware cron runs (#15110) context_fromfield - chain cron job outputs (#15606)- Fix: promote
croniterto a core dependency (#17577)
Web search¶
- Expose
limitforweb_search(#16934)
Maps¶
- Fix: include seconds in timezone UTC offset output (#16300)
Approvals¶
- Hardline blocklist for unrecoverable commands (#15878)
- Perf: precompile DANGEROUS_PATTERNS and HARDLINE_PATTERNS (#17206)
ACP¶
- Advertise and forward image prompts (#18030)
API Server¶
- POST
/v1/runs/{run_id}/stop(salvage of #15656) (#15842) - Expose run status for external UIs (#17085) (#17458)
Nix¶
- Declarative plugin installation for NixOS module (@alt-glitch) (#15953)
- Fix: use
--rebuildin fix-lockfiles to bypass cached FOD store paths (#15444) - Fix:
extraPackagesnow actually works via per-user profile (#17047) - Fix: refresh web/ npm-deps hash to unblock main builds (#17174)
- Fix: replace magic-nix-cache with Cachix (#17928)
๐ฅ๏ธ TUI¶
New features¶
- LaTeX rendering (@austinpickett) (#17175)
/reload.env hot-reload - ported from the classic CLI (#17286)- Pluggable busy-indicator styles (@OutThisLife, #13610) (#17150)
- Opt-in auto-resume of the most recent session (@OutThisLife) (#17130)
- Expanded light-terminal auto-detection -
HERMES_TUI_THEME+ background hex (@OutThisLife) (#17113) - Delete sessions from
/resumepicker withd(@OutThisLife) (#17668) - Line-by-line scroll on modified mouse wheel (@OutThisLife) (#17669)
- Delete queued message while editing with ctrl-x / cancel with esc (@OutThisLife) (#16707)
- Per-section visibility for the details accordion (@OutThisLife) (#14968)
- Voice mode CLI parity - VAD loop + TTS + crash forensics (#14810)
- Contextual first-touch hints ported to TUI -
/busy,/verbose(#16054) - Mini help menu on
?in the input field (@ethernet8023) (#18043)
Fixes¶
- Fix: proactive mouse disable on ConPTY +
/mousetoggle command (@kevin-ho, WSL2 ghost-mouse fix) (#15488) - Fix: restore skills search RPC (#15870)
- Perf: cache text measurements across yoga flex re-passes (#14818)
- Perf: stabilize long-session scrolling (#15926)
- Perf: lazily seed virtual history heights (#16523)
- Perf: cut visible cold start ~57% with lazy agent init (#17190)
๐ฑ๏ธ CLI & User Experience¶
New commands¶
hermes -z <prompt>- non-interactive one-shot mode (#15702)hermes -zwith--model/--provider/HERMES_INFERENCE_MODEL(#15704)hermes update --checkpreflight flag (#15841)hermes fallbackcommand for managing fallback providers (#16052)/busyslash command for busy input mode (#15382)/busyinput mode 'steer' as a third option (#16279)/btwas alias for/background(#16053)/reload-skillsslash command (salvage #17670) (#17744)- Surface
/queue,/bg,/steerin agent-running placeholder (#16118)
Setup / onboarding¶
- Auto-reconfigure on existing installs (#15879)
- Contextual first-touch hints for
/busyand/verbose(#16046) - Cost-saving tips from the April 30 tip-of-the-day (#17841)
- Hyperlink startup banner title to the latest GitHub Release (#14945)
Update / backup¶
- Snapshot pairing data before
git pull(#16383) - Auto-backup HERMES_HOME before
hermes update(opt-in, off by default) (#16539, #16566) - Exclude
checkpoints/from backups (#16572) - Exclude SQLite WAL/SHM/journal sidecars from backups (#16576)
- Installer FHS layout for root installs on Linux (#15608)
- Fix: kill stale dashboards instead of warning (#17832)
- Fix: show correct update status on nix-built hermes (#17550)
Slash-command housekeeping¶
- Refactor: drop
/provider,/planhandler, and clean up slash registry (#15047) - Refactor: drop
persist_sessionplumbing + fix broken/btwmid-turn bypass (#16075)
OpenClaw migration (for folks coming from OpenClaw)¶
- Hardened OpenClaw import - plan-first apply, redaction, pre-migration backup (#16911)
- Fix: case-preserving brand rewrite + one-time
~/.openclawresidue banner (#16327) - Fix: resolve
openclawworkspace files fromagents.defaults.workspace(#16879) - Fix: resolve model aliases against real OpenClaw catalog schema (salvage #16778) (#16977)
๐ Web Dashboard¶
- Models tab - rich per-model analytics (#17745)
- Configure main + auxiliary models from the Models page (#17802)
- Dashboard Chat tab - xterm.js + JSON-RPC sidecar (supersedes #12710 + #13379, @OutThisLife) (#14890)
- Dashboard layout refresh (@austinpickett) (#14899)
--stopand--statusflags on the dashboard CLI (#17840)- Page-scoped plugin slots for built-in pages (#15658)
- Fix: replace all buttons for design system buttons (#17007)
โก Performance¶
- TUI visible cold start cut ~57% via lazy agent init (#17190)
- Lazy-import OpenAI, Anthropic, Firecrawl, account_usage (#17046)
- mtime-cache
load_config()andread_raw_config()(#17041) - Memoize
get_tool_definitions()+ TTL-cachecheck_fnresults (#17098) - Precompile DANGEROUS_PATTERNS and HARDLINE_PATTERNS (#17206)
- Cache Ink text measurements across yoga flex re-passes (#14818)
- Stabilize long-session scrolling (#15926)
- Lazily seed virtual history heights (#16523)
๐ Security & Reliability¶
- Secret redaction off by default - stops corrupting patches / API payloads with fake-key substitutions. Opt in via
redaction.enabled: true(#16794) [SYSTEM:โ[IMPORTANT:in all user-injected markers (Azure content filter dodge) (#16114)- Hardline blocklist for unrecoverable commands (#15878)
- Canonical
mask_secrethelper; fix status.py DIM drift (#17207) - Sweep expired paste.rs uploads on a real timer (#16431)
- Preserve symlinks during atomic file writes (#16980)
- Probe
/dev/ttyby opening it, not bare existence (#17024)
๐ Notable Bug Fixes¶
This window includes 360 fix: PRs. Selected highlights from across the stack:
- Background review fork inherits parent's live runtime - provider/model/creds now propagate correctly (#16099)
- Hindsight configurable
HINDSIGHT_TIMEOUTenv var (#15077) - Tools: normalize numeric entries + clear stale
no_mcpin_save_platform_tools(#15607) - MCP: rewrite
definitionsrefs to$defsin input schemas - closes provider-side 400s - Azure content filter compatibility - renamed
[SYSTEM:markers so Azure's content filter stops flagging them (#16114) - Vision cache uses HERMES_HOME instead of cwd (#17719)
- FTS5 search - tool_name + tool_calls indexing with repair + migration (#16914)
- Streaming reasoning persists on assistant turns (#16892)
- execute_code concurrent RPC serialization (#17770) (#17894, #17902)
- Background reviewer scoped to memory + skills toolsets - no more accidental web/shell escapes (#16569)
- Compression recovery - retry on main before giving up; notify user when aux fails (#16774, #16775)
croniterpromoted to a core dependency (#17577)- Discord tool
limitparameter coerced to int beforemin()call (#16319) - Yuanbao messaging platform entrance fix (#16880)
- ACP advertise and forward image prompts (#18030)
- DeepSeek / Kimi reasoning content isolation across cross-provider histories (@Zjianru) (#15749, #15762)
- Preserve reasoning_content replay on DeepSeek v4 + Kimi/Moonshot thinking (#18045)
The vast majority of the 360 fixes landed in the streaming/compression/tool-calling paths across all providers - DeepSeek, Kimi, Moonshot, GLM, Qwen, MiniMax, Gemini, Anthropic, OpenAI - alongside TUI polish (resize, scroll, sticky-prompt) and gateway platform-specific edge cases.
๐งช Testing & CI¶
- Hermetic test parity (
scripts/run_tests.sh) held across this window - Microsoft Teams xdist collision guard - prevents worker collisions when Teams platform tests run in parallel (#17828)
- Chore: remove unused imports and dead locals (ruff F401, F841) (#17010)
๐ Documentation¶
- Curator feature page added to docs site (#17563)
- Document pin also blocking
skill_managewrites (#17578) - Direct-URL skill install documented across features, reference, guide, and
hermes-agentskill (#16355) - Hooks tutorial - build a BOOT.md startup checklist (replaces the removed built-in hook) (#17202)
- ComfyUI docs: ask local vs cloud FIRST before hardware check (#17612)
- Obliteratus skill: link YouTube video guide in SKILL.md (#15808)
- Per-skill docs pages generated for bundled + optional skills; ASCII art code blocks auto-wrapped (#14929, #16497)
โ๏ธ Removed / Reverted¶
- Kanban multi-profile collaboration board - landed in #16081, reverted in (#16098) while the design is reworked
- computer-use cua-driver - 3 preparatory PRs landed then were reverted in (#16927)
- BOOT.md built-in hook removed (#17093); the hooks tutorial (#17202) shows how to build the same workflow yourself with a shell hook
/provider+/planslash commands dropped (#15047)flush_memoriesremoved entirely (#15696)
๐ฅ Contributors¶
Core¶
- @teknium1 (Teknium)
Top Community Contributors (by merged PR count since v0.11.0)¶
- @OutThisLife (Brooklyn) - 52 PRs ยท TUI - light-terminal detection + pluggable busy styles + auto-resume + session-delete from /resume + mouse-wheel scrolling + xterm.js dashboard Chat tab + cold-start cut + accordion polish
- @kshitijk4poor - 12 PRs ยท LM Studio first-class provider (salvage), Vercel Sandbox backend, GMI Cloud salvage, bundled-by-default touchdesigner-mcp, many tool-call / reasoning fixes
- @helix4u - 10 PRs ยท MCP schema robustness, assorted stability fixes
- @alt-glitch - 8 PRs ยท trigram FTS5 CJK search, declarative Nix plugin install, matrix/feishu hints and fixes
- @ethernet8023 - 4 PRs
- @austinpickett - 4 PRs ยท LaTeX rendering in TUI, dashboard layout refresh
- @benbarclay - 3 PRs ยท Docker run-as-host-user so bind mounts don't get root-owned
- @vominh1919 - 2 PRs
- @stephenschoettler - 2 PRs
- @kevin-ho - ConPTY mouse-injection fix (#15488)
- @Zjianru - cross-provider reasoning_content isolation + DeepSeek/Kimi empty-reasoning injection (#15749, #15762)
- @web3blind - Telegram chat allowlists for groups and forums (#15027)
- @SHL0MS - 9 new TouchDesigner-MCP reference docs (#16768)
- @0xDevNinja - curator
restore_skillnested-archive fix (#17951) - @y0shua1ee - curator
useactivity fix (#17953)
Also contributing¶
Salvaged or co-authored work from @isaachuangGMICLOUD (GMI Cloud), earlier upstream PRs from the original author of each salvage chain, and a long tail of one-shot fixes, documentation nudges, and skill contributions from the community.
All Contributors (alphabetical, excluding @teknium1)¶
@0xbyt4, @0xharryriddle, @0xDevNinja, @0z1-ghb, @5park1e, @A-FdL-Prog, @aj-nt, @akhater, @alblez, @alexg0bot, @alexzhu0, @AllardQuek, @alt-glitch, @amanning3390, @amanuel2, @AndreKurait, @andrewhosf, @Andy283, @andyylin, @angel12, @AntAISecurityLab, @ash, @austinpickett, @badgerbees, @BadTechBandit, @Bartok9, @beenherebefore, @beesrsj2500, @BeliefanX, @benbarclay, @benjaminsehl, @BlackishGreen33, @bloodcarter, @BlueBirdBack, @briandevans, @brooklynnicholson, @bsgdigital, @buray, @bwjoke, @camaragon, @cdanis, @cgarwood82, @charles-brooks, @chen1749144759, @chengoak, @ching-kaching, @Contentment003111, @crayfish-ai, @CruxExperts, @cyclingwithelephants, @dandaka, @danklynn, @ddupont808, @dhabibi, @difujia, @dimitrovi, @dlkakbs, @dontcallmejames, @EKKOLearnAI, @emozilla, @ericnicolaides, @Erosika, @ethernet8023, @exiao, @Feranmi10, @flobo3, @foxion37, @georgeglessner, @georgex8001, @ghostmfr, @H-Ali13381, @HangGlidersRule, @harryplusplus, @haru398801, @heathley, @hejuntt1014, @hekaru-agent, @helix4u, @Heltman, @HenkDz, @heyitsaamir, @hharry11, @hhhonzik, @hhuang91, @HiddenPuppy, @htsh, @iamagenius00, @in-liberty420, @innocarpe, @irispillars, @iRonin, @isaachuangGMICLOUD, @Ito-69, @j3ffffff, @jackjin1997, @jakubkrcmar, @Jason2031, @JayGwod, @jerome-benoit, @johnncenae, @Kailigithub, @keiravoss94, @kevin-ho, @knockyai, @konsisumer, @kshitijk4poor, @kunlabs, @l0hde, @Leihb, @leoneparise, @LeonSGP43, @liizfq, @liuhao1024, @loongzhao, @lsdsjy, @luyao618, @ma-pony, @Magaav, @MagicRay1217, @math0r-be, @MattMaximo, @maxims-oss, @MaxyMoos, @maymuneth, @mcndjxlefnd, @memosr, @MestreY0d4-Uninter, @mewwts, @Mirac1eSky, @MorAlekss, @mrhwick, @mrunmayee17, @mssteuer, @Nanako0129, @nazirulhafiy, @Nerijusas, @Nicecsh, @nicoloboschi, @nightq, @ningfangbin, @octo-patch, @Octopus, @OutThisLife, @Paperclip, @pein892, @perlowja, @prasadus92, @qike-ms, @qiyin-code, @Readon, @ReginaldasR, @revaraver, @rfilgueiras, @rmoen, @romanornr, @rugvedS07, @rylena, @samrusani, @Sanjays2402, @sasha-id, @Satoshi-agi, @scheidti, @scotttrinh, @season179, @SeeYangZhi, @sgaofen, @shamork, @shannonsands, @SHL0MS, @simbam99, @Societus, @socrates1024, @Sonoyunchu, @sprmn24, @stephenschoettler, @tangyuanjc, @TechPrototyper, @tekgnosis-net, @ThomassJonax, @tmimmanuel, @tochukwuada, @Tosko4, @Tranquil-Flow, @twozle, @txbxxx, @UgwujaGeorge, @Versun, @vlwkaos, @voidborne-d, @vominh1919, @Wang-tianhao, @Wangshengyang2004, @web3blind, @westers, @Wysie, @xandersbell, @xiahu88988, @XieNBi, @xinbenlv, @xnbi, @y0shua1ee, @yatesjalex, @yes999zc, @yeyitech, @Yoimex, @YueLich, @Yukipukii1, @zhiyanliu, @zicochaos, @Zjianru, @zkl2333, @zons-zhaozhy, @ztexydt-cqh.
Also: @Siddharth Balyan, @YuShu.
Full Changelog: v2026.4.23...v2026.4.30
Frequently Asked Questions¶
What changed in Hermes Agent v0.12.0?¶
The Curator release - Hermes Agent now maintains itself. An autonomous background Curator grades, prunes, and consolidates your skill library on its own schedule. The self-improvement loop that reviews what...
When was Hermes Agent v0.12.0 released?¶
April 30, 2026
โ v0.11.0 - Patch Release | v0.13.0 - Patch Release โ
โ Changelog Home
This Hermes repo is one of the largest structured collections of public AI, automation, business, and technology documentation. Content remains attributed to original authors and repositories. Indexed and organized by www.CorpusIQ.io.