# fixture: hermes CLI help @ 0.21.0
# recapture: install hermes-agent==0.21.0, then run each `$ hermes ... --help` section command below and paste its verbatim stdout under that header.
# provenance: captured 2026-09-04 from the installed CLI on the build box (Hermes Agent v0.21.0 (2026.8.31) · upstream 63279301 · local 593aa74c (+1 carried commit)
Install directory: /Users/yueranyuan/.hermes/hermes-agent
Install method: git
Python: 3.11.6
OpenAI SDK: 2.24.0
Update available: 109 commits behind — run 'hermes update'); re-pinned from 0.19.0 because every ORCH receipt executed against 0.21.
# consumed by: crates/harness/src/parity.rs Evidence::CliVerb — a cited verb must appear as a subcommand line inside its section.
$ hermes --help
usage: hermes [-h] [--version] [-z PROMPT] [--usage-file PATH] [-m MODEL]
[--provider PROVIDER] [--reasoning LEVEL] [-t TOOLSETS]
[--resume SESSION] [--no-restore-cwd] [--in DIR]
[--continue [SESSION_NAME]] [--worktree] [--accept-hooks]
[--skills SKILLS] [--yolo] [--pass-session-id]
[--ignore-user-config] [--ignore-rules] [--safe-mode] [--tui]
[--cli] [--dev]
{chat,model,moa,fallback,worktree,browser,secrets,egress,migrate,gateway,proxy,lsp,setup,whatsapp,whatsapp-cloud,slack,send,login,logout,auth,status,pause,resume,cron,sync,webhook,peer,portal,kanban,project,hooks,doctor,verify,security,approvals,dump,debug,backup,checkpoints,import,import-agent,config,skin,console,pairing,skills,bundles,plugins,curator,pets,journey,learning,memory-graph,memory,tools,computer-use,mcp,sessions,insights,monitoring,claw,update,uninstall,acp,profile,completion,dashboard,serve,desktop,gui,logs,prompt-size}
...
Hermes Agent - AI assistant with tool-calling capabilities
positional arguments:
{chat,model,moa,fallback,worktree,browser,secrets,egress,migrate,gateway,proxy,lsp,setup,whatsapp,whatsapp-cloud,slack,send,login,logout,auth,status,pause,resume,cron,sync,webhook,peer,portal,kanban,project,hooks,doctor,verify,security,approvals,dump,debug,backup,checkpoints,import,import-agent,config,skin,console,pairing,skills,bundles,plugins,curator,pets,journey,learning,memory-graph,memory,tools,computer-use,mcp,sessions,insights,monitoring,claw,update,uninstall,acp,profile,completion,dashboard,serve,desktop,gui,logs,prompt-size}
Command to run
chat Interactive chat with the agent
model Select default model and provider
moa Configure Mixture of Agents provider/model slots
fallback Manage fallback providers (tried when the primary
model fails)
worktree Audit and reclaim accumulated git worktrees and merged
branches
browser Real-profile browsing helpers (close a browser locking
its profile)
secrets Manage external secret sources (Bitwarden, 1Password)
egress Manage the iron-proxy egress credential-injection
firewall
migrate Migrate configuration for retired models or deprecated
settings
gateway Messaging gateway management
proxy Local OpenAI-compatible proxy to OAuth providers
lsp Language Server Protocol management
setup Interactive setup wizard
whatsapp Set up WhatsApp integration
whatsapp-cloud Set up WhatsApp Business Cloud API integration
slack Slack integration helpers (manifest generation, etc.)
send Send a message to a configured platform (scripts, cron
jobs, CI).
logout Clear authentication for an inference provider
auth Manage pooled provider credentials
status Show status of all components
pause Emergency stop: pause cron/kanban dispatch and new
gateway turns
resume Lift the emergency stop set by `hermes pause`
cron Cron job management
sync Skill Sync — sync your skills across devices and with
your team
webhook Manage dynamic webhook subscriptions
peer Bot-to-bot DMs across machines (peer Hermes gateways)
portal Set up Nous Portal (login, model pick, Tool Gateway);
see also `portal info`
kanban Multi-profile collaboration board (tasks, links,
comments)
project Manage projects (named, multi-folder workspaces)
hooks Inspect and manage shell-script hooks
doctor Check configuration and dependencies
verify Detect a project's run recipe and smoke-test it
security Supply-chain audit (OSV.dev) for venv, plugins, and
MCP servers
approvals Approval-prompt tools (mine history into allowlist
proposals)
dump Dump setup summary for support/debugging
debug Debug tools — upload logs and system info for support
backup Back up Hermes home directory to a zip file
checkpoints Inspect / prune / clear ~/.hermes/checkpoints/
import Restore a Hermes backup from a zip file
import-agent Import a Claude Code or Codex CLI setup into Hermes
config View and edit configuration
skin List, switch, and tweak skins
console Open the safe Hermes command console
pairing Manage DM pairing codes for user authorization
skills Search, install, configure, and manage skills
bundles Create, list, and manage skill bundles (aliases for
multiple skills)
plugins Manage and validate plugins
curator Background skill maintenance (curator) — status, run,
pause, pin
pets Browse, install, and select petdex animated pets
journey (learning, memory-graph)
Timeline of learned skills + memories over time
memory Configure external memory provider
tools Configure which tools are enabled per platform
computer-use Manage the Computer Use (cua-driver) backend
(macOS/Windows/Linux)
mcp Manage MCP servers and run Hermes as an MCP server
sessions Manage session history (list, rename, export, prune,
delete)
insights Show usage insights and analytics
monitoring Inspect gateway monitoring (health & diagnostics
export)
claw OpenClaw migration tools
update Update Hermes Agent to the latest version
uninstall Uninstall Hermes Agent
acp Run Hermes Agent as an ACP (Agent Client Protocol)
server
profile Manage profiles — multiple isolated Hermes instances
completion Print shell completion script (bash, zsh, or fish)
dashboard Start the web UI dashboard
serve Start the Hermes backend server (headless; powers the
desktop app and remote backends)
desktop (gui) Build and launch the native desktop app
logs View and filter Hermes log files
prompt-size Show a byte breakdown of the system prompt + tool
schemas
options:
-h, --help show this help message and exit
--version, -V Show version and exit
-z PROMPT, --oneshot PROMPT
One-shot mode: send a single prompt and print ONLY the
final response text to stdout. No banner, no spinner,
no tool previews, no session_id line. Tools, memory,
rules, and AGENTS.md in the CWD are loaded as normal;
approvals are auto-bypassed. Intended for scripts /
pipes.
--usage-file PATH One-shot mode only: after the run, write a JSON usage
report (estimated cost, token counts, model,
api_calls) to PATH. The report is written even when
the run fails, so pipelines can always account for
spend. No effect outside -z/--oneshot.
-m MODEL, --model MODEL
Model override for this invocation (e.g.
anthropic/claude-sonnet-4.6). Applies to -z/--oneshot
and --tui. Also settable via HERMES_INFERENCE_MODEL
env var.
--provider PROVIDER Provider override for this invocation (e.g.
openrouter, anthropic). Applies to -z/--oneshot and
--tui. The persistent provider lives in config.yaml
under model.provider — use `hermes setup` or edit the
file to change it.
--reasoning LEVEL Reasoning effort for this invocation: none, minimal,
low, medium, high, xhigh, max, or ultra. Overrides
agent.reasoning_effort in config.yaml for this run
only; the persistent level lives there (or per-model
under agent.reasoning_overrides).
-t TOOLSETS, --toolsets TOOLSETS
Comma-separated toolsets to enable for this
invocation. Applies to -z/--oneshot and --tui.
--resume SESSION, -r SESSION
Resume a previous session by ID or title, or pass
'latest' for the most recent session (workspace-
scoped, like -c with no name)
--no-restore-cwd Don't cd into a resumed session's recorded working
directory.
--in DIR Change into DIR before starting or resuming. Combined
with '--resume latest' or -c, the most recent session
for DIR's workspace is picked, and the session stays
in DIR (skips the recorded-cwd restore).
--continue [SESSION_NAME], -c [SESSION_NAME]
Resume a session by name, or the most recent if no
name given
--worktree, -w Run in an isolated git worktree (for parallel agents)
--accept-hooks Auto-approve any unseen shell hooks declared in
config.yaml without a TTY prompt. Equivalent to
HERMES_ACCEPT_HOOKS=1 or hooks_auto_accept: true in
config.yaml. Use on CI / headless runs that can't
prompt.
--skills SKILLS, -s SKILLS
Preload one or more skills for the session (repeat
flag or comma-separate)
--yolo Bypass all dangerous command approval prompts (use at
your own risk)
--pass-session-id Include the session ID in the agent's system prompt
--ignore-user-config Ignore ~/.hermes/config.yaml and fall back to built-in
defaults (credentials in .env are still loaded)
--ignore-rules Skip auto-injection of AGENTS.md, SOUL.md,
.cursorrules, memory, and preloaded skills
--safe-mode Troubleshooting mode: disable ALL customizations —
user config, AGENTS.md/memory injection, plugins, and
MCP servers (implies --ignore-user-config and
--ignore-rules)
--tui Launch the modern TUI instead of the classic REPL
--cli Force the classic prompt_toolkit REPL (overrides
display.interface=tui)
--dev With --tui: run TypeScript sources via tsx (skip dist
build)
Examples:
hermes Start interactive chat
hermes chat -q "Hello" Single query mode
hermes --tui Launch the modern TUI (or set display.interface: tui)
hermes --cli Force the classic REPL (overrides display.interface: tui)
hermes -c Resume the most recent session
hermes -c "my project" Resume a session by name (latest in lineage)
hermes --resume <session_id> Resume a specific session by ID
hermes --resume latest Resume the most recent session (same as -c)
hermes --tui --resume latest --in ./dir Resume ./dir's latest session in the TUI
hermes setup Run setup wizard
hermes logout Clear stored authentication
hermes auth add <provider> Add a pooled credential
hermes auth list List pooled credentials
hermes auth remove <p> <t> Remove pooled credential by index, id, or label
hermes auth reset <provider> Clear exhaustion status for a provider
hermes model Select default model
hermes fallback [list] Show fallback provider chain
hermes fallback add Add a fallback provider (same picker as `hermes model`)
hermes fallback remove Remove a fallback provider from the chain
hermes config View configuration
hermes config edit Edit config in $EDITOR
hermes config set model gpt-4 Set a config value
hermes gateway Run messaging gateway
hermes -s hermes-agent-dev,github-auth
hermes -w Start in isolated git worktree
hermes gateway install Install gateway background service
hermes sessions list List past sessions
hermes sessions browse Interactive session picker
hermes sessions rename ID T Rename/title a session
hermes logs View agent.log (last 50 lines)
hermes logs -f Follow agent.log in real time
hermes logs errors View errors.log
hermes logs --since 1h Lines from the last hour
hermes debug share Upload debug report for support
hermes console Open the safe Hermes command console
hermes update Update to latest version
hermes dashboard Start web UI dashboard (port 9119)
hermes dashboard --stop Stop running dashboard processes
hermes dashboard --status List running dashboard processes
For more help on a command:
hermes <command> --help
$ hermes cron --help
usage: hermes cron [-h] [--accept-hooks]
{list,create,add,edit,pause,resume,run,remove,rm,delete,status,runs,history,incidents,notepad,doctor,tick}
...
Manage scheduled tasks
positional arguments:
{list,create,add,edit,pause,resume,run,remove,rm,delete,status,runs,history,incidents,notepad,doctor,tick}
list List scheduled jobs
create (add) Create a scheduled job
edit Edit an existing scheduled job
pause Pause a scheduled job
resume Resume a paused job
run Run a job on the next scheduler tick
remove (rm, delete)
Remove a scheduled job
status Check if cron scheduler is running
runs (history) Show durable execution attempts
incidents List or acknowledge durable cron failure incidents
notepad Read/write a job's durable notepad (persistent KV
across runs)
doctor Check scheduled jobs for common health issues
tick Run due jobs once and exit
options:
-h, --help show this help message and exit
--accept-hooks Auto-approve unseen shell hooks without a TTY prompt
(equivalent to HERMES_ACCEPT_HOOKS=1 /
hooks_auto_accept: true).
$ hermes sessions --help
usage: hermes sessions [-h]
{list,export,delete,prune,archive,optimize,clean-markers,optimize-storage,repair,repair-routing,recover,stats,rename,pin,unpin,pinned,retitle-skills,browse,import}
...
View and manage the SQLite session store
positional arguments:
{list,export,delete,prune,archive,optimize,clean-markers,optimize-storage,repair,repair-routing,recover,stats,rename,pin,unpin,pinned,retitle-skills,browse,import}
list List recent sessions
export Export sessions to JSONL, Markdown, or QMD
delete Delete a specific session
prune Delete old sessions (filterable by time window,
source, title, ...)
archive Bulk-archive (soft-hide) sessions matching filters —
no deletion
optimize Reclaim disk space: merge FTS5 segments + VACUUM (no
data change)
clean-markers Permanently clear stale tool-call marker content left
by sessions from before #78148
optimize-storage Migrate the search index to the compact v23 layout
(reclaims disk on large DBs)
repair Repair a malformed state.db schema so hidden sessions
reappear
repair-routing Re-stamp gateway sessions that lost their routing
identity
recover Rebuild canonical session data into a separate clean
database
stats Show session store statistics
rename Set or change a session's title
pin Pin session(s) — durable keep flag, exempt from auto-
archive
unpin Remove the pin (durable keep flag) from session(s)
pinned List pinned sessions
retitle-skills Re-title sessions whose auto-title came from a
/skill's own text
browse Interactive session picker — browse, search, and
resume sessions
import Import a Claude Code or Codex CLI session into Hermes
options:
-h, --help show this help message and exit
$ hermes profile --help
usage: hermes profile [-h]
{list,use,create,delete,describe,show,alias,rename,export,import,install,update,info}
...
positional arguments:
{list,use,create,delete,describe,show,alias,rename,export,import,install,update,info}
list List all profiles
use Set sticky default profile
create Create a new profile
delete Delete a profile
describe Read or set a profile's description (used by the
kanban orchestrator)
show Show profile details
alias Manage wrapper scripts
rename Rename a profile ('default': sets a display name; id
unchanged)
export Export a profile to archive
import Import a profile from archive
install Install a profile distribution from a git URL or local
directory
update Re-pull a distribution and apply updates (user data
preserved)
info Show a profile's distribution manifest (version,
requirements, source)
options:
-h, --help show this help message and exit
$ hermes skills --help
usage: hermes skills [-h]
{trust,untrust,browse,search,install,inspect,list,check,update,audit,uninstall,reset,list-modified,diff,opt-out,opt-in,repair-official,publish,snapshot,tap,config}
...
Search, install, inspect, audit, configure, and manage skills from skills.sh,
well-known agent skill endpoints, GitHub, ClawHub, and other registries.
positional arguments:
{trust,untrust,browse,search,install,inspect,list,check,update,audit,uninstall,reset,list-modified,diff,opt-out,opt-in,repair-official,publish,snapshot,tap,config}
trust Trust a project so its repo-local skills
(./.hermes/skills, ./.agents/skills) load
untrust Revoke project-skill trust for a repo
browse Browse all available skills (paginated)
search Search skill registries
install Install a skill
inspect Preview a skill without installing
list List installed skills
check Check installed hub skills for updates
update Update installed hub skills
audit Re-scan installed hub skills
uninstall Remove a hub-installed skill
reset Reset a bundled skill — clears 'user-modified'
tracking so updates work again
list-modified List bundled skills you've edited (which `hermes
update` keeps)
diff Show how your copy of a bundled skill differs from the
stock version
opt-out Stop bundled skills from being seeded into this
profile
opt-in Re-enable bundled-skill seeding (undo opt-out)
repair-official Backfill or restore official optional skills from repo
source
publish Publish a skill to a registry
snapshot Export/import skill configurations
tap Manage skill sources
config Interactive skill configuration — enable/disable
individual skills
options:
-h, --help show this help message and exit
$ hermes memory --help
usage: hermes memory [-h] {setup,status,off,reset} ...
Set up and manage external memory provider plugins. Available providers:
honcho, openviking, mem0, hindsight, holographic, retaindb, byterover. Only
one external provider can be active at a time. Built-in memory
(MEMORY.md/USER.md) is always active.
positional arguments:
{setup,status,off,reset}
setup Interactive provider selection and configuration
status Show current memory provider config
off Disable external provider (built-in only)
reset Erase all built-in memory (MEMORY.md and USER.md)
options:
-h, --help show this help message and exit
$ hermes webhook --help
usage: hermes webhook [-h] {subscribe,add,list,ls,remove,rm,test} ...
Create, list, and remove webhook subscriptions for event-driven agent
activation
positional arguments:
{subscribe,add,list,ls,remove,rm,test}
subscribe (add) Create a webhook subscription
list (ls) List all dynamic subscriptions
remove (rm) Remove a subscription
test Send a test POST to a webhook route
options:
-h, --help show this help message and exit
$ hermes gateway --help
usage: hermes gateway [-h] [--accept-hooks]
{run,start,stop,restart,status,install,uninstall,list,setup,migrate-legacy,enroll}
...
Manage the messaging gateway (Telegram, Discord, WhatsApp, Weixin, and more)
positional arguments:
{run,start,stop,restart,status,install,uninstall,list,setup,migrate-legacy,enroll}
run Run gateway in foreground (recommended for WSL,
Docker, Termux)
start Start the installed systemd/launchd background service
stop Stop gateway service
restart Restart gateway service
status Show gateway status
install Install gateway as a systemd/launchd background
service
uninstall Uninstall gateway service
list List all profiles and their gateway status
setup Configure messaging platforms
migrate-legacy Remove legacy hermes.service units from pre-rename
installs
enroll Enroll this gateway with a relay connector (writes
relay auth creds to .env)
options:
-h, --help show this help message and exit
--accept-hooks Auto-approve unseen shell hooks without a TTY prompt
(equivalent to HERMES_ACCEPT_HOOKS=1 /
hooks_auto_accept: true).
$ hermes config --help
usage: hermes config [-h]
{show,edit,get,set,unset,path,env-path,check,migrate} ...
Manage Hermes Agent configuration
positional arguments:
{show,edit,get,set,unset,path,env-path,check,migrate}
show Show current configuration
edit Open config file in editor
get Print a resolved configuration value
set Set a configuration value
unset Remove a configuration value
path Print config file path
env-path Print .env file path
check Check for missing/outdated config
migrate Update config with new options
options:
-h, --help show this help message and exit
$ hermes send --help
usage: hermes send [-h] [-t TARGET] [-f PATH] [-s LINE] [-l] [-q] [--json]
[message]
Pipe text from any shell script to any messaging platform Hermes is already configured for. Reuses the gateway's platform credentials (~/.hermes/.env + ~/.hermes/config.yaml) — no LLM, no agent loop, no running gateway required for bot-token platforms like Telegram/Discord/Slack/Signal.
positional arguments:
message Message text. If omitted, read from --file or stdin.
options:
-h, --help show this help message and exit
-t TARGET, --to TARGET
Delivery target. Format: 'platform' (home channel),
'platform:chat_id', 'platform:chat_id:thread_id', or
'platform:#channel-name'. Examples: telegram,
telegram:-1001234567890:17585, discord:#ops,
slack:C0123ABCD, signal:+15551234567.
-f PATH, --file PATH Read message body from PATH (text only). Use '-' to
force stdin. To send an image/document as an
attachment, use MEDIA:<path> in the message text
instead.
-s LINE, --subject LINE
Prepend a subject/header line before the message body.
-l, --list List available targets. Optional positional filter:
`hermes send --list telegram`.
-q, --quiet Suppress stdout on success (exit code only).
--json Emit raw JSON result instead of human-readable output.
Examples:
hermes send --to telegram "deploy finished"
echo "RAM 92%" | hermes send --to telegram:-1001234567890
hermes send --to discord:#ops --file /tmp/report.md
hermes send --to slack:#eng --subject "[CI]" --file build.log
hermes send --to telegram "MEDIA:/tmp/chart.png" # send a media attachment
hermes send --list # all platforms
hermes send --list telegram # filter by platform
Exit codes: 0 ok, 1 delivery/backend error, 2 usage error.