hermes - 💡(How to fix) Fix feat: native skills.auto_load config for persistent skill pre-loading at session start

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Add a skills.auto_load config key to ~/.hermes/config.yaml so that specified skills are automatically injected at every session start — both CLI and gateway — without requiring the --skills flag per invocation.

Root Cause

Add a skills.auto_load config key to ~/.hermes/config.yaml so that specified skills are automatically injected at every session start — both CLI and gateway — without requiring the --skills flag per invocation.

Fix Action

Fix / Workaround

Autonomous and multi-agent (swarm) deployments need certain skills always available at session start. Currently the only mechanism is passing --skills skill1 skill2 on every invocation. This creates fragile workarounds and setup friction in production environments.

Current Workaround

Problems with this workaround:

  • Must remember to use hermes-auto instead of hermes
  • Doesn't apply to gateway sessions or programmatic invocations
  • Fragile: breaks if .zshrc is not sourced (cron, subprocess spawning, subagents)
  • Not portable across machines or team members

Code Example

# ~/.hermes/config.yaml
skills:
  auto_load:
    - systematic-debugging
    - requesting-code-review
    - hermes-agent          # meta-skill for self-documentation

---

# ~/.zshrc
alias hermes-auto='hermes --skills systematic-debugging requesting-code-review hermes-agent'
RAW_BUFFERClick to expand / collapse

Summary

Add a skills.auto_load config key to ~/.hermes/config.yaml so that specified skills are automatically injected at every session start — both CLI and gateway — without requiring the --skills flag per invocation.

Use Case

Autonomous and multi-agent (swarm) deployments need certain skills always available at session start. Currently the only mechanism is passing --skills skill1 skill2 on every invocation. This creates fragile workarounds and setup friction in production environments.

Real-world pain point: a user running persistent autonomous agents or a gateway process has to either:

  1. Wrap every invocation with an alias (e.g. alias hermes-auto='hermes --skills systematic-debugging requesting-code-review')
  2. Inject skills via external shell scripts
  3. Accept that skills are missing if the alias isn't used

Neither is acceptable for production autonomous/multi-agent deployments.

Proposed Config Schema

# ~/.hermes/config.yaml
skills:
  auto_load:
    - systematic-debugging
    - requesting-code-review
    - hermes-agent          # meta-skill for self-documentation

Expected Behavior

  1. At every session start (CLI hermes, gateway hermes gateway, batch runner, etc.), Hermes reads skills.auto_load from config.
  2. Each listed skill is loaded exactly as if it had been passed via --skills.
  3. Skills listed in auto_load are merged with any skills passed via --skills at invocation time (union, no duplicates).
  4. If a listed skill does not exist, emit a warning and continue (non-fatal).
  5. The behavior applies consistently to CLI, gateway, and programmatic AIAgent instantiation paths.

Current Workaround

# ~/.zshrc
alias hermes-auto='hermes --skills systematic-debugging requesting-code-review hermes-agent'

Problems with this workaround:

  • Must remember to use hermes-auto instead of hermes
  • Doesn't apply to gateway sessions or programmatic invocations
  • Fragile: breaks if .zshrc is not sourced (cron, subprocess spawning, subagents)
  • Not portable across machines or team members

Implementation Notes

Based on reading the codebase:

  • load_cli_config() in cli.py already merges user config YAML — the natural place to read skills.auto_load
  • Skill slash commands are handled in agent/skill_commands.py
  • The --skills argument is already parsed in CLI startup; auto_load values could be prepended to that list before the skills loading pass
  • Gateway path (gateway/run.py) would need the same merge to pick up auto-loaded skills

Priority

High for production autonomous multi-agent deployments. This is a small config + wiring change with outsized ergonomic benefit — it is the difference between a skill being reliably available in every agent context vs. being a per-invocation opt-in.

Related

  • --skills flag (existing mechanism this would complement)
  • hermes skill view / hermes skill list (skill discovery CLI)
  • optional-skills/ directory (heavier skills not active by default — auto_load would provide a native opt-in path for these)

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING