← Back to blog

Hermes X Roundup: August 8, 2026

hermesrounduphooksclisecurity
Hermes X Roundup: August 8, 2026

X API v2 returned 402 Payment Required on all search queries today. The roundup is sourced from GitHub - 37 feature and performance PRs merged in the last 48 hours.

Fail-closed hook semantics (#80782)

Shell hooks now have Cursor-compatible failure semantics. Before this PR, a pre_tool_call hook that crashed or timed out would silently allow the action it was meant to vet. A broken secret-scanner running as a hook was invisible.

Two changes fix this:

  • Exit code 2 = block. A pre_tool_call hook that exits with code 2 now blocks the tool call even without block JSON on stdout. This matches Cursor and Claude Code behaviour.
  • fail_closed: true option. Per-entry configuration that turns hook crashes, timeouts, or garbage output into blocks instead of silent fail-open.

The PR added 271 lines of tests across 4 files (agent/shell_hooks.py, hermes_cli/hooks.py, tests, and docs). The docs update in website/docs/user-guide/features/hooks.md documents both the exit-code-2 convention and the fail_closed option.

teknium1 authored this, describing it as "Inspired by Cursor." The total: +491/-31 across 4 files.

AGENTS.md directory chain (#80781)

Sessions launched deep inside a monorepo now see the full AGENTS.md chain - from git root down through every intermediate directory to the current working directory. Before this change, only the single cwd file was loaded.

This is a port of superagent-ai/grok-cli's directoryChain and loadAgentsSegments functions from src/utils/instructions.ts.

The implementation lives in agent/prompt_builder.py and merges each AGENTS.md segment into the system prompt at session build. A project with three AGENTS.md files - at git root, backend/, and backend/api/ - now loads all three, in that order.

+158/-14 across 3 files, with 66 lines of test coverage.

Slash-menu fuzzy scoring (#80780)

Typing /summary in the TUI now surfaces commands whose descriptions mention summaries. /beat finds /heartbeat. Name matches always outrank description matches.

The scorer is shared across both the TUI client and the gateway completer, using a tiered system: exact match > prefix match > substring name match > description match. This is ported from grok-cli's src/ui/slash-menu.ts.

+440/-12 across 8 files. The shared-scorer approach means the TUI and gateway stay in sync without duplicated logic.

--resume latest and --in DIR (#81265)

hermes --tui --resume latest --in ./dir is now a single command. latest resolves the most recent session, and --in DIR sets the working directory before session launch. No session ID to remember, no cd first.

This was a community request from @Jeff9James. The implementation validates the directory before any session state is touched, so a typo in the path fails fast.

+331/-3 across 7 files.

Also merged today

  • #81740 - Google Workspace daily-brief workflow folded into google-workspace skill references (salvage of #78671 by @benbarclay).
  • #81733 - PDF unreadable-gap warnings now labelled with preceding section text, so the agent can decide which gaps are material.
  • #81706 - FAL Nano Banana 2 image generation model added.
  • #81708 - github-issue-to-pr skill added (salvage of #78670).
  • #81687 - Seedance 2.5, MiniMax H3, and 8 new FAL video/image models.

37 feature and performance PRs merged in total. The hooks PR is the standout - shell hooks moving from development convenience to production safety net.

[^1]: teknium1. "Inspired by Cursor: fail-closed hook semantics + exit-code-2 blocking." nousresearch/hermes-agent. August 8, 2026. [^2]: teknium1. "feat(context-files): merged AGENTS.md directory chain from git root to cwd." nousresearch/hermes-agent. August 8, 2026. [^3]: teknium1. "Port from superagent-ai/grok-cli: description-aware slash-menu fuzzy scoring." nousresearch/hermes-agent. August 8, 2026. [^4]: teknium1. "feat: --resume latest keyword and --in DIR launch flag." nousresearch/hermes-agent. August 8, 2026.

Termagotchi
_

Ryan Underdown

Autodidact. Rarely listens to advice.

Follow on X @catamarammed or GitHub @underdown