Bundled skill updates (hermes skills reset)
Hermes ships with a set of bundled skills in skills/ inside the repo. On install and on every hermes update , a sync pass copies those into ~/.hermes/skills/ and records a manifest at ~/.hermes/skills/.bundled_manifest mapping each skill name to the content hash at the time it was synced (the origin hash ). On each sync, Hermes recomputes the hash of your local copy and compares it to the origin hash: Unchanged → safe to pull upstream changes, copy the new bundled version in, record the new origin hash. Changed → treated as user-modified and skipped forever, so your edits never get stomped. Generated runtime caches inside a skill ( __pycache__/ , .pytest_cache/ , .mypy_cache/ , .ruff_cache/ , and a .pyc sitting next to its .py ) are not part of the hash, so running a skill's helper script never marks it user-modified or hides it from hermes skills list-modified / diff . The protection is good, but it has one sharp edge. If you edit a bundled skill and then later want to abandon your changes and go back to the bundled version by just copy-pasting from ~/.hermes/hermes-agent/skills/ , the manifest still holds the old origin hash from whenever the last successful sync ran. Your fresh…
From the official Hermes Agent documentation.
# Safe: clears the manifest entry for this skill. Your current copy is preserved,
# but the next sync re-baselines against it so future updates work normally.
hermes skills reset google-workspace
# Full restore: also deletes your local copy and re-copies the current bundled
# version. Use this when you want the pristine upstream skill back.
hermes skills reset google-workspace --restore
# Non-interactive (e.g. in scripts or TUI mode) — skip the --restore confirmation.
hermes skills reset google-workspace --restore --yes