Appearance
Skill curator
The learning loop means Hermes creates skills on its own over time. Left unchecked, that pile of narrow, near-duplicate skills would clutter the catalog and waste tokens. The curator is the background janitor that keeps it tidy: it tracks how often each skill is used, ages out the stale ones, and (optionally) consolidates overlapping skills.
What it manages
The curator primarily manages agent-created skills, the ones the background self-improvement review writes on its own. It can also archive unused bundled skills (default prune_builtins: true), but hub-installed skills and skills you hand-wrote are always left alone. It never deletes; the worst it does is archive into ~/.hermes/skills/.archive/, which is recoverable.
How it runs
The curator is triggered by an inactivity check, not a cron daemon. It runs only when both are true:
- Enough time has passed since the last run (
interval_hours, default 7 days). - The agent has been idle long enough (
min_idle_hours, default 2 hours).
So on an active dev machine it naturally only fires during quiet stretches. On a brand-new install it defers the first real pass by a full interval, giving you time to review or opt out.
A run has two phases:
- Automatic transitions (deterministic, no LLM). Skills unused for 30 days become
stale; unused for 90 days are archived. This is the always-on pruning. - LLM consolidation (one auxiliary-model pass), off by default. When enabled, a forked agent surveys agent-created skills and may patch, merge overlapping ones into umbrellas, or archive them.
Configuration
yaml
# ~/.hermes/config.yaml
curator:
enabled: true
interval_hours: 168 # 7 days
min_idle_hours: 2
stale_after_days: 30
archive_after_days: 90
consolidate: false # opt-in LLM umbrella-building pass
prune_builtins: true # also archive unused bundled skills (hub skills exempt)Disable entirely with curator.enabled: false. Keep pruning but enable consolidation with curator.consolidate: true.
Offline note
The consolidation pass costs auxiliary-model tokens (and inference time on your local box). On a local-only setup I usually leave consolidate: false and rely on the free, deterministic stale/archive pruning. If I do want consolidation, I point it at a cheap fast model via auxiliary.curator.
CLI
bash
hermes curator status # last run, counts, pinned list, least-used skills
hermes curator run # run now (prune-only unless consolidate is on)
hermes curator run --dry-run # preview without changing anything
hermes curator run --consolidate # force the LLM pass for this run
hermes curator pin <skill> # never auto-transition this skill
hermes curator unpin <skill>
hermes curator restore <skill> # bring an archived skill back to active
hermes curator list-archived
hermes curator rollback # restore from the newest pre-run snapshotThe same commands are available as /curator inside a session.
Safety nets
- Before every real pass, Hermes snapshots
~/.hermes/skills/to.curator_backups/.hermes curator rollbackundoes a whole run. - Pinning protects a skill from both the curator and the agent's own delete tool. Only agent-created skills can be pinned.
- A small set of load-bearing built-ins (like the skill behind
/plan) is hardcoded as never-archivable. - Per-run reports are written to
~/.hermes/logs/curator/<timestamp>/REPORT.mdso you can audit exactly what changed.
Your hand-written skills are safe
If you created a SKILL.md yourself, or the agent created one at your explicit request during a chat, it is marked user-directed and the curator will not touch it. Run hermes curator status to see exactly which skills are in the curator's jurisdiction, if the agent-created count is 0, it does nothing.