Skip to content

feat(cli): add Hermes agent backend - #342

Open
rquezada-tech wants to merge 1 commit into
alookai:mainfrom
rquezada-tech:feat/hermes-agent-backend
Open

feat(cli): add Hermes agent backend#342
rquezada-tech wants to merge 1 commit into
alookai:mainfrom
rquezada-tech:feat/hermes-agent-backend

Conversation

@rquezada-tech

Copy link
Copy Markdown

Summary

Adds Hermes Agent by Nous Research as a supported agent runtime alongside Claude Code, Codex, and OpenCode.

What changed

  • New HermesBackend class in src/cli/daemon/agent/hermes.ts — spawns hermes chat -Q -q <prompt> for non-interactive task execution
  • Parses session_id from stdout for session tracking (Hermes outputs this as first line in quiet mode)
  • Supports --model flag passthrough and HERMES_PROFILE env var for profile-based execution
  • Registered in createBackend() factory and detectRuntimes()
  • Updated README BYO Agent table: Hermes moves from "Coming Soon" → "Available"
  • 26 new tests covering parseLine, backend execution (mocked spawn), and factory registration

Design decisions

  • Lifecycle: per_turn — each task spawns a fresh Hermes process (like OpenCode). Hermes does not yet have a persistent streaming JSON mode equivalent to Claude's --output-format stream-json or Codex's JSON-RPC transport.
  • No stdin steering or busy-delivery in this initial version — these require structured output from Hermes CLI. Marked as busyDeliveryMode: "none" and supportsStdinNotification: false.
  • The backend is designed to be easy to upgrade when Hermes adds streaming structured output.

Test plan

  • All 26 new tests pass
  • Full CLI test suite passes (1023 tests, 0 failures)
  • Typecheck passes (pnpm typecheck)
  • Lint passes

Screenshots

N/A — backend change only.

Closes #N/A (new feature, no existing issue)

@rquezada-tech
rquezada-tech requested a review from a team as a code owner July 5, 2026 18:09
Add Hermes (Nous Research) as a supported agent runtime alongside
Claude Code, Codex, and OpenCode.

- New HermesBackend class in src/cli/daemon/agent/hermes.ts
- Spawns 'hermes chat -Q -q <prompt>' for non-interactive task execution
- Parses session_id from stdout for session tracking
- Supports --model flag passthrough and HERMES_PROFILE env var
- Registered in createBackend() factory and detectRuntimes()
- Updated README BYO Agent table: Hermes -> Available
- 26 new tests (parseLine, backend integration, factory registration)

Lifecycle: per_turn (each task spawns a fresh Hermes process).
Stdin steering and busy-delivery modes are not supported in this
initial version -- these require a streaming structured-output mode
from Hermes CLI, which can be added in a future update.
@rquezada-tech
rquezada-tech force-pushed the feat/hermes-agent-backend branch from fd2cebe to 3f081a6 Compare July 6, 2026 19:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant