feat(shared): add Hermes as a built-in terminal agent
What
Adds Hermes Agent (Nous Research) as a built-in terminal agent. This builds on @hackice20's #5802, which added the manifest entry; this PR carries that forward onto the current manifest shape and adds the icon and wiring every other builtin has. Thank you @hackice20 for kicking this off; the commit carries your Co-authored-by.
packages/shared/src/builtin-terminal-agents.ts:hermesentrypackages/ui/src/assets/icons/preset-icons/hermes.svg+hermes-white.svg, registered inindex.ts(a small caduceus mark; Hermes has no vector logo upstream, its favicon is the ⚕ glyph and the README banner is pixel art, so this is a simple monochrome stand-in that can be swapped if Nous publishes one)- README "Supported Agents" row,
apps/docs/content/docs/agent-integration.mdxbullet,UniversalCompatibilityDemoentry +apps/marketing/public/app-icons/hermes.svg - Registration test in
agent-command.test.ts(prompt shape, preset args, resume args)
Manifest
| Field | Value | Verified against |
|---|---|---|
command | hermes chat --yolo | CLI reference: --yolo is both a global and a hermes chat option |
promptCommand | hermes chat --yolo -q | -q, --query is the only way to pass a prompt; hermes chat has no positional (checked hermes_cli/_parser.py) |
promptCommandSuffix | ; hermes chat --yolo -c | -c, --continue resumes the most recent session, so a prompt launch runs the query and then lands in the interactive chat on that session, same shape as kimi |
resumeCommand | hermes chat --yolo -r (+ session id) | -r, --resume <SESSION_ID> |
nonInteractiveCommand | hermes chat -q | one-shot without --yolo, like claude -p |
Differences from #5802: the base command is hermes chat --yolo rather than hermes --yolo (the reference documents chat as the subcommand; bare hermes also defaults to chat per main.py, so both work, but chat is the documented form), and prompt launches continue into the TUI instead of exiting after the one-shot answer. Not added to the default terminal presets, matching droid/pi/polygraph; happy to flip includeInDefaultTerminalPresets.
Live-checked against an installed Hermes v0.20.5 on macOS (2026-08-23): hermes chat -h documents exactly the flags above (-q/--query, -r SESSION_ID, -c/--continue, --yolo), and hermes chat --yolo boots to the REPL (a fresh install stops at "no model configured - run /model", so a full prompt round-trip needs a provider configured; the launch shape itself is verified).
One thing I could not verify without a configured Hermes install: that a -q run is saved as a session so the -c suffix picks it up (the source points that way: hermes_cli/oneshot.py describes the separate stateless -z mode as bypassing cli.py with "no session_id line" - implying a normal chat -q run does record a session and print its id). If it does not, dropping promptCommandSuffix leaves the one-shot behaviour #5802 had.
Hermes runs as a plain terminal agent, same shape as Pi / Cursor Agent, so no packages/agent-setup target or wrapper is needed.
Testing
bun run typecheckcleanbun run lintcleanbun test packages/shared778 pass
Based on #5802 (left open; the author can close it once this lands).
https://claude.ai/code/session_01DuAhw6Ao5Cru3acdkrzx9f
Summary by cubic
Adds Hermes as a built-in terminal agent for consistent CLI handling, icons, and docs. Previously unavailable; now prompt launches run a -q one-shot and auto-continue into the interactive chat; resume uses -r; non-interactive uses hermes chat -q.
- Registers
hermesinpackages/shared/src/builtin-terminal-agents.tswith basehermes chat --yolo, prompthermes chat --yolo -q, prompt suffix; hermes chat --yolo -c, resumehermes chat --yolo -r, and non-interactivehermes chat -q. - Adds light/dark icons in
packages/ui/src/assets/icons/preset-icons/*, wires them inpackages/ui/src/assets/icons/preset-icons/index.ts, exposes Hermes in the desktop Agent Icon Picker and settings search (keywords include “hermes” and “nous”). - Updates docs and marketing:
READMEsupported-agents row,apps/docsagent-integration and terminal-presets entries,apps/marketing/public/app-icons/hermes.svg, andUniversalCompatibilityDemo. - Tests in
packages/shared/src/agent-command.test.tscover registration, prompt continuation shape, and derived preset args. - Not added to the default terminal preset bar; no
packages/agent-setuptarget.
Summary by CodeRabbit
- New Features
- Added Hermes as a supported coding and research agent.
- Enabled interactive, prompt-based, resumable, and non-interactive Hermes workflows.
- Added Hermes to agent selection, quick-add templates, and settings search.
- Added light and dark Hermes icons across supported interfaces.
- Documentation
- Added Hermes to supported-agent and terminal-preset documentation.
- Tests
- Added coverage for Hermes command handling and workflow options.