Learn Hermes Agent v0.18: The Judgment Release Skills Deep Dive: Bundles, Conditional Activation, and the Hub

Skills Deep Dive: Bundles, Conditional Activation, and the Hub

Advanced 🕐 12 min Lesson 7 of 13
What you'll learn
  • Explain the three-level progressive disclosure system and when Hermes loads each level of a skill
  • Create a skill bundle that preloads multiple skills under a single slash command
  • Install a skill from the Skills Hub using multiple available installation methods

How Hermes Decides What to Load

Skills in Hermes do not all load into the context window at once. If they did, a library of 50 skills would consume tens of thousands of tokens in every session, making skills impractical at scale. Instead, Hermes uses a three-level progressive disclosure system that loads only what is needed, when it is needed.

Level 0 — Metadata. At session start, Hermes calls skills_list(), which returns the name and description of every installed skill. This metadata layer costs roughly 3,000 tokens for a typical skill library — small enough to load unconditionally. The agent uses the descriptions to decide which skills are relevant to the current task.

Level 1 — Full content. When the agent determines that a skill is relevant, it calls skill_view(name) to load the full SKILL.md — When to Use, Procedure, Pitfalls, Verification. This is the content that guides the agent's behavior. Skills are not loaded at this level unless the agent decides they apply to what you're asking it to do.

Level 2 — Reference files. Complex skills include supporting files: reference documents, templates, scripts, and asset directories. When the agent needs one of these supporting files �� because the procedure references them — it calls skill_view(name, path) to load the specific file. Reference files are the most expensive layer and are loaded only on demand.

This progressive system means that having 100 skills installed costs roughly the same context-window overhead as having 10, because only the skills relevant to the current task are loaded beyond Level 0.

Invoking Multiple Skills at Once

You can invoke up to five skills simultaneously in a single slash command:

/code-review /security-audit run a review of the auth module

Both /code-review and /security-audit are loaded at Level 1 before the agent begins. The agent has both skill's procedures and pitfall lists in context as it works through the task. This is useful when a task legitimately requires multiple knowledge domains simultaneously — a deployment that requires both a runbook and a security checklist, for example.

Skill Bundles

If you find yourself frequently invoking the same combination of skills together, bundles let you create a single slash command that preloads that combination. Bundles are configured in ~/.hermes/config.yaml:

bundles:
  backend-dev:
    skills:
      - github-code-review
      - test-driven-development
      - security-audit

After configuration, /backend-dev <instruction> loads all three skills simultaneously before the agent processes your instruction. You create bundles via the CLI with:

hermes bundles create backend-dev --skill github-code-review --skill test-driven-development --skill security-audit

Bundles are listed with /bundles (in session) or hermes bundles list (from the terminal). They appear as slash commands in the TUI command palette alongside individual skill commands.

Conditional Activation

Skills can be configured to show or hide automatically depending on what tools are available in the current session. Two frontmatter fields control this:

requires_toolsets — the skill only appears in the skills list when the specified toolsets are loaded. A database migration skill that requires the postgres toolset would set requires_toolsets: [postgres]. Users who haven't configured the postgres toolset never see this skill cluttering their list.

fallback_for_toolsets — the skill appears only when the specified toolsets are not available. This pattern is used for degraded-mode skills: a skill that provides manual instructions for what would normally be automated by a toolset, shown only when the toolset is absent. The skill library cleans itself up based on the actual capabilities of each user's configuration.

These fields prevent skill list bloat. A library of 100 skills that is filtered to 20 based on the current context is far easier to work with than an unfiltered list. Conditional activation is especially valuable in team-shared skill libraries where different developers have different toolsets configured.

The Skills Hub

The Skills Hub is Hermes' curated registry of installable skills. As of v0.18, the hub contains over 660 skills across all supported domains. Skills are installable from multiple sources:

  • Official optional skills — bundled with Hermes but not loaded by default; browsable with /skills browse or hermes skills browse
  • skills.sh — the primary community registry
  • Well-known endpoints — any host that publishes a standard skills manifest
  • GitHub repositories — directly from any public repo that contains SKILL.md files
  • Marketplaces — LobeHub and ClawHub are supported
  • Direct URLhermes skills install https://example.com/SKILL.md --name my-skill

All installations from external sources go through Hermes' built-in security scanner before the skill is saved to your skills directory. The scanner checks for references to external services, environment variable exfiltration patterns, and procedure steps that could be used for credential theft. Skills that fail the scanner are flagged and require explicit user confirmation before installation.

Media Delivery Directives

Skills that produce output files can use two special directives to control how media is delivered in messaging channels:

  • [[as_document]] — forces downloadable attachment delivery instead of inline preview. Use when the output is a file the user should save rather than read inline.
  • [[audio_as_voice]] — delivers audio output as a native voice message in Telegram, Discord, and other supported platforms. A skill that generates a spoken summary of a document uses this directive to send the audio naturally rather than as a file attachment.

These directives are annotations in the SKILL.md procedure section and are resolved at delivery time by the gateway. They have no effect in CLI or TUI sessions.

Key takeaways
  • The three-level progressive disclosure system — metadata at session start, full content on relevance detection, reference files on explicit request — means a library of 100 skills costs about the same context overhead as a library of 10.
  • Skill bundles (configured under bundles: in config.yaml, created via hermes bundles create) combine multiple skills under a single slash command — useful for workflow combinations you use repeatedly.
  • Conditional activation via requires_toolsets and fallback_for_toolsets filters the visible skill list based on available toolsets — this keeps large team libraries manageable for each individual developer.
  • The Skills Hub contains over 660 installable skills from multiple registries (official, skills.sh, GitHub, LobeHub, ClawHub, direct URL) — all external installs go through a security scanner before saving.
  • Media delivery directives [[as_document]] and [[audio_as_voice]] in skill procedures control how output files are sent through messaging channels — they have no effect in CLI/TUI sessions.