Skip to content

Latest commit

Β 

History

History
346 lines (277 loc) Β· 35.2 KB

File metadata and controls

346 lines (277 loc) Β· 35.2 KB

Hermes Agent v0.8.0 (v2026.4.8)

Release Date: April 8, 2026

The intelligence release β€” background task auto-notifications, free MiMo v2 Pro on Nous Portal, live model switching across all platforms, self-optimized GPT/Codex guidance, native Google AI Studio, smart inactivity timeouts, approval buttons, MCP OAuth 2.1, and 209 merged PRs with 82 resolved issues.


✨ Highlights

  • Background Process Auto-Notifications (notify_on_complete) β€” Background tasks can now automatically notify the agent when they finish. Start a long-running process (AI model training, test suites, deployments, builds) and the agent gets notified on completion β€” no polling needed. The agent can keep working on other things and pick up results when they land. (#5779)

  • Free Xiaomi MiMo v2 Pro on Nous Portal β€” Nous Portal now supports the free-tier Xiaomi MiMo v2 Pro model for auxiliary tasks (compression, vision, summarization), with free-tier model gating and pricing display in model selection. (#6018, #5880)

  • Live Model Switching (/model Command) β€” Switch models and providers mid-session from CLI, Telegram, Discord, Slack, or any gateway platform. Aggregator-aware resolution keeps you on OpenRouter/Nous when possible, with automatic cross-provider fallback when needed. Interactive model pickers on Telegram and Discord with inline buttons. (#5181, #5742)

  • Self-Optimized GPT/Codex Tool-Use Guidance β€” The agent diagnosed and patched 5 failure modes in GPT and Codex tool calling through automated behavioral benchmarking, dramatically improving reliability on OpenAI models. Includes execution discipline guidance and thinking-only prefill continuation for structured reasoning. (#6120, #5414, #5931)

  • Google AI Studio (Gemini) Native Provider β€” Direct access to Gemini models through Google's AI Studio API. Includes automatic models.dev registry integration for real-time context length detection across any provider. (#5577)

  • Inactivity-Based Agent Timeouts β€” Gateway and cron timeouts now track actual tool activity instead of wall-clock time. Long-running tasks that are actively working will never be killed β€” only truly idle agents time out. (#5389, #5440)

  • Approval Buttons on Slack & Telegram β€” Dangerous command approval via native platform buttons instead of typing /approve. Slack gets thread context preservation; Telegram gets emoji reactions for approval status. (#5890, #5975)

  • MCP OAuth 2.1 PKCE + OSV Malware Scanning β€” Full standards-compliant OAuth for MCP server authentication, plus automatic malware scanning of MCP extension packages via the OSV vulnerability database. (#5420, #5305)

  • Centralized Logging & Config Validation β€” Structured logging to ~/.hermes/logs/ (agent.log + errors.log) with the hermes logs command for tailing and filtering. Config structure validation catches malformed YAML at startup before it causes cryptic failures. (#5430, #5426)

  • Plugin System Expansion β€” Plugins can now register CLI subcommands, receive request-scoped API hooks with correlation IDs, prompt for required env vars during install, and hook into session lifecycle events (finalize/reset). (#5295, #5427, #5470, #6129)

  • Matrix Tier 1 & Platform Hardening β€” Matrix gets reactions, read receipts, rich formatting, and room management. Discord adds channel controls and ignored channels. Signal gets full MEDIA: tag delivery. Mattermost gets file attachments. Comprehensive reliability fixes across all platforms. (#5275, #5975, #5602)

  • Security Hardening Pass β€” Consolidated SSRF protections, timing attack mitigations, tar traversal prevention, credential leakage guards, cron path traversal hardening, and cross-session isolation. Terminal workdir sanitization across all backends. (#5944, #5613, #5629)


πŸ—οΈ Core Agent & Architecture

Provider & Model Support

  • Native Google AI Studio (Gemini) provider with models.dev integration for automatic context length detection (#5577)
  • /model command β€” full provider+model system overhaul β€” live switching across CLI and all gateway platforms with aggregator-aware resolution (#5181)
  • Interactive model picker for Telegram and Discord β€” inline button-based model selection (#5742)
  • Nous Portal free-tier model gating with pricing display in model selection (#5880)
  • Model pricing display for OpenRouter and Nous Portal providers (#5416)
  • xAI (Grok) prompt caching via x-grok-conv-id header (#5604)
  • Grok added to tool-use enforcement models for direct xAI usage (#5595)
  • MiniMax TTS provider (speech-2.8) (#4963)
  • Non-agentic model warning β€” warns users when loading Hermes LLM models not designed for tool use (#5378)
  • Ollama Cloud auth, /model switch persistence, and alias tab completion (#5269)
  • Preserve dots in OpenCode Go model names (minimax-m2.7, glm-4.5, kimi-k2.5) (#5597)
  • MiniMax models 404 fix β€” strip /v1 from Anthropic base URL for OpenCode Go (#4918)
  • Provider credential reset windows honored in pooled failover (#5188)
  • OAuth token sync between credential pool and credentials file (#4981)
  • Stale OAuth credentials no longer block OpenRouter users on auto-detect (#5746)
  • Codex OAuth credential pool disconnect + expired token import fix (#5681)
  • Codex pool entry sync from ~/.codex/auth.json on exhaustion β€” @GratefulDave (#5610)
  • Auxiliary client payment fallback β€” retry with next provider on 402 (#5599)
  • Auxiliary client resolves named custom providers and 'main' alias (#5978)
  • Use mimo-v2-pro for non-vision auxiliary tasks on Nous free tier (#6018)
  • Vision auto-detection tries main provider first (#6041)
  • Provider re-ordering and Quick Install β€” @austinpickett (#4664)
  • Nous OAuth access_token no longer used as inference API key β€” @SHL0MS (#5564)
  • HERMES_PORTAL_BASE_URL env var respected during Nous login β€” @benbarclay (#5745)
  • Env var overrides for Nous portal/inference URLs (#5419)
  • Z.AI endpoint auto-detect via probe and cache (#5763)
  • MiniMax context lengths, model catalog, thinking guard, aux model, and config base_url corrections (#6082)
  • Community provider/model resolution fixes β€” salvaged 4 community PRs + MiniMax aux URL (#5983)

Agent Loop & Conversation

  • Self-optimized GPT/Codex tool-use guidance via automated behavioral benchmarking β€” agent self-diagnosed and patched 5 failure modes (#6120)
  • GPT/Codex execution discipline guidance in system prompts (#5414)
  • Thinking-only prefill continuation for structured reasoning responses (#5931)
  • Accept reasoning-only responses without retries β€” set content to "(empty)" instead of infinite retry (#5278)
  • Jittered retry backoff β€” exponential backoff with jitter for API retries (#6048)
  • Smart thinking block signature management β€” preserve and manage Anthropic thinking signatures across turns (#6112)
  • Coerce tool call arguments to match JSON Schema types β€” fixes models that send strings instead of numbers/booleans (#5265)
  • Save oversized tool results to file instead of destructive truncation (#5210)
  • Sandbox-aware tool result persistence (#6085)
  • Streaming fallback improved after edit failures (#6110)
  • Codex empty-output gaps covered in fallback + normalizer + auxiliary client (#5724, #5730, #5734)
  • Codex stream output backfill from output_item.done events (#5689)
  • Stream consumer creates new message after tool boundaries (#5739)
  • Codex validation aligned with normalization for empty stream output (#5940)
  • Bridge tool-calls in copilot-acp adapter (#5460)
  • Filter transcript-only roles from chat-completions payload (#4880)
  • Context compaction failures fixed on temperature-restricted models β€” @MadKangYu (#5608)
  • Sanitize tool_calls for all strict APIs (Fireworks, Mistral, etc.) β€” @lumethegreat (#5183)

Memory & Sessions

  • Supermemory memory provider β€” new memory plugin with multi-container, search_mode, identity template, and env var override (#5737, #5933)
  • Shared thread sessions by default β€” multi-user thread support across gateway platforms (#5391)
  • Subagent sessions linked to parent and hidden from session list (#5309)
  • Profile-scoped memory isolation and clone support (#4845)
  • Thread gateway user_id to memory plugins for per-user scoping (#5895)
  • Honcho plugin drift overhaul + plugin CLI registration system (#5295)
  • Honcho holographic prompt and trust score rendering preserved (#4872)
  • Honcho doctor fix β€” use recall_mode instead of memory_mode β€” @techguysimon (#5645)
  • RetainDB β€” API routes, write queue, dialectic, agent model, file tools fixes (#5461)
  • Hindsight memory plugin overhaul + memory setup wizard fixes (#5094)
  • mem0 API v2 compat, prefetch context fencing, secret redaction (#5423)
  • mem0 env vars merged with mem0.json instead of either/or (#4939)
  • Clean user message used for all memory provider operations (#4940)
  • Silent memory flush failure on /new and /resume fixed β€” @ryanautomated (#5640)
  • OpenViking atexit safety net for session commit (#5664)
  • OpenViking tenant-scoping headers for multi-tenant servers (#4936)
  • ByteRover brv query runs synchronously before LLM call (#4831)

πŸ“± Messaging Platforms (Gateway)

Gateway Core

  • Inactivity-based agent timeout β€” replaces wall-clock timeout with smart activity tracking; long-running active tasks never killed (#5389)
  • Approval buttons for Slack & Telegram + Slack thread context preservation (#5890)
  • Live-stream /update output + forward interactive prompts to user (#5180)
  • Infinite timeout support + periodic notifications + actionable error messages (#4959)
  • Duplicate message prevention β€” gateway dedup + partial stream guard (#4878)
  • Webhook delivery_info persistence + full session id in /status (#5942)
  • Tool preview truncation respects tool_preview_length in all/new progress modes (#5937)
  • Short preview truncation restored for all/new tool progress modes (#4935)
  • Update-pending state written atomically to prevent corruption (#4923)
  • Approval session key isolated per turn (#4884)
  • Active-session guard bypass for /approve, /deny, /stop, /new (#4926, #5765)
  • Typing indicator paused during approval waits (#5893)
  • Caption check uses exact line-by-line match instead of substring (all platforms) (#5939)
  • MEDIA: tags stripped from streamed gateway messages (#5152)
  • MEDIA: tags extracted from cron delivery before sending (#5598)
  • Profile-aware service units + voice transcription cleanup (#5972)
  • Thread-safe PairingStore with atomic writes β€” @CharlieKerfoot (#5656)
  • Sanitize media URLs in base platform logs β€” @WAXLYY (#5631)
  • Reduce Telegram fallback IP activation log noise β€” @MadKangYu (#5615)
  • Cron static method wrappers to prevent self-binding (#5299)
  • Stale 'hermes login' replaced with 'hermes auth' + credential removal re-seeding fix (#5670)

Telegram

  • Group topics skill binding for supergroup forum topics (#4886)
  • Emoji reactions for approval status and notifications (#5975)
  • Duplicate message delivery prevented on send timeout (#5153)
  • Command names sanitized to strip invalid characters (#5596)
  • Per-platform disabled skills respected in Telegram menu and gateway dispatch (#4799)
  • /approve and /deny routed through running-agent guard (#4798)

Discord

  • Channel controls β€” ignored_channels and no_thread_channels config options (#5975)
  • Skills registered as native slash commands via shared gateway logic (#5603)
  • /approve, /deny, /queue, /background, /btw registered as native slash commands (#4800, #5477)
  • Unnecessary members intent removed on startup + token lock leak fix (#5302)

Slack

  • Thread engagement β€” auto-respond in bot-started and mentioned threads (#5897)
  • mrkdwn in edit_message + thread replies without @mentions (#5733)

Matrix

  • Tier 1 feature parity β€” reactions, read receipts, rich formatting, room management (#5275)
  • MATRIX_REQUIRE_MENTION and MATRIX_AUTO_THREAD support (#5106)
  • Comprehensive reliability β€” encrypted media, auth recovery, cron E2EE, Synapse compat (#5271)
  • CJK input, E2EE, and reconnect fixes (#5665)

Signal

  • Full MEDIA: tag delivery β€” send_image_file, send_voice, and send_video implemented (#5602)

Mattermost

  • File attachments β€” set message type to DOCUMENT when post has file attachments β€” @nericervin (#5609)

Feishu

  • Interactive card approval buttons (#6043)
  • Reconnect and ACL fixes (#5665)

Webhooks

  • {__raw__} template token and thread_id passthrough for forum topics (#5662)

πŸ–₯️ CLI & User Experience

Interactive CLI

  • Defer response content until reasoning block completes (#5773)
  • Ghost status-bar lines cleared on terminal resize (#4960)
  • Normalise \r\n and \r line endings in pasted text (#4849)
  • ChatConsole errors, curses scroll, skin-aware banner, git state banner fixes (#5974)
  • Native Windows image paste support (#5917)
  • --yolo and other flags no longer silently dropped when placed before 'chat' subcommand (#5145)

Setup & Configuration

  • Config structure validation β€” detect malformed YAML at startup with actionable error messages (#5426)
  • Centralized logging to ~/.hermes/logs/ β€” agent.log (INFO+), errors.log (WARNING+) with hermes logs command (#5430)
  • Docs links added to setup wizard sections (#5283)
  • Doctor diagnostics β€” sync provider checks, config migration, WAL and mem0 diagnostics (#5077)
  • Timeout debug logging and user-facing diagnostics improved (#5370)
  • Reasoning effort unified to config.yaml only (#6118)
  • Permanent command allowlist loaded on startup (#5076)
  • hermes auth remove now clears env-seeded credentials permanently (#5285)
  • Bundled skills synced to all profiles during update (#5795)
  • hermes update no longer kills freshly-restarted gateway service (#5448)
  • Subprocess.run() timeouts added to all gateway CLI commands (#5424)
  • Actionable error message when Codex refresh token is reused β€” @tymrtn (#5612)
  • Google-workspace skill scripts can now run directly β€” @xinbenlv (#5624)

Cron System

  • Inactivity-based cron timeout β€” replaces wall-clock; active tasks run indefinitely (#5440)
  • Pre-run script injection for data collection and change detection (#5082)
  • Delivery failure tracking in job status (#6042)
  • Delivery guidance in cron prompts β€” stops send_message thrashing (#5444)
  • MEDIA files delivered as native platform attachments (#5921)
  • [SILENT] suppression works anywhere in response β€” @auspic7 (#5654)
  • Cron path traversal hardening (#5147)

πŸ”§ Tool System

Terminal & Execution

  • Execute_code on remote backends β€” code execution now works on Docker, SSH, Modal, and other remote terminal backends (#5088)
  • Exit code context for common CLI tools in terminal results β€” helps agent understand what went wrong (#5144)
  • Progressive subdirectory hint discovery β€” agent learns project structure as it navigates (#5291)
  • notify_on_complete for background processes β€” get notified when long-running tasks finish (#5779)
  • Docker env config β€” explicit container environment variables via docker_env config (#4738)
  • Approval metadata included in terminal tool results (#5141)
  • Workdir parameter sanitized in terminal tool across all backends (#5629)
  • Detached process crash recovery state corrected (#6101)
  • Agent-browser paths with spaces preserved β€” @Vasanthdev2004 (#6077)
  • Portable base64 encoding for image reading on macOS β€” @CharlieKerfoot (#5657)

Browser

  • Switch managed browser provider from Browserbase to Browser Use β€” @benbarclay (#5750)
  • Firecrawl cloud browser provider β€” @alt-glitch (#5628)
  • JS evaluation via browser_console expression parameter (#5303)
  • Windows browser fixes (#5665)

MCP

  • MCP OAuth 2.1 PKCE β€” full standards-compliant OAuth client support (#5420)
  • OSV malware check for MCP extension packages (#5305)
  • Prefer structuredContent over text + no_mcp sentinel (#5979)
  • Unknown toolsets warning suppressed for MCP server names (#5279)

Web & Files

  • .zip document support + auto-mount cache dirs into remote backends (#4846)
  • Redact query secrets in send_message errors β€” @WAXLYY (#5650)

Delegation

  • Credential pool sharing + workspace path hints for subagents (#5748)

ACP (VS Code / Zed / JetBrains)

  • Aggregate ACP improvements β€” auth compat, protocol fixes, command ads, delegation, SSE events (#5292)

🧩 Skills Ecosystem

Skills System

  • Skill config interface β€” skills can declare required config.yaml settings, prompted during setup, injected at load time (#5635)
  • Plugin CLI registration system β€” plugins register their own CLI subcommands without touching main.py (#5295)
  • Request-scoped API hooks with tool call correlation IDs for plugins (#5427)
  • Session lifecycle hooks β€” on_session_finalize and on_session_reset for CLI + gateway (#6129)
  • Prompt for required env vars during plugin install β€” @kshitijk4poor (#5470)
  • Plugin name validation β€” reject names that resolve to plugins root (#5368)
  • pre_llm_call plugin context moved to user message to preserve prompt cache (#5146)

New & Updated Skills

  • popular-web-designs β€” 54 production website design systems (#5194)
  • p5js creative coding β€” @SHL0MS (#5600)
  • manim-video β€” mathematical and technical animations β€” @SHL0MS (#4930)
  • llm-wiki β€” Karpathy's LLM Wiki skill (#5635)
  • gitnexus-explorer β€” codebase indexing and knowledge serving (#5208)
  • research-paper-writing β€” AI-Scientist & GPT-Researcher patterns β€” @SHL0MS (#5421)
  • blogwatcher updated to JulienTant's fork (#5759)
  • claude-code skill comprehensive rewrite v2.0 + v2.2 (#5155, #5158)
  • Code verification skills consolidated into one (#4854)
  • Manim CE reference docs expanded β€” geometry, animations, LaTeX β€” @leotrs (#5791)
  • Manim-video references β€” design thinking, updaters, paper explainer, decorations, production quality β€” @SHL0MS (#5588, #5408)

πŸ”’ Security & Reliability

Security Hardening

  • Consolidated security β€” SSRF protections, timing attack mitigations, tar traversal prevention, credential leakage guards (#5944)
  • Cross-session isolation + cron path traversal hardening (#5613)
  • Workdir parameter sanitized in terminal tool across all backends (#5629)
  • Approval 'once' session escalation prevented + cron delivery platform validation (#5280)
  • Profile-scoped Google Workspace OAuth tokens protected (#4910)

Reliability

  • Aggressive worktree and branch cleanup to prevent accumulation (#6134)
  • O(nΒ²) catastrophic backtracking in redact regex fixed β€” 100x improvement on large outputs (#4962)
  • Runtime stability fixes across core, web, delegate, and browser tools (#4843)
  • API server streaming fix + conversation history support (#5977)
  • OpenViking API endpoint paths and response parsing corrected (#5078)

πŸ› Notable Bug Fixes

  • 9 community bugfixes salvaged β€” gateway, cron, deps, macOS launchd in one batch (#5288)
  • Batch core bug fixes β€” model config, session reset, alias fallback, launchctl, delegation, atomic writes (#5630)
  • Batch gateway/platform fixes β€” matrix E2EE, CJK input, Windows browser, Feishu reconnect + ACL (#5665)
  • Stale test skips removed, regex backtracking, file search bug, and test flakiness (#4969)
  • Nix flake β€” read version, regen uv.lock, add hermes_logging β€” @alt-glitch (#5651)
  • Lowercase variable redaction regression tests (#5185)

πŸ§ͺ Testing

  • 57 failing CI tests repaired across 14 files (#5823)
  • Test suite re-architecture + CI failure fixes β€” @alt-glitch (#5946)
  • Codebase-wide lint cleanup β€” unused imports, dead code, and inefficient patterns (#5821)
  • browser_close tool removed β€” auto-cleanup handles it (#5792)

πŸ“š Documentation

  • Comprehensive documentation audit β€” fix stale info, expand thin pages, add depth (#5393)
  • 40+ discrepancies fixed between documentation and codebase (#5818)
  • 13 features documented from last week's PRs (#5815)
  • Guides section overhaul β€” fix existing + add 3 new tutorials (#5735)
  • Salvaged 4 docs PRs β€” docker setup, post-update validation, local LLM guide, signal-cli install (#5727)
  • Discord configuration reference (#5386)
  • Community FAQ entries for common workflows and troubleshooting (#4797)
  • WSL2 networking guide for local model servers (#5616)
  • Honcho CLI reference + plugin CLI registration docs (#5308)
  • Obsidian Headless setup for servers in llm-wiki (#5660)
  • Hermes Mod visual skin editor added to skins page (#6095)

πŸ‘₯ Contributors

Core

  • @teknium1 β€” 179 PRs

Top Community Contributors

  • @SHL0MS (7 PRs) β€” p5js creative coding skill, manim-video skill + 5 reference expansions, research-paper-writing, Nous OAuth fix, manim font fix
  • @alt-glitch (3 PRs) β€” Firecrawl cloud browser provider, test re-architecture + CI fixes, Nix flake fixes
  • @benbarclay (2 PRs) β€” Browser Use managed provider switch, Nous portal base URL fix
  • @CharlieKerfoot (2 PRs) β€” macOS portable base64 encoding, thread-safe PairingStore
  • @WAXLYY (2 PRs) β€” send_message secret redaction, gateway media URL sanitization
  • @MadKangYu (2 PRs) β€” Telegram log noise reduction, context compaction fix for temperature-restricted models

All Contributors

@alt-glitch, @austinpickett, @auspic7, @benbarclay, @CharlieKerfoot, @GratefulDave, @kshitijk4poor, @leotrs, @lumethegreat, @MadKangYu, @nericervin, @ryanautomated, @SHL0MS, @techguysimon, @tymrtn, @Vasanthdev2004, @WAXLYY, @xinbenlv


Full Changelog: v2026.4.3...v2026.4.8