
Why a Brand-New Skill Returns Zero Results in a Search
Unfiltered skill search is answered from a periodically rebuilt central index, so a skill published minutes ago can be missing even though it exists. Changes from September 16-18 close the gap: an index miss now re-queries skills.sh, ClawHub, LobeHub and well-known endpoints within an 8-second budget, and the index build no longer silently drops skills when a shard times out.
Read more
Commanding Your Agent From a Train: A Field Guide to the Community WebUI
Hermes WebUI is a community project with roughly 18K stars that puts the CLI's capabilities in a browser: Python plus vanilla JS, no build step, bound to localhost by default, with SSH tunnels or Tailscale for phone access and optional password, passkey, or OIDC sign-in. Here is how to install it, expose it safely, and where its edges are.
Read more
Why Opening a Dropdown Costs You Three Seconds
A spinner in the model picker, a `hermes plugins list` that hangs, a Profiles panel that drops frames — three unrelated-looking stalls with one cause: the read path was quietly doing network probes and filesystem walks. PRs #114994, #114811 and #114879 moved the caching, the failure memory and the refreshes off that path.
Read more
Hermes No Longer Fetches Whatever URL Someone Handed It
Image URLs returned by a generation provider, reference images a model supplies, pet-store manifests and spritesheets, skills.sh sitemap entries — none of these URLs come from you. PR #114887 routes seven fetch sites through the repository's existing SSRF guard: check before the fetch, re-check at TCP connect (closing the DNS-rebinding window), re-check every redirect hop, and fail closed on a 3xx with no Location header.
Read more
The API Key You Printed Once Should Not End Up in a Chat Log
Two fixes landed the same day to close two seams in secret leakage: PR #114839 makes dotted sk- keys and Zhipu's prefix-less id.secret keys fully masked in tool output, and PR #114789 forces redaction on every cron delivery lane — chat, session mirror, job name, bot chat — failing closed instead of shipping the raw text.
Read more
Your Memory Provider Moved Out of Core — the Upgrade Puts It Back
Built-in memory providers are moving to their maintainers' repos and the plugin catalog. PR #114569 adds two hooks: hermes update and agent init both notice a configured provider whose code is gone and reinstall it at the catalog's reviewed pin. Name, memory.<name> config, data directory and tool names all stay the same.
Read more
1,393 Subagents, 19 Hours, One Desktop: How Nous Refactored a Million Lines with Hermes
One /goal, 19 hours and 1,393 subagents cut 34.4% of the source lines out of Hermes' own repo. Here are the official measurements, the nine things that break at scale, and the steps to repeat it in your own codebase.
Read more
One 16 KB Script Froze a Gateway for 23 Seconds: The Command-Scan Postmortem
Hand Hermes a few-hundred-line heredoc and your Telegram bot stops answering — a synchronous regex is holding the event loop. Issue #113535 and PR #114208 explain the O(n³) path and why the fixed version reaches identical verdicts.
Read more
Stop Letting Images Eat Your Quota: The Two Vision Knobs Worth Knowing
Natively embedded images are re-sent on every later API call, and the old retire policy could rewrite 120,000 tokens of history just to drop one image. PRs #113953 and #113817 fixed both and added vision.embed_target_bytes and max_calls_per_image.
Read more
The Second Model You Never Configured: Hermes' Auxiliary Call Lane
Session titles that turn into JSON fragments, approvals that stop being smart, agonising compression with a local model — the fault is often not your main model but one of 13 named auxiliary tasks. Here is the config shape, the global knobs, and the silent-failure fixes merged on 17 September.
Read more
Your Agent Can Byte-Wreck a Live SQLite Database — Now Hermes Refuses the Write
write_file and patch used to read a .db-wal sidecar as ordinary text and write the mojibake back, silently destroying a live SQLite database. PR #114220 adds a sidecar write guard at the tool layer. Here is how the damage happened, what changed, and whether your version has it.
Read more
hermes doctor's Large-WAL Warning Is Now Honest
hermes doctor used to tell you to run --fix on a >50 MB state.db WAL without checking for a live writer. PR #113055 makes that warning honest.
Read more
Why Hermes Honcho Memory Lands in the Wrong Project
Auto-generated titles overrode sessionStrategy, and memory resolution used the backend launch directory instead of your workspace — PR #112602 fixes both.
Read more
Your renamed Hermes profile left a ghost in the state DB
A renamed profile used to leave the state DB pointing at the old name. PR #112653 migrates that identity, adds a retry command, and tombstones deleted profiles.
Read more
Gateway profile multiplexing is on by default now
gateway.multiplex_profiles now defaults to on, but a boot guard settles an unset flag at every boot: one gateway serves all profiles only when the fold is safe.
Read more
Why state.db Gets Corrupted Inside Docker Desktop, OrbStack and WSL2 Mounts
Bind-mount your data directory into a container and virtiofs or 9p cannot give SQLite WAL the shared lock it needs, so two writers corrupt state.db quietly while every integrity check passes. Since PR #111433, Hermes says so at startup and in hermes doctor, with two concrete fixes.
Read more