hermes-post-update
Skill6 starsChanged 8 days agoMITView on GitHub
Verify and clean up after a Hermes update — confirm the gateway restarted on new code, check plugin migrations, review config changes, run health checks, and surface cleanup opportunities.
In this repository32 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- diagnosing-authSkill
- diagnosing-backupSkill
- diagnosing-bot-modeSkill
- diagnosing-browserSkill
- diagnosing-cli-tuiSkill
- diagnosing-commandsSkill
- diagnosing-configSkill
- diagnosing-cronSkill
- diagnosing-desktopSkill
- diagnosing-gatewaySkill
- diagnosing-hooksSkill
- diagnosing-host-pressureSkill
- diagnosing-mcpSkill
- diagnosing-memoriesSkill
- diagnosing-memorySkill
- diagnosing-pathSkill
- diagnosing-pluginsSkill
- diagnosing-profilesSkill
- diagnosing-providersSkill
- diagnosing-runtimeSkill
- diagnosing-secretsSkill
- diagnosing-sessionsSkill
- diagnosing-skillsSkill
- diagnosing-storageSkill
- diagnosing-triageSkill
- diagnosing-updateSkill
- diagnosing-voiceSkill
- hermes-configuration-guideSkill
- installing-hermesSkill
- plugin-authoringSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 6 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Run after hermes update to verify the update landed correctly, catch silent migrations, and surface cleanup opportunities.
- Very specific: line 21
After any hermes update (manual or automatic)
- Distinctive: line 22
After a desktop app update
- Distinctive: line 23
When the gateway seems stale or unresponsive after an update
- Very specific: line 34
Check the version string. If it still shows the old version, the update may not have completed — check $HERMES_HOME/logs/update.log for …
- Distinctive: line 77
Check which are installed:
- Very specific: line 83
If a plugin is listed as not enabled but was previously active, enable it:
- Very specific: line 97
If the update log shows config format updated (v46 → v50) or similar, review the new schema:
- Very specific: line 181
If hermes doctor reports a large WAL file (above 50 MB — missed checkpoints), stop the profile's gateway, then checkpoint:
- Very specific: line 194
If hermes doctor reports an oversized state.db (full-text index on the old layout), compact it offline with the gateway stopped:
- Distinctive: line 223
If free space is low (as a rule of thumb, below 10 GB), investigate large directories before the next update (the updater needs several GB …
- Distinctive: line 233
Update to v0.21.5+9802 completed.
- Distinctive: line 251
After an update, confirm it landed correctly:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Hermes Post-Update
Run after hermes update to verify the update landed correctly, catch silent
migrations, and surface cleanup opportunities. The updater handles code and
dependencies and attempts a gateway-fleet restart, but it does not review config
changes or report what moved. This skill verifies the automatic restart result
and handles any restart still owed.
When to use
- After any
hermes update(manual or automatic) - After a desktop app update
- When the gateway seems stale or unresponsive after an update
- As periodic maintenance (weekly)
Workflow
1. Confirm the update landed
hermes --versionCheck the version string. If it still shows the old version, the update may not
have completed — check $HERMES_HOME/logs/update.log for errors (resolve
$HERMES_HOME via hermes config path).
2. Verify the gateway restarted on new code
hermes gateway statusNote the reported PID before restarting. If the output contains:
⚠ A previous
hermes updatepulled new code but did not restart running gateways.
Run:
hermes gateway restartThen confirm the new PID:
hermes gateway statusThe PID should differ from the pre-restart value you noted (a changed PID alone
is not proof — PIDs recycle — so the warning line above is the authoritative
signal). If the gateway process is still running old code, a restart is
required. To check the process directly, on Windows run
Get-CimInstance Win32_Process -Filter "Name LIKE '%hermes%'" | Select-Object ProcessId,CommandLine,
on POSIX run pgrep -af hermes (or ps aux | grep '[h]ermes').
3. Check for plugin migrations
Recent updates have moved functionality out of core into plugins:
| Plugin | What it replaces | Install command |
honcho | Memory provider (built into core pre-0.21.5) | hermes plugins install honcho |
homeassistant | Home Assistant integration (built into core pre-0.21.5) | hermes plugins install homeassistant |
hermes-session-reset-policy | session_reset.mode: both behavior | hermes plugins install hermes-session-reset-policy |
Check which are installed:
hermes plugins listIf a plugin is listed as not enabled but was previously active, enable it:
hermes plugins enable <name>4. Review config format changes
Updates may bump the config schema version. Check for per-profile changes:
hermes config pathIf the update log shows config format updated (v46 → v50) or similar, review
the new schema:
hermes config migrate(migrate takes no preview flag — read its output before confirming anything
it proposes to change.)
5. Review skills sync
The updater syncs bundled skills but preserves user-modified copies. Check what was updated vs. kept:
hermes skills list-modifiedFor each user-modified skill, decide:
- Keep — your local changes are intentional
- Reset — discard local changes and accept the upstream version. Back up
your copy first (a plain
resetonly clears the sync-manifest entry and keeps your copy — pass--restoreto also replace it with the bundled version):
hermes skills reset <skill-name> --restore6. Run health check
hermes doctorCategorize the output:
| Category | Action |
| Auto-fixable | Run hermes doctor --fix, but only for items the report marks auto-fixable — it mutates config/state |
| Manual (API keys, tokens) | User must provide credentials |
| Informational | No action needed |
7. Cleanup opportunities
Stale autoshash entries
The updater stashes local changes before pulling. Old entries accumulate.
Resolve $HERMES_HOME via hermes config path (POSIX: %LOCALAPPDATA%\hermes
equivalent on native Windows is Split-Path (hermes config path) -Parent):
POSIX:
HERMES_HOME=$(dirname "$(hermes config path)")
git -C "$HERMES_HOME/hermes-agent" stash listPowerShell:
$cfg = hermes config path
$HERMES_HOME = Split-Path $cfg -Parent
git -C "$HERMES_HOME/hermes-agent" stash listEntries with hermes-update-autostash- prefix may contain local changes that
were never restored. Inspect each entry before dropping:
git -C "$HERMES_HOME/hermes-agent" stash show -p stash@{N}[!CAUTION] Only drop entries whose changes are confirmed unneeded, and export them first (
stash show -psaved to a file) — a drop cannot be undone. Note thatstash@{N}indices renumber after each drop, so re-list before each one:
git -C "$HERMES_HOME/hermes-agent" stash drop stash@{N}Large WAL file
If hermes doctor reports a large WAL file (above 50 MB — missed checkpoints),
stop the profile's gateway, then checkpoint:
hermes doctor --fixFor the general database-care procedure (compaction canary, integrity queries,
prune/archive/optimize), load the diagnosing-memory skill and follow its
session-database reference therein.
Oversized state database
If hermes doctor reports an oversized state.db (full-text index on the old
layout), compact it offline with the gateway stopped:
hermes sessions optimize-storageThis rebuilds the search index in the compact layout, reclaiming a large
fraction of state.db on big databases. It prompts for disk-space
confirmation, is safe to interrupt and re-run (it resumes), and must not be
forced under a live writer (no --force while a gateway holds state.db).
Disk headroom
POSIX:
HERMES_HOME=$(dirname "$(hermes config path)")
df -h "$HERMES_HOME"PowerShell:
$cfg = hermes config path
$HERMES_HOME = Split-Path $cfg -Parent
(Get-Item $HERMES_HOME).PSDrive | Select-Object Name, Used, FreeIf free space is low (as a rule of thumb, below 10 GB), investigate large directories before the next update (the updater needs several GB for dependencies and backups).
8. Report
Present findings in the standard format (numbers below are an example from one host, not thresholds — use the actual command output as evidence):
Summary
Update to v0.21.5+9802 completed. Gateway restarted (PID 29780). Two plugin migrations applied (honcho, homeassistant). Three items need attention.
Findings
| Severity | What | Evidence |
| MEDIUM | session_reset.mode: both deprecated | Gateway log: "no longer applied" — install hermes-session-reset-policy |
| LOW | 3 stale autoshash entries | git stash list shows entries from 2026-09-03 |
| INFO | 4 skills updated, 15 user-modified kept | hermes skills list-modified |
Recommended Actions
- Install
hermes-session-reset-policyto restore old reset behavior - Review user-modified skills:
hermes skills list-modified - Drop stale autoshash entries (optional, cosmetic)
Verification
After an update, confirm it landed correctly:
hermes --version
hermes doctor
hermes plugins listPass: Version reflects the new release; hermes doctor reports no errors; all expected plugins are listed.
Fail: Version unchanged — re-run hermes update; doctor errors — follow the matching diagnosing-* skill; missing plugins — run hermes plugins install <name>.
$HERMES_HOME/logs/gateway.log— gateway restart confirmationhermes doctor— health check results
References
$HERMES_HOME/logs/update.log— full update output
Facts re-verified 2026-10-13 against upstream source at commit a082d1e180be1e603a6a307fce4d098e30f54eb7: hermes_cli/update_cmd_fleet.py::_warn_pending_fleet_restart (gateway restart warning), hermes_cli/update_cmd_stash.py::_AUTOSTASH_NAME_PREFIX (autostash prefix), hermes_cli/update_cmd_config.py (config format message), hermes_cli/config.py::_cmd_config_migrate (migrate takes no preview flag), hermes_cli/skills_hub.py::do_reset (restore flag), hermes_cli/doctor_state.py::_state_db_wal (WAL finding and optimize-storage trigger), hermes_cli/session_reset_retirement.py (reset-mode retirement notice; file postdates the repo baseline so it stays a bare path, not a machine-checked anchor); CLI behavior cross-checked against the local install (v0.21.6). Re-verify before reuse.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

