hermes - 💡(How to fix) Fix [Bug]: --skills not passed to acp command. [5 pull requests]

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…

Error Message

def cmd_acp(args): """Launch Hermes Agent as an ACP server.""" try: from acp_adapter.entry import main as acp_main acp_main() # args.skills is discarded here except ImportError: ...

Root Cause

cmd_acp(args) at hermes_cli/main.py:11348 receives the parsed args namespace (which correctly contains args.skills — argparse parses the global flag without issue) but never uses it:

def cmd_acp(args):
    """Launch Hermes Agent as an ACP server."""
    try:
        from acp_adapter.entry import main as acp_main
        acp_main()  # args.skills is discarded here
    except ImportError:
        ...

acp_main() takes zero parameters and instantiates HermesACPAgent() with no skill preloading.

Fix Action

Fixed

Code Example

Report       https://paste.rs/o0j20
  agent.log    https://dpaste.com/7M4KLZ4H5
  gateway.log  https://dpaste.com/86S4S9LFV

---



---

def cmd_acp(args):
    """Launch Hermes Agent as an ACP server."""
    try:
        from acp_adapter.entry import main as acp_main
        acp_main()  # args.skills is discarded here
    except ImportError:
        ...

---

kwargs = {
    ...
    "skills": getattr(args, "skills", None),
    ...
}
cli_main(**kwargs)
RAW_BUFFERClick to expand / collapse

Bug Description

Bug Description

The --skills / -s global flag is silently ignored when running Hermes in ACP mode. Skills specified via hermes -s skillname acp are never preloaded into the session.


Note: This issue was filed by Erwin Dassen's Hermes agent on his behalf, after tracing the code path from CLI args through ACP entry point.

Steps to Reproduce

Steps to reproduce

  1. Ensure a valid skill exists at ~/.hermes/skills/
  2. Run hermes -s <skillname> acp to start ACP mode with skill preload
  3. The skill content is never injected into session context

Expected Behavior

One or more skills passed with --skills is pre-loaded in the ACP environment/workspace.

Actual Behavior

There is no error but the requires skills are not loaded.

Affected Component

Skills (skill loading, skill hub, skill guard)

Messaging Platform (if gateway-related)

No response

Debug Report

Report       https://paste.rs/o0j20
  agent.log    https://dpaste.com/7M4KLZ4H5
  gateway.log  https://dpaste.com/86S4S9LFV

Operating System

macOS26

Python Version

3.13

Hermes Version

0.13.0

Additional Logs / Traceback (optional)

Root Cause Analysis (optional)

Root Cause

cmd_acp(args) at hermes_cli/main.py:11348 receives the parsed args namespace (which correctly contains args.skills — argparse parses the global flag without issue) but never uses it:

def cmd_acp(args):
    """Launch Hermes Agent as an ACP server."""
    try:
        from acp_adapter.entry import main as acp_main
        acp_main()  # args.skills is discarded here
    except ImportError:
        ...

acp_main() takes zero parameters and instantiates HermesACPAgent() with no skill preloading.

Contrast with Chat Mode

Chat mode (cmd_chat) correctly forwards skills at line 1482:

kwargs = {
    ...
    "skills": getattr(args, "skills", None),
    ...
}
cli_main(**kwargs)

This eventually calls build_preloaded_skills_prompt() in agent/skill_commands.py.

Proposed Fix (optional)

Suggested Fix Approaches

Option A — Env var bridge (lighter touch, follows TUI precedent):

tui_gateway/server.py already uses this pattern. ACP could do the same:

  1. cmd_acp sets HERMES_ACP_SKILLS=<comma-separated> before calling acp_main()
  2. HermesACPAgent.create_session() reads it and calls build_preloaded_skills_prompt()

Option B — Direct parameter (cleaner but touches more files):

Thread skills through acp_main(skills=...)HermesACPAgentSessionManager → agent preload.

Are you willing to submit a PR for this?

  • I'd like to fix this myself and submit a PR

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