Hermes.News

Technical news, guides and deep-dives on Hermes Agent by Nous Research


Core FeaturesSep 08, 2026736 words

The Curator: Automatic Background Maintenance of Skills

The Curator is a background maintenance pass for agent-created skills. Every time the agent solves a novel problem and saves a skill, that skill lands in ~/.hermes/skills/. Without maintenance, you end up with dozens of narrow, near-duplicate skills that pollute the catalog and waste tokens. The Curator tracks how often each skill is viewed, used, and patched, moves long-unused skills through lifecycle states, and periodically spawns a short auxiliary-model review that proposes consolidations or patches drift.

By default the Curator can also archive unused bundled built-in skills after a period of non-use, but hub-installed skills are always off-limits, and the Curator never auto-deletes — the worst outcome is archival into ~/.hermes/skills/.archive/, which is fully recoverable.

How the Curator Runs

The Curator is triggered by an inactivity check, not a cron job. On CLI session start, during gateway housekeeping, and on the desktop maintenance timer, Hermes checks whether enough time has passed since the last run (interval_hours, default 7 days) and whether the agent has been idle long enough (min_idle_hours, default 2 hours). If both are true, it spawns a background fork of the agent that runs in its own prompt cache and never touches the active conversation. A run has two phases:

  1. Automatic transitions (deterministic, no LLM). Skills unused for stale_after_days (14) become stale; skills unused for archive_after_days (30) move to the archive. This always-on pruning runs whenever the Curator is enabled, with no auxiliary-model cost.
  2. LLM consolidation (a single auxiliary-model pass) — off by default. When curator.consolidate: true, the forked agent surveys agent-created skills, reads them with skill_view, and decides per-skill whether to keep, patch, consolidate overlapping ones into class-level umbrellas, or archive. Because it's token-costly and makes broad structural changes, consolidation stays opt-in.

Pinned skills and skills referenced by any cron job are skipped entirely, so a slow schedule can't archive a skill out from under a job. Never-used skills also get a grace floor: they aren't archived until they're at least stale_after_days old.

What "Agent-Created" Means

The Curator only manages skills explicitly marked as agent-created in ~/.hermes/skills/.usage.json. A skill qualifies when it isn't in the bundled manifest or hub lock file and its usage entry is marked created_by: "agent". Currently only the background self-improvement review fork writes this marker. Skills you hand-wrote, and skills the foreground agent created at your request, are not curated. hermes curator status reports the managed count, and hermes curator adopt <name> lets you hand an unmanaged skill to the Curator by declaration.

Backups, Rollback, and the Ledger

Before every real Curator pass, Hermes takes a tar.gz snapshot of ~/.hermes/skills/. If a pass archives or consolidates something you didn't want touched, hermes curator rollback restores the newest snapshot — and the rollback itself is reversible. A separate append-only JSONL audit ledger at ~/.hermes/skills/.curator_ledger.jsonl records every mutation with its actor (curator, agent, or user), action, and per-file before/after hashes, so hermes curator rollback <entry-id> can undo a single edit and even resurrect a hard-deleted skill.

Pinning and Restoring

Protect a specific skill from ever being touched with hermes curator pin <name>. Pinning shelters a skill from both the Curator's auto-archival and the agent's skill_manage(delete) call — but patches and edits still go through, so the agent can keep improving the content. Pinning only works on agent-created skills; bundled and hub-installed skills are refused. If the Curator archives something you still want, hermes curator restore <skill-name> moves it back from .archive/ and resets its state to active. The CLI offers the full surface — hermes curator status, run --dry-run, backup, pause, resume, pin, adopt, prune, and more — and the same subcommands are available as the /curator slash command inside a session.

Configuration

All settings live in config.yaml under curator: (they aren't secrets, so not in .env). Defaults include enabled: true, interval_hours: 168, stale_after_days: 14, archive_after_days: 30, consolidate: false, and prune_builtins: true. Set curator.enabled: false to disable entirely. To review the LLM pass on a cheaper model, point the auxiliary.curator task at a specific provider and model.

Key Takeaways

  • The Curator is an inactivity-triggered background pass that prunes, consolidates, and archives agent-created skills.
  • It uses deterministic lifecycle states (active → stale → archived) plus an opt-in LLM consolidation pass.
  • The Curator never deletes — archival is recoverable, with whole-run snapshots and a per-mutation audit ledger.
  • pin and adopt give you precise control over which skills the Curator may touch.