NousResearch/hermes-agent · Monthly · Jun 01, 2026 - Jun 30, 2026

Hermes Agent June 2026 Update: Computer-Use Reliability, Desktop Timeline Rail, Honcho OAuth, CI Overhaul, and /learn Skills

Commits summarized
1,206
Period
Jun 01 - Jun 30, 2026
Published
Jul 01, 2026

Hermes Agent Monthly Development Update — June 2026

A highlight report covering selected commits from 1–30 June 2026. This month brought major improvements to computer-use reliability, desktop UX (timeline rail, tool previews), memory-provider OAuth, CI efficiency, subagent visibility, Slack/Discord/Telegram fixes, and a new /learn skill-distillation feature.

🖥️ Computer-Use & Desktop

CUA Driver & Subprocess Hardening

  • stdin guard for subprocess calls — set DEVNULL on cua-driver subprocess calls to prevent TUI gateway fd-inheritance issues (3c1058e).
  • Windows UIPI limitation documented — added docs explaining that Medium-integrity agents cannot drive High-integrity (admin) windows; the limitation is an OS constraint affecting all Windows automation stacks (#51121).
  • Vision capture fix for cua-driver >=0.5.x — ensures screenshots return images correctly (760fd95).
  • Whole-screen & desktop target on Windows — merged support for selecting entire-screen capture targets (672ea1f).

Desktop UI

Conversation Timeline Rail

  • Timeline rail for long threads — a compact right-edge prompt timeline with hover previews and click-to-jump navigation (3fffecb, merged in #51094).

Tool Previews & Status Stack

  • Stop auto-opening tool previews — HTML artifacts from tool results no longer pop open automatically (cb17a9e).
  • Manual preview toggle & open-in-browser — status row opens/closes preview pane; external links use a dedicated file bridge (48a8f84).
  • Previewable artifacts in composer status — detected tool results feed a session-scoped store with compact rows above the composer (d0af7fc).

Visual Polish

  • Stack overflow fix on image replay — replaced a giant embedded-image regex with a bounded scanner to prevent crashes on multi-megabyte data URLs (a6b670d).
  • Anthropic-native image shrink — retry image-size rejections by rewriting Anthropic base64 image source blocks (88e1364).
  • Styled tooltips — replaced native title tooltips with a styled Tip component (9fd2b2c).
  • Softened inline code and expanded tool chrome — dropped inline-code border and halved expanded tool block radius (7daa6d8).

Cross-platform Readiness Preflight

  • Computer-use readiness check — added a cross-platform preflight to verify required dependencies before enabling computer-use features (6780cee).

🧠 Agent Core & Skills

/learn — Distill a Reusable Skill

  • Open-ended skill learning/learn <free text> gathers information using existing tools (read/search files, web extract, conversation context) and auto-authors a standards-compliant SKILL.md. Works on any terminal backend (local, Docker, remote) with no engine overhead (#51506).

One-shot LLM Helper

  • llm.oneshot gateway RPC — stateless model calls outside any conversation for commit messages, rename suggestions, or summaries. Ships with a commit_message template; model selection inherits the live session or configured aux backend (#51261).

Coding Context as Structured Data

  • project.facts RPC — exposes coding-context project facts as structured data (manifest, package manager, test/lint/build commands) for non-prompt consumers like the desktop verify UI, keeping a single source of truth (#51259).

Tool Call Persistence

  • Persist tool calls before turn-end flush — ensures tool invocations are saved to the session history even if the turn ends abruptly (190b01c).
  • Concurrent tool submit shutdown handling — graceful handling when multiple tool submissions race at shutdown (292a456).

🔗 Relay & Gateway

Relevance Policy Declaration

  • Relay relevance policy — projects the agent's mention-gating, free-response, and allow-bots settings into the connector's vocabulary and declares them at boot over /relay/policy so relay delivery respects the same rules. Self-healing on restart, non-blocking on failure. Completes Phase 6 end-to-end (#51248).

Session Identity & Stale Lock Healing

  • Preserve session identity across compression — when compression rotates a session ID, the live-session lease is reliably transferred, preventing forked lineages and cross-session message mixing (#49041).
  • Stale session lock healing — reorders cleanup to preserve _session_tasks entries on guard mismatch so stale locks are detected and healed on the next inbound message (#48300).

Discord Double Dispatch Fix

  • Thread-starter dedup — pre-seeds the dedup cache with the new thread ID after _auto_create_thread succeeds, preventing Discord's duplicate MESSAGE_CREATE event from triggering a second agent run and response (#51057).

Model Switch Guard

  • Refuse model switch on stale checkout — prevents env_float ImportErrors when switching models on a stale code checkout (fyzanshaik).

💬 Platform Integrations

Slack

  • Voice clip transcription — fixes handling of in-app audio messages (audio/mp4 containers) that were previously cached with the wrong extension, causing STT rejection (#29221).
  • Accurate MIME reporting for rerouted voice clips — replaces a dead dict lookup with a proper extension-to-mime map (5ecf3bf).
  • --no-assistant flag for manifest generation — opt out of Slack's AI Assistant split-pane mode for flat DM manifests (#51168).

Discord

  • Reasoning rendering as subtext — new display.reasoning_style setting with subtext option for Discord (renders as -# small grey metadata) and code/blockquote for other platforms (89e5728).

Telegram

  • CLOSE_WAIT fd leak fix — wires keepalive limits into the general HTTPX request pool to prevent file descriptor leaks behind HTTP proxies (#31599).

💾 Memory & OAuth

Honcho OAuth Connect

  • End-to-end OAuth support — desktop and CLI flows with token refresh, OS-assigned loopback port fallback, cross-process lock around refresh to prevent grant revocation, and surface-specific client ID support (#44335).
  • Session resolution fix — stable identifiers (gateway per-chat key, session ID) always win over titles, preventing mid-stream session remapping (ba9e3a4).

🧰 MCP & Tools

MCP Killpg Guard

  • Skip killpg when child shares gateway's process group — prevents /reload-mcp from crashing the gateway by self-signaling when an MCP stdio child happens to share the gateway's process group (#47134).

🖥️ CLI & TUI

Background Subagent Tracking

  • CLI status bar — new ⛓ N indicator showing live background/async subagents from delegate_task batches (#51441).
  • TUI status bar parity — same ⛓ N segment in the Ink TUI status bar for background subagent visibility (#51485).

⚙️ CI & Installer

CI Overhaul

  • Orchestrator-based CI — single ci.yml that classifies PR changes and conditionally runs only relevant lanes (python, frontend, site, scan, deps, mcp_catalog) with a final all-checks-pass gate for branch protection (05c896c).
  • Docker build gating — image build + smoke test + integration suite now runs on main+release only, not on every PR (2977e74).
  • Transient flake resilience — new reusable retry action wraps all network-dependent installs (npm ci, uv sync) for PR jobs (56b4ef7).
  • Deprecated Windows installer job removed — dropped unused workflow (c820eb6).

Installer Fix

  • Drop system-browser fallback — the installer no longer scans PATH for Chrome/Chromium (which resolved to snap/sandboxed binaries on Snap-based systems), and auto-repairs existing stale snap overrides on update (#31234).

☁️ Provider Support

Ollama Cloud Reasoning Effort

  • DeepSeek V4 'Max thinking' tier — maps Hermes xhigh→max to unlock extended thinking through Ollama Cloud's OpenAI-compatible endpoint. Empirically confirmed ~2.5× more thinking tokens at max vs high (#29221).

🪟 Windows

  • Hardened gateway scheduled task — launched via console-less wscript for more reliable background operation (#45610).

🧪 Cron & Housekeeping

  • Revert cron storage to per-profile — returns cron job storage to per-profile roots, undoing the earlier change that anchored it at the default root home (#51116).

This post covers a selection of ~200 commit summaries from the 1,206 commits in the June 2026 window. For the complete changelog, see the Hermes Agent repository.

Repository updates

Follow future updates

Get generated NousResearch/hermes-agent development summaries by email, or follow the weekly and monthly RSS feeds.

Sign in to subscribe by email. RSS feeds are public.

Sign in to subscribe