hermes - 💡(How to fix) Fix [Feature]: claude-code-print and cursor-agent-print SKILL.md for non-ACP coding CLI delegation [1 participants]

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…
GitHub stats
NousResearch/hermes-agent#15300Fetched 2026-04-25 06:23:03
View on GitHub
Comments
0
Participants
1
Timeline
5
Reactions
0
Author
Participants
Timeline (top)
labeled ×5

Code Example

$ claude --help | grep -E "acp|stdio"
# (no matches — claude only supports --print/-p)

$ cursor-agent --help | grep -E "acp|stdio"
# (no matches — cursor-agent only supports --print/-p)
RAW_BUFFERClick to expand / collapse

Problem or Use Case

Hermes ships first-class skills for copilot, claude-code, codex, and opencode — but only copilot works as a true ACP child via delegate_task(acp_command="copilot"). The other three coding CLIs (claude, cursor-agent, codex) do not implement the ACP wire protocol:

$ claude --help | grep -E "acp|stdio"
# (no matches — claude only supports --print/-p)

$ cursor-agent --help | grep -E "acp|stdio"
# (no matches — cursor-agent only supports --print/-p)

This means Hermes users who want to spawn a Claude or Cursor child agent (e.g. to use a Claude Max subscription, or burn Cursor quota for parallel work) are stuck with two awkward paths:

  1. terminal() one-shot — fire-and-forget, no streaming, no structured output parsing
  2. process() long-lived — manual stdin/stdout marshaling, no result extraction

Neither integrates with the existing delegate_task orchestration surface (sub-session tracking, tool-call accounting, parent context isolation), and there is no SKILL.md teaching the agent the right invocation patterns. PR #13303 (copilot-cli skill) closes the documentation gap for Copilot but the same gap exists for claude -p and cursor-agent -p.

Related work that doesn't cover this:

  • #2653 — adds acp_command override to delegate_task (already implemented). Solves spawning ACP-speaking children, but claude/cursor-agent are not ACP-speaking.
  • #5258 (DRAFT) — generalizes CopilotACPClient for 14 ACP-compatible CLIs. Same scope limitation.
  • #13303 — copilot-cli SKILL.md. Excellent template, but Copilot-only.

Proposed Solution

Two optional-skills/ modules following the PR #13303 template, no Python changes required:

optional-skills/autonomous-ai-agents/claude-code-print/SKILL.md

Documents three invocation modes for the claude CLI:

  1. One-shot print mode (claude -p "<prompt>" --output-format json) — for short tasks Hermes can fully describe upfront. Works through terminal() today.
  2. Streaming print mode (claude -p ... --output-format stream-json --include-partial-messages) — for tasks where intermediate progress matters. Works through process() today.
  3. Background interactive (claude in tmux) — for multi-turn tasks where Hermes wants to inject follow-up messages.

Plus the relevant flags Hermes should always set: --allowedTools, --add-dir <cwd>, --model, --effort, --max-budget-usd, --json-schema for structured output, and a comparison matrix vs copilot / codex / opencode.

optional-skills/autonomous-ai-agents/cursor-agent-print/SKILL.md

Same shape for cursor-agent, covering --mode plan|edit|chat, --sandbox, --worktree-base, --approve-mcps, --trust, --workspace, the --output-format text|json selector, and --list-models for model discovery.

Both skills go into optional-skills/ (per CONTRIBUTING.md guidance) since they require third-party CLIs the user must install themselves — not bundled, but discoverable via hermes skills browse.

Alternatives Considered

  1. Extend agent/copilot_acp_client.py to detect non-ACP CLIs and switch from JSON-RPC to a simple stdin/stdout pipe. I prototyped this locally (~115 lines, adds a _COMMAND_SIMPLE_PIPE_ARGS registry mapping claude → -p --output-format json, cursor-agent → -p --output-format text, codex → exec). It works but conflicts with the architectural direction in #5258 (one client per ACP CLI, generalized) and per CONTRIBUTING.md ("Should it be a Skill or a Tool?", almost always skill). Skill route is cleaner.

  2. Build a generic "PrintModeClient" sibling to ACPClient that implements the same delegate_task interface for non-ACP CLIs. Significant new Python surface — better as a follow-up only if the skill route proves insufficient.

  3. Wait for upstream CLIs to add ACPclaude and cursor-agent show no signs of it, and ACP support is an opinionated choice (see Anthropic's stance on first-party clients vs third-party automation).

The skill route is the smallest change, ships immediately, and matches the pattern established by #13303.

Feature Type

New bundled skill

Scope

Small (single file, < 50 lines) — actually two SKILL.md files at ~250 lines each, but no Python.

Contribution

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

I'm happy to author both SKILL.md files following the structure of skills/autonomous-ai-agents/copilot-cli/SKILL.md from PR #13303. Will pre-flight-check claude/cursor-agent flag references against the latest CLI releases as PR #13303 did.

Debug Report

Not applicable — this is a missing-capability request, not a runtime issue.

extent analysis

TL;DR

Create two new SKILL.md files for claude-code-print and cursor-agent-print to document invocation modes and flags for non-ACP CLIs.

Guidance

  • Document the three invocation modes for claude and cursor-agent CLIs in their respective SKILL.md files.
  • Include relevant flags for each CLI, such as output format, model, and effort, to ensure structured output and proper configuration.
  • Follow the template established by skills/autonomous-ai-agents/copilot-cli/SKILL.md from PR #13303 for consistency.
  • Pre-flight-check flag references against the latest CLI releases to ensure accuracy.

Example

No code snippet is provided as this solution involves creating documentation files.

Notes

This solution assumes that the claude and cursor-agent CLIs will not implement the ACP wire protocol in the near future, and that the skill route is the most suitable approach.

Recommendation

Apply the workaround by creating the two new SKILL.md files, as it is the smallest change and matches the established pattern, allowing for immediate shipping and minimal disruption.

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