Hermes Agent CLI Reference
Authoritative reference for Hermes terminal commands. For in-chat slash commands, see the Hermes docs slash-commands page.
Source: https://github.com/NousResearch/hermes-agent/blob/main/website/docs/reference/cli-commands.md
Global entrypoint
hermes [global-options] <command> [subcommand/options]
Global options
| Option |
Description |
--version, -V |
Show version and exit. |
--profile <name>, -p <name> |
Select which Hermes profile to use. Overrides the sticky default from hermes profile use. |
--resume <session>, -r <session> |
Resume a previous session by ID or title. |
--continue [name], -c [name] |
Resume the most recent session, or most recent matching a title. |
--worktree, -w |
Start in an isolated git worktree for parallel-agent workflows. |
--yolo |
Bypass dangerous-command approval prompts. |
--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. |
--tui |
Launch the TUI instead of the classic CLI. Equivalent to HERMES_TUI=1. |
--dev |
With --tui: run TypeScript sources directly via tsx (for TUI contributors). |
Top-level commands
| Command |
Purpose |
hermes chat |
Interactive or one-shot chat with the agent. |
hermes model |
Interactively choose the default provider and model. |
hermes fallback |
Manage fallback providers tried when the primary model errors. |
hermes gateway |
Run or manage the messaging gateway service. |
hermes setup |
Interactive setup wizard for all or part of the configuration. |
hermes whatsapp |
Configure and pair the WhatsApp bridge. |
hermes slack |
Slack helpers (generate app manifest with every command as native slash). |
hermes auth |
Manage credentials — add, list, remove, reset, set strategy. Handles OAuth flows. |
hermes status |
Show agent, auth, and platform status. |
hermes cron |
Inspect and tick the cron scheduler. |
hermes kanban |
Multi-profile collaboration board (tasks, links, dispatcher). |
hermes webhook |
Manage dynamic webhook subscriptions for event-driven activation. |
hermes hooks |
Inspect, approve, or remove shell-script hooks declared in config. |
hermes doctor |
Diagnose config and dependency issues. |
hermes dump |
Copy-pasteable setup summary for support/debugging. |
hermes debug |
Debug tools — upload logs and system info for support. |
hermes backup |
Back up Hermes home directory to a zip file. |
hermes checkpoints |
Inspect/prune/clear ~/.hermes/checkpoints/ (shadow store for /rollback). |
hermes import |
Restore a Hermes backup from a zip file. |
hermes logs |
View, tail, and filter agent/gateway/error log files. |
hermes config |
Show, edit, migrate, and query configuration files. |
hermes pairing |
Approve or revoke messaging pairing codes. |
hermes skills |
Browse, install, publish, audit, and configure skills. |
hermes curator |
Background skill maintenance — status, run, pause, pin. |
hermes memory |
Configure external memory provider. |
hermes acp |
Run Hermes as an ACP server for editor integration. |
hermes mcp |
Manage MCP server configurations and run Hermes as an MCP server. |
hermes plugins |
Manage Hermes Agent plugins (install, enable, disable, remove). |
hermes tools |
Configure enabled tools per platform. |
hermes sessions |
Browse, export, prune, rename, and delete sessions. |
hermes insights |
Show token/cost/activity analytics. |
hermes claw |
OpenClaw migration helpers. |
hermes dashboard |
Launch the web dashboard for managing config, API keys, and sessions. |
hermes profile |
Manage profiles — multiple isolated Hermes instances. |
hermes completion |
Print shell completion scripts (bash/zsh/fish). |
hermes version |
Show version information. |
hermes update |
Pull latest code and reinstall dependencies. |
hermes uninstall |
Remove Hermes from the system. |
hermes chat
hermes chat [options]
| Option |
Description |
-q, --query "..." |
One-shot, non-interactive prompt. |
-m, --model <model> |
Override the model for this run. |
-t, --toolsets <list> |
Enable a comma-separated set of toolsets. |
--provider <name> |
Force a provider: auto, openrouter, nous, openai-codex, copilot-acp, copilot, anthropic, gemini, google-gemini-cli, huggingface, zai, kimi-coding, kimi-coding-cn, minimax, minimax-cn, minimax-oauth, kilocode, xiaomi, arcee, gmi, alibaba, alibaba-coding-plan, deepseek, nvidia, ollama-cloud, xai (alias grok), qwen-oauth, bedrock, opencode-zen, opencode-go, ai-gateway, azure-foundry, tencent-tokenhub. |
-s, --skills <list> |
Preload one or more skills for the session (repeatable or comma-separated). |
-v, --verbose |
Verbose output. |
-Q, --quiet |
Programmatic mode: suppress banner/spinner/tool previews. |
--image <path> |
Attach a local image to a single query. |
--resume <id> / --continue [name] |
Resume a session directly from chat. |
--worktree |
Create an isolated git worktree for this run. |
--checkpoints |
Enable filesystem checkpoints before destructive file changes. |
--yolo |
Skip approval prompts. |
--pass-session-id |
Pass the session ID into the system prompt. |
--ignore-user-config |
Ignore ~/.hermes/config.yaml and use built-in defaults. |
--ignore-rules |
Skip auto-injection of AGENTS.md, SOUL.md, .cursorrules, persistent memory, and preloaded skills. |
--source <tag> |
Session source tag for filtering (default: cli). Use tool for third-party integrations. |
--max-turns <n> |
Maximum tool-calling iterations per conversation turn (default: 90). |
hermes -z <prompt> — scripted one-shot
Pure one-shot entry: single prompt in, final response text out, nothing else on stdout/stderr. No banner, no spinner, no tool previews. Designed for shell scripts, CI, cron, and pipe-based workflows.
hermes -z "What's the capital of France?"
answer=$(hermes -z "summarize this" < /path/to/file.txt)
Per-run overrides (no mutation to config):
| Flag |
Equivalent env var |
Purpose |
-m / --model <id> |
HERMES_INFERENCE_MODEL |
Override the model for this run |
--provider <name> |
HERMES_INFERENCE_PROVIDER |
Override the provider for this run |
Examples
hermes
hermes chat -q "Summarize the latest PRs"
hermes chat --provider openrouter --model anthropic/claude-sonnet-4.6
hermes chat --toolsets web,terminal,skills
hermes chat --quiet -q "Return only JSON"
hermes chat --worktree -q "Review this repo and open a PR"
hermes chat --ignore-user-config --ignore-rules -q "Repro without my personal setup"
hermes model
Interactive provider + model selector. This is the command for adding new providers, setting up API keys, and running OAuth flows. Run from your terminal — not inside an active Hermes chat session.
hermes model
/model slash command (mid-session)
Switch between already-configured models without leaving a session:
/model # Show current model and available options
/model claude-sonnet-4 # Switch model (auto-detects provider)
/model zai:glm-5 # Switch provider and model
/model custom:qwen-2.5 # Use model on your custom endpoint
/model custom # Auto-detect model from custom endpoint
/model custom:local:qwen-2.5 # Use a named custom provider
/model openrouter:anthropic/claude-sonnet-4 # Switch back to cloud
/model claude-sonnet-4 --global # Switch and save as new default
hermes gateway
hermes gateway <subcommand>
| Subcommand |
Description |
run |
Run the gateway in the foreground. Recommended for WSL, Docker, and Termux. |
start |
Start the installed systemd/launchd background service. |
stop |
Stop the service (or foreground process). |
restart |
Restart the service. |
status |
Show service status. |
install |
Install as a systemd (Linux) or launchd (macOS) background service. |
uninstall |
Remove the installed service. |
setup |
Interactive messaging-platform setup. |
| Option |
Description |
--all |
On start/restart/stop: act on every profile's gateway. |
hermes setup
hermes setup [model|tts|terminal|gateway|tools|agent] [--non-interactive] [--reset] [--quick] [--reconfigure]
| Section |
Description |
model |
Provider and model setup. |
terminal |
Terminal backend and sandbox setup. |
gateway |
Messaging platform setup. |
tools |
Enable/disable tools per platform. |
agent |
Agent behavior settings. |
| Option |
Description |
--quick |
Only prompt for items that are missing or unset. |
--non-interactive |
Use defaults/environment values without prompts. |
--reset |
Reset configuration to defaults before setup. |
--reconfigure |
Backwards-compat alias — bare hermes setup on existing install now does this by default. |
hermes auth
hermes auth # Interactive wizard
hermes auth list # Show all pools
hermes auth list openrouter # Show specific provider
hermes auth add openrouter --api-key sk-or-v1-xxx # Add API key
hermes auth add anthropic --type oauth # Add OAuth credential
hermes auth remove openrouter 2 # Remove by index
hermes auth reset openrouter # Clear cooldowns
Subcommands: add, list, remove, reset. No subcommand launches the interactive wizard.
hermes status
hermes status [--all] [--deep]
| Option |
Description |
--all |
Show all details in a shareable redacted format. |
--deep |
Run deeper checks that may take longer. |
hermes cron
hermes cron <subcommand>
| Subcommand |
Description |
list |
Show scheduled jobs. |
create / add |
Create a scheduled job from a prompt (optionally --skill). |
edit |
Update a job's schedule, prompt, name, delivery, repeat count, or skills. |
pause |
Pause a job without deleting it. |
resume |
Resume a paused job and compute next run. |
run |
Trigger a job on the next scheduler tick. |
remove |
Delete a scheduled job. |
status |
Check whether the cron scheduler is running. |
tick |
Run due jobs once and exit. |
hermes kanban
hermes kanban [--board <slug>] <action> [options]
Multi-profile collaboration board with its own SQLite DB per board.
| Action |
Purpose |
init |
Create kanban.db if missing. |
boards list / boards ls |
List all boards with task counts. |
boards create <slug> |
Create a new board. Flags: --name, --description, --icon, --color, --switch. |
boards switch <slug> |
Set active board. |
boards show |
Print currently-active board info. |
boards rename <slug> "name" |
Change display name. Slug is immutable. |
boards rm <slug> |
Archive (default) or --delete to hard-delete. |
create "title" |
Create a task. Flags: --body, --assignee, --parent, --workspace, --tenant, --priority, --triage, --idempotency-key, --max-runtime, --skill. |
list / ls |
List tasks. Filter: --mine, --assignee, --status, --tenant, --archived, --json. |
show <id> |
Show task with comments/events. --json for machine output. |
assign <id> <profile> |
Assign or reassign. Use none to unassign. |
link <parent> <child> |
Add a dependency (cycle-detected). |
unlink <parent> <child> |
Remove a dependency. |
claim <id> |
Atomically claim a ready task. |
comment <id> "text" |
Append a comment. |
complete <id> |
Mark done. Flags: --result, --summary, --metadata. |
block <id> "reason" |
Mark blocked (also appends reason as comment). |
unblock <id> |
Return blocked task to ready. |
archive <id> |
Hide from default list. |
tail <id> |
Follow task's event stream. |
dispatch |
One dispatcher pass. Flags: --dry-run, --max N, --json. |
context <id> |
Print full worker context. |
gc |
Remove scratch workspaces for archived tasks. |
hermes webhook
hermes webhook <subscribe|list|remove|test>
| Subcommand |
Description |
subscribe / add |
Create a webhook route. |
list / ls |
Show all agent-created subscriptions. |
remove / rm |
Delete a dynamic subscription. |
test |
Send a test POST to verify a subscription. |
hermes webhook subscribe options
| Option |
Description |
--prompt |
Prompt template with {dot.notation} payload references. |
--events |
Comma-separated event types to accept. Empty = all. |
--description |
Human-readable description. |
--skills |
Comma-separated skill names to load. |
--deliver |
Delivery target: log (default), telegram, discord, slack, github_comment. |
--deliver-chat-id |
Target chat/channel ID for cross-platform delivery. |
--secret |
Custom HMAC secret. Auto-generated if omitted. |
--deliver-only |
Skip the agent — deliver rendered prompt as literal message. Zero LLM cost. |
hermes doctor
hermes doctor [--fix]
hermes dump
hermes dump [--show-keys]
Outputs a compact plain-text setup summary for sharing. --show-keys shows redacted API key prefixes.
hermes debug
hermes debug share [--lines N] [--expire days] [--local]
Upload debug report (system info + recent logs) to a paste service and get a shareable URL.
hermes backup
hermes backup [-o path] [-q] [-l label]
| Option |
Description |
-o, --output <path> |
Output path for the zip file. Default: ~/hermes-backup-<timestamp>.zip. |
-q, --quick |
Quick snapshot: only critical state files. Much faster. |
-l, --label <name> |
Label for the snapshot (only with --quick). |
hermes checkpoints
hermes checkpoints [subcommand]
| Subcommand |
Description |
status (default) |
Show total size, project count, and breakdown. |
list |
Alias for status. |
prune |
Force cleanup — delete orphan/stale projects, GC the store. |
clear |
Delete entire checkpoint base. Irreversible (asks confirm unless -f). |
clear-legacy |
Delete only v1 migration archives. |
| Option |
Description |
--limit N |
Max projects to list (default 20). |
--retention-days N |
Drop projects older than N days (default 7). |
--max-size-mb N |
Drop oldest commits until total <= N MB (default 500). |
--keep-orphans |
Skip deleting projects whose working directory no longer exists. |
-f, --force |
Skip confirmation prompt. |
hermes import
hermes import <zipfile> [-f]
Restore a Hermes backup. --force skips the confirmation prompt.
Stop the gateway before importing to avoid conflicts.
hermes logs
hermes logs [log_name] [options]
| Name |
File |
What it captures |
agent (default) |
agent.log |
All agent activity — API calls, tool dispatch, session lifecycle |
errors |
errors.log |
Warnings and errors only |
gateway |
gateway.log |
Messaging gateway activity |
| Option |
Description |
-n, --lines <N> |
Number of lines (default: 50). |
-f, --follow |
Follow the log in real time (like tail -f). |
--level <LEVEL> |
Minimum log level: DEBUG, INFO, WARNING, ERROR, CRITICAL. |
--session <ID> |
Filter by session ID substring. |
--since <TIME> |
Show lines from relative time ago: 30m, 1h, 2d. |
--component <NAME> |
Filter by component: gateway, agent, tools, cli, cron. |
hermes config
hermes config <subcommand>
| Subcommand |
Description |
show |
Show current config values. |
edit |
Open config.yaml in your editor. |
set <key> <value> |
Set a config value. |
path |
Print the config file path. |
env-path |
Print the .env file path. |
check |
Check for missing or stale config. |
migrate |
Add newly introduced options interactively. |
hermes pairing
hermes pairing <list|approve|revoke|clear-pending>
hermes skills
hermes skills <subcommand>
| Subcommand |
Description |
browse |
Paginated browser for skill registries. |
search |
Search skill registries. |
install |
Install a skill. |
inspect |
Preview a skill without installing it. |
list |
List installed skills. |
check |
Check installed hub skills for upstream updates. |
update |
Reinstall hub skills with upstream changes. |
audit |
Re-scan installed hub skills. |
uninstall |
Remove a hub-installed skill. |
reset |
Un-stick a bundled skill flagged as user_modified. |
publish |
Publish a skill to a registry. |
snapshot |
Export/import skill configurations. |
tap |
Manage custom skill sources. |
config |
Interactive enable/disable configuration by platform. |
Common examples:
hermes skills browse
hermes skills search react --source skills-sh
hermes skills inspect official/security/1password
hermes skills install official/migration/openclaw-migration
hermes skills install https://sharethis.chat/SKILL.md # Direct URL
hermes skills check
hermes skills update
hermes skills config
hermes curator
hermes curator <subcommand>
| Subcommand |
Description |
status |
Show curator status and skill stats. |
run |
Trigger a curator review now. |
run --sync |
Block until the LLM pass finishes. |
run --dry-run |
Preview only — no mutations. |
backup |
Take a manual tar.gz snapshot of skills. |
rollback |
Restore skills from a snapshot. --list to see available. |
pause |
Pause the curator until resumed. |
resume |
Resume a paused curator. |
pin <skill> |
Pin a skill so curator never auto-transitions it. |
unpin <skill> |
Unpin a skill. |
restore <skill> |
Restore an archived skill. |
hermes fallback
hermes fallback <subcommand>
| Subcommand |
Description |
list (alias: ls) |
Show current fallback chain. |
add |
Pick a provider + model and append to the chain. |
remove (alias: rm) |
Pick an entry to delete. |
clear |
Remove all fallback entries. |
hermes hooks
hermes hooks <subcommand>
| Subcommand |
Description |
list (alias: ls) |
List configured hooks with matcher, timeout, and consent status. |
test <event> |
Fire every hook matching <event> against a synthetic payload. |
revoke |
Remove a command's allowlist entries. |
doctor |
Check each configured hook: exec bit, allowlist, mtime drift, JSON validity. |
hermes memory
hermes memory <subcommand>
| Subcommand |
Description |
setup |
Interactive provider selection and configuration. |
status |
Show current memory provider config. |
off |
Disable external provider (built-in only). |
Available providers: honcho, openviking, mem0, hindsight, holographic, retaindb, byterover, supermemory. When an external provider is active, it may register its own hermes <provider> command.
hermes mcp
hermes mcp <subcommand>
| Subcommand |
Description |
serve [-v] |
Run Hermes as an MCP server. |
| `add [--url URL] [--command CMD] [--args ...] [--auth oauth |
header]` |
remove <name> |
Remove an MCP server from config. |
list |
List configured MCP servers. |
test <name> |
Test connection to an MCP server. |
configure <name> |
Toggle tool selection for a server. |
hermes plugins
hermes plugins [subcommand]
| Subcommand |
Description |
| (none) |
Composite interactive UI — general plugin toggles + provider plugin config. |
install <identifier> [--force] |
Install a plugin from Git URL or owner/repo. |
update <name> |
Pull latest changes for an installed plugin. |
remove <name> |
Remove an installed plugin. |
enable <name> |
Enable a disabled plugin. |
disable <name> |
Disable a plugin without removing it. |
list |
List installed plugins with status. |
hermes tools
hermes tools [--summary]
--summary prints the enabled-tools summary and exits. Without it, launches the interactive per-platform tool configuration UI.
hermes sessions
hermes sessions <subcommand>
| Subcommand |
Description |
list |
List recent sessions. |
browse |
Interactive session picker with search and resume. |
export <output> [--session-id ID] |
Export sessions to JSONL. |
delete <session-id> |
Delete one session. |
prune |
Delete old sessions. |
stats |
Show session-store statistics. |
rename <session-id> <title> |
Set or change a session title. |
hermes insights
hermes insights [--days N] [--source platform]
hermes claw
hermes claw migrate [options]
Migrate OpenClaw setup to Hermes.
| Option |
Description |
--dry-run |
Preview without writing anything. |
--preset <name> |
full (all compatible settings) or user-data (excludes infra config). |
--overwrite |
Overwrite existing Hermes files on conflicts. |
--migrate-secrets |
Include API keys in migration. |
--no-backup |
Skip pre-migration zip snapshot. |
--source <path> |
Custom OpenClaw directory (default: ~/.openclaw). |
--workspace-target <path> |
Target directory for workspace instructions. |
--skill-conflict <mode> |
Handle skill name collisions: skip (default), overwrite, or rename. |
--yes |
Skip confirmation prompt. |
hermes dashboard
hermes dashboard [--port N] [--host addr] [--no-open]
Launch the web dashboard. Requires pip install hermes-agent[web].
| Option |
Default |
Description |
--port |
9119 |
Port to run the web server on. |
--host |
127.0.0.1 |
Bind address. |
--no-open |
— |
Don't auto-open the browser. |
hermes profile
hermes profile <subcommand>
| Subcommand |
Description |
list |
List all profiles. |
use <name> |
Set a sticky default profile. |
create <name> [--clone] [--clone-all] [--clone-from <source>] [--no-alias] |
Create a new profile. |
delete <name> [-y] |
Delete a profile. |
show <name> |
Show profile details. |
alias <name> [--remove] [--name NAME] |
Manage wrapper scripts. |
rename <old> <new> |
Rename a profile. |
export <name> [-o FILE] |
Export to .tar.gz. |
import <archive> [--name NAME] |
Import from .tar.gz. |
Examples:
hermes profile list
hermes profile create work --clone
hermes profile use work
hermes profile alias work --name h-work
hermes -p work chat -q "Hello from work profile"
hermes completion
hermes completion [bash|zsh|fish]
hermes update
hermes update [--check] [--backup] [--restart-gateway]
| Option |
Description |
--check |
Print current vs latest commit. Does not pull or install. |
--backup |
Create pre-update snapshot of HERMES_HOME. |
--restart-gateway |
Restart the gateway after update. |
hermes uninstall
hermes uninstall [--full] [--yes]
Remove Hermes. --full deletes all config/data.
1---2name: hermes-cli3description: Hermes Agent CLI commands reference. Use when the user asks about hermes-agent CLI usage, commands, flags, or subcommands. Covers the full hermes terminal command surface.4---56# Hermes Agent CLI Reference78Authoritative reference for Hermes terminal commands. For in-chat slash commands, see the Hermes docs slash-commands page.910Source: https://github.com/NousResearch/hermes-agent/blob/main/website/docs/reference/cli-commands.md1112## Global entrypoint1314```bash15hermes [global-options] <command> [subcommand/options]16```1718### Global options1920| Option | Description |21|--------|-------------|22| `--version`, `-V` | Show version and exit. |23| `--profile <name>`, `-p <name>` | Select which Hermes profile to use. Overrides the sticky default from `hermes profile use`. |24| `--resume <session>`, `-r <session>` | Resume a previous session by ID or title. |25| `--continue [name]`, `-c [name]` | Resume the most recent session, or most recent matching a title. |26| `--worktree`, `-w` | Start in an isolated git worktree for parallel-agent workflows. |27| `--yolo` | Bypass dangerous-command approval prompts. |28| `--pass-session-id` | Include the session ID in the agent's system prompt. |29| `--ignore-user-config` | Ignore `~/.hermes/config.yaml` and fall back to built-in defaults. Credentials in `.env` are still loaded. |30| `--ignore-rules` | Skip auto-injection of `AGENTS.md`, `SOUL.md`, `.cursorrules`, memory, and preloaded skills. |31| `--tui` | Launch the TUI instead of the classic CLI. Equivalent to `HERMES_TUI=1`. |32| `--dev` | With `--tui`: run TypeScript sources directly via `tsx` (for TUI contributors). |3334## Top-level commands3536| Command | Purpose |37|---------|---------|38| `hermes chat` | Interactive or one-shot chat with the agent. |39| `hermes model` | Interactively choose the default provider and model. |40| `hermes fallback` | Manage fallback providers tried when the primary model errors. |41| `hermes gateway` | Run or manage the messaging gateway service. |42| `hermes setup` | Interactive setup wizard for all or part of the configuration. |43| `hermes whatsapp` | Configure and pair the WhatsApp bridge. |44| `hermes slack` | Slack helpers (generate app manifest with every command as native slash). |45| `hermes auth` | Manage credentials — add, list, remove, reset, set strategy. Handles OAuth flows. |46| `hermes status` | Show agent, auth, and platform status. |47| `hermes cron` | Inspect and tick the cron scheduler. |48| `hermes kanban` | Multi-profile collaboration board (tasks, links, dispatcher). |49| `hermes webhook` | Manage dynamic webhook subscriptions for event-driven activation. |50| `hermes hooks` | Inspect, approve, or remove shell-script hooks declared in config. |51| `hermes doctor` | Diagnose config and dependency issues. |52| `hermes dump` | Copy-pasteable setup summary for support/debugging. |53| `hermes debug` | Debug tools — upload logs and system info for support. |54| `hermes backup` | Back up Hermes home directory to a zip file. |55| `hermes checkpoints` | Inspect/prune/clear `~/.hermes/checkpoints/` (shadow store for `/rollback`). |56| `hermes import` | Restore a Hermes backup from a zip file. |57| `hermes logs` | View, tail, and filter agent/gateway/error log files. |58| `hermes config` | Show, edit, migrate, and query configuration files. |59| `hermes pairing` | Approve or revoke messaging pairing codes. |60| `hermes skills` | Browse, install, publish, audit, and configure skills. |61| `hermes curator` | Background skill maintenance — status, run, pause, pin. |62| `hermes memory` | Configure external memory provider. |63| `hermes acp` | Run Hermes as an ACP server for editor integration. |64| `hermes mcp` | Manage MCP server configurations and run Hermes as an MCP server. |65| `hermes plugins` | Manage Hermes Agent plugins (install, enable, disable, remove). |66| `hermes tools` | Configure enabled tools per platform. |67| `hermes sessions` | Browse, export, prune, rename, and delete sessions. |68| `hermes insights` | Show token/cost/activity analytics. |69| `hermes claw` | OpenClaw migration helpers. |70| `hermes dashboard` | Launch the web dashboard for managing config, API keys, and sessions. |71| `hermes profile` | Manage profiles — multiple isolated Hermes instances. |72| `hermes completion` | Print shell completion scripts (bash/zsh/fish). |73| `hermes version` | Show version information. |74| `hermes update` | Pull latest code and reinstall dependencies. |75| `hermes uninstall` | Remove Hermes from the system. |7677---7879## `hermes chat`8081```bash82hermes chat [options]83```8485| Option | Description |86|--------|-------------|87| `-q`, `--query "..."` | One-shot, non-interactive prompt. |88| `-m`, `--model <model>` | Override the model for this run. |89| `-t`, `--toolsets <list>` | Enable a comma-separated set of toolsets. |90| `--provider <name>` | Force a provider: `auto`, `openrouter`, `nous`, `openai-codex`, `copilot-acp`, `copilot`, `anthropic`, `gemini`, `google-gemini-cli`, `huggingface`, `zai`, `kimi-coding`, `kimi-coding-cn`, `minimax`, `minimax-cn`, `minimax-oauth`, `kilocode`, `xiaomi`, `arcee`, `gmi`, `alibaba`, `alibaba-coding-plan`, `deepseek`, `nvidia`, `ollama-cloud`, `xai` (alias `grok`), `qwen-oauth`, `bedrock`, `opencode-zen`, `opencode-go`, `ai-gateway`, `azure-foundry`, `tencent-tokenhub`. |91| `-s`, `--skills <list>` | Preload one or more skills for the session (repeatable or comma-separated). |92| `-v`, `--verbose` | Verbose output. |93| `-Q`, `--quiet` | Programmatic mode: suppress banner/spinner/tool previews. |94| `--image <path>` | Attach a local image to a single query. |95| `--resume <id>` / `--continue [name]` | Resume a session directly from chat. |96| `--worktree` | Create an isolated git worktree for this run. |97| `--checkpoints` | Enable filesystem checkpoints before destructive file changes. |98| `--yolo` | Skip approval prompts. |99| `--pass-session-id` | Pass the session ID into the system prompt. |100| `--ignore-user-config` | Ignore `~/.hermes/config.yaml` and use built-in defaults. |101| `--ignore-rules` | Skip auto-injection of `AGENTS.md`, `SOUL.md`, `.cursorrules`, persistent memory, and preloaded skills. |102| `--source <tag>` | Session source tag for filtering (default: `cli`). Use `tool` for third-party integrations. |103| `--max-turns <n>` | Maximum tool-calling iterations per conversation turn (default: 90). |104105### `hermes -z <prompt>` — scripted one-shot106107Pure one-shot entry: single prompt in, final response text out, nothing else on stdout/stderr. No banner, no spinner, no tool previews. Designed for shell scripts, CI, cron, and pipe-based workflows.108109```bash110hermes -z "What's the capital of France?"111answer=$(hermes -z "summarize this" < /path/to/file.txt)112```113114Per-run overrides (no mutation to config):115116| Flag | Equivalent env var | Purpose |117|------|---|---|118| `-m` / `--model <id>` | `HERMES_INFERENCE_MODEL` | Override the model for this run |119| `--provider <name>` | `HERMES_INFERENCE_PROVIDER` | Override the provider for this run |120121### Examples122123```bash124hermes125hermes chat -q "Summarize the latest PRs"126hermes chat --provider openrouter --model anthropic/claude-sonnet-4.6127hermes chat --toolsets web,terminal,skills128hermes chat --quiet -q "Return only JSON"129hermes chat --worktree -q "Review this repo and open a PR"130hermes chat --ignore-user-config --ignore-rules -q "Repro without my personal setup"131```132133---134135## `hermes model`136137Interactive provider + model selector. **This is the command for adding new providers, setting up API keys, and running OAuth flows.** Run from your terminal — not inside an active Hermes chat session.138139```bash140hermes model141```142143### `/model` slash command (mid-session)144145Switch between already-configured models without leaving a session:146147```148/model # Show current model and available options149/model claude-sonnet-4 # Switch model (auto-detects provider)150/model zai:glm-5 # Switch provider and model151/model custom:qwen-2.5 # Use model on your custom endpoint152/model custom # Auto-detect model from custom endpoint153/model custom:local:qwen-2.5 # Use a named custom provider154/model openrouter:anthropic/claude-sonnet-4 # Switch back to cloud155/model claude-sonnet-4 --global # Switch and save as new default156```157158---159160## `hermes gateway`161162```bash163hermes gateway <subcommand>164```165166| Subcommand | Description |167|------------|-------------|168| `run` | Run the gateway in the foreground. Recommended for WSL, Docker, and Termux. |169| `start` | Start the installed systemd/launchd background service. |170| `stop` | Stop the service (or foreground process). |171| `restart` | Restart the service. |172| `status` | Show service status. |173| `install` | Install as a systemd (Linux) or launchd (macOS) background service. |174| `uninstall` | Remove the installed service. |175| `setup` | Interactive messaging-platform setup. |176177| Option | Description |178|--------|-------------|179| `--all` | On `start`/`restart`/`stop`: act on every profile's gateway. |180181---182183## `hermes setup`184185```bash186hermes setup [model|tts|terminal|gateway|tools|agent] [--non-interactive] [--reset] [--quick] [--reconfigure]187```188189| Section | Description |190|---------|-------------|191| `model` | Provider and model setup. |192| `terminal` | Terminal backend and sandbox setup. |193| `gateway` | Messaging platform setup. |194| `tools` | Enable/disable tools per platform. |195| `agent` | Agent behavior settings. |196197| Option | Description |198|--------|-------------|199| `--quick` | Only prompt for items that are missing or unset. |200| `--non-interactive` | Use defaults/environment values without prompts. |201| `--reset` | Reset configuration to defaults before setup. |202| `--reconfigure` | Backwards-compat alias — bare `hermes setup` on existing install now does this by default. |203204---205206## `hermes auth`207208```bash209hermes auth # Interactive wizard210hermes auth list # Show all pools211hermes auth list openrouter # Show specific provider212hermes auth add openrouter --api-key sk-or-v1-xxx # Add API key213hermes auth add anthropic --type oauth # Add OAuth credential214hermes auth remove openrouter 2 # Remove by index215hermes auth reset openrouter # Clear cooldowns216```217218Subcommands: `add`, `list`, `remove`, `reset`. No subcommand launches the interactive wizard.219220---221222## `hermes status`223224```bash225hermes status [--all] [--deep]226```227228| Option | Description |229|--------|-------------|230| `--all` | Show all details in a shareable redacted format. |231| `--deep` | Run deeper checks that may take longer. |232233---234235## `hermes cron`236237```bash238hermes cron <subcommand>239```240241| Subcommand | Description |242|------------|-------------|243| `list` | Show scheduled jobs. |244| `create` / `add` | Create a scheduled job from a prompt (optionally `--skill`). |245| `edit` | Update a job's schedule, prompt, name, delivery, repeat count, or skills. |246| `pause` | Pause a job without deleting it. |247| `resume` | Resume a paused job and compute next run. |248| `run` | Trigger a job on the next scheduler tick. |249| `remove` | Delete a scheduled job. |250| `status` | Check whether the cron scheduler is running. |251| `tick` | Run due jobs once and exit. |252253---254255## `hermes kanban`256257```bash258hermes kanban [--board <slug>] <action> [options]259```260261Multi-profile collaboration board with its own SQLite DB per board.262263| Action | Purpose |264|--------|---------|265| `init` | Create `kanban.db` if missing. |266| `boards list` / `boards ls` | List all boards with task counts. |267| `boards create <slug>` | Create a new board. Flags: `--name`, `--description`, `--icon`, `--color`, `--switch`. |268| `boards switch <slug>` | Set active board. |269| `boards show` | Print currently-active board info. |270| `boards rename <slug> "name"` | Change display name. Slug is immutable. |271| `boards rm <slug>` | Archive (default) or `--delete` to hard-delete. |272| `create "title"` | Create a task. Flags: `--body`, `--assignee`, `--parent`, `--workspace`, `--tenant`, `--priority`, `--triage`, `--idempotency-key`, `--max-runtime`, `--skill`. |273| `list` / `ls` | List tasks. Filter: `--mine`, `--assignee`, `--status`, `--tenant`, `--archived`, `--json`. |274| `show <id>` | Show task with comments/events. `--json` for machine output. |275| `assign <id> <profile>` | Assign or reassign. Use `none` to unassign. |276| `link <parent> <child>` | Add a dependency (cycle-detected). |277| `unlink <parent> <child>` | Remove a dependency. |278| `claim <id>` | Atomically claim a ready task. |279| `comment <id> "text"` | Append a comment. |280| `complete <id>` | Mark done. Flags: `--result`, `--summary`, `--metadata`. |281| `block <id> "reason"` | Mark blocked (also appends reason as comment). |282| `unblock <id>` | Return blocked task to ready. |283| `archive <id>` | Hide from default list. |284| `tail <id>` | Follow task's event stream. |285| `dispatch` | One dispatcher pass. Flags: `--dry-run`, `--max N`, `--json`. |286| `context <id>` | Print full worker context. |287| `gc` | Remove scratch workspaces for archived tasks. |288289---290291## `hermes webhook`292293```bash294hermes webhook <subscribe|list|remove|test>295```296297| Subcommand | Description |298|------------|-------------|299| `subscribe` / `add` | Create a webhook route. |300| `list` / `ls` | Show all agent-created subscriptions. |301| `remove` / `rm` | Delete a dynamic subscription. |302| `test` | Send a test POST to verify a subscription. |303304### `hermes webhook subscribe` options305306| Option | Description |307|--------|-------------|308| `--prompt` | Prompt template with `{dot.notation}` payload references. |309| `--events` | Comma-separated event types to accept. Empty = all. |310| `--description` | Human-readable description. |311| `--skills` | Comma-separated skill names to load. |312| `--deliver` | Delivery target: `log` (default), `telegram`, `discord`, `slack`, `github_comment`. |313| `--deliver-chat-id` | Target chat/channel ID for cross-platform delivery. |314| `--secret` | Custom HMAC secret. Auto-generated if omitted. |315| `--deliver-only` | Skip the agent — deliver rendered prompt as literal message. Zero LLM cost. |316317---318319## `hermes doctor`320321```bash322hermes doctor [--fix]323```324325---326327## `hermes dump`328329```bash330hermes dump [--show-keys]331```332333Outputs a compact plain-text setup summary for sharing. `--show-keys` shows redacted API key prefixes.334335---336337## `hermes debug`338339```bash340hermes debug share [--lines N] [--expire days] [--local]341```342343Upload debug report (system info + recent logs) to a paste service and get a shareable URL.344345---346347## `hermes backup`348349```bash350hermes backup [-o path] [-q] [-l label]351```352353| Option | Description |354|--------|-------------|355| `-o`, `--output <path>` | Output path for the zip file. Default: `~/hermes-backup-<timestamp>.zip`. |356| `-q`, `--quick` | Quick snapshot: only critical state files. Much faster. |357| `-l`, `--label <name>` | Label for the snapshot (only with `--quick`). |358359---360361## `hermes checkpoints`362363```bash364hermes checkpoints [subcommand]365```366367| Subcommand | Description |368|------------|-------------|369| `status` (default) | Show total size, project count, and breakdown. |370| `list` | Alias for `status`. |371| `prune` | Force cleanup — delete orphan/stale projects, GC the store. |372| `clear` | Delete entire checkpoint base. Irreversible (asks confirm unless `-f`). |373| `clear-legacy` | Delete only v1 migration archives. |374375| Option | Description |376|--------|-------------|377| `--limit N` | Max projects to list (default 20). |378| `--retention-days N` | Drop projects older than N days (default 7). |379| `--max-size-mb N` | Drop oldest commits until total <= N MB (default 500). |380| `--keep-orphans` | Skip deleting projects whose working directory no longer exists. |381| `-f`, `--force` | Skip confirmation prompt. |382383---384385## `hermes import`386387```bash388hermes import <zipfile> [-f]389```390391Restore a Hermes backup. `--force` skips the confirmation prompt.392393**Stop the gateway before importing to avoid conflicts.**394395---396397## `hermes logs`398399```bash400hermes logs [log_name] [options]401```402403| Name | File | What it captures |404|------|------|-----------------|405| `agent` (default) | `agent.log` | All agent activity — API calls, tool dispatch, session lifecycle |406| `errors` | `errors.log` | Warnings and errors only |407| `gateway` | `gateway.log` | Messaging gateway activity |408409| Option | Description |410|--------|-------------|411| `-n`, `--lines <N>` | Number of lines (default: 50). |412| `-f`, `--follow` | Follow the log in real time (like `tail -f`). |413| `--level <LEVEL>` | Minimum log level: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL`. |414| `--session <ID>` | Filter by session ID substring. |415| `--since <TIME>` | Show lines from relative time ago: `30m`, `1h`, `2d`. |416| `--component <NAME>` | Filter by component: `gateway`, `agent`, `tools`, `cli`, `cron`. |417418---419420## `hermes config`421422```bash423hermes config <subcommand>424```425426| Subcommand | Description |427|------------|-------------|428| `show` | Show current config values. |429| `edit` | Open `config.yaml` in your editor. |430| `set <key> <value>` | Set a config value. |431| `path` | Print the config file path. |432| `env-path` | Print the `.env` file path. |433| `check` | Check for missing or stale config. |434| `migrate` | Add newly introduced options interactively. |435436---437438## `hermes pairing`439440```bash441hermes pairing <list|approve|revoke|clear-pending>442```443444---445446## `hermes skills`447448```bash449hermes skills <subcommand>450```451452| Subcommand | Description |453|------------|-------------|454| `browse` | Paginated browser for skill registries. |455| `search` | Search skill registries. |456| `install` | Install a skill. |457| `inspect` | Preview a skill without installing it. |458| `list` | List installed skills. |459| `check` | Check installed hub skills for upstream updates. |460| `update` | Reinstall hub skills with upstream changes. |461| `audit` | Re-scan installed hub skills. |462| `uninstall` | Remove a hub-installed skill. |463| `reset` | Un-stick a bundled skill flagged as `user_modified`. |464| `publish` | Publish a skill to a registry. |465| `snapshot` | Export/import skill configurations. |466| `tap` | Manage custom skill sources. |467| `config` | Interactive enable/disable configuration by platform. |468469Common examples:470471```bash472hermes skills browse473hermes skills search react --source skills-sh474hermes skills inspect official/security/1password475hermes skills install official/migration/openclaw-migration476hermes skills install https://sharethis.chat/SKILL.md # Direct URL477hermes skills check478hermes skills update479hermes skills config480```481482---483484## `hermes curator`485486```bash487hermes curator <subcommand>488```489490| Subcommand | Description |491|------------|-------------|492| `status` | Show curator status and skill stats. |493| `run` | Trigger a curator review now. |494| `run --sync` | Block until the LLM pass finishes. |495| `run --dry-run` | Preview only — no mutations. |496| `backup` | Take a manual tar.gz snapshot of skills. |497| `rollback` | Restore skills from a snapshot. `--list` to see available. |498| `pause` | Pause the curator until resumed. |499| `resume` | Resume a paused curator. |500| `pin <skill>` | Pin a skill so curator never auto-transitions it. |501| `unpin <skill>` | Unpin a skill. |502| `restore <skill>` | Restore an archived skill. |503504---505506## `hermes fallback`507508```bash509hermes fallback <subcommand>510```511512| Subcommand | Description |513|------------|-------------|514| `list` (alias: `ls`) | Show current fallback chain. |515| `add` | Pick a provider + model and append to the chain. |516| `remove` (alias: `rm`) | Pick an entry to delete. |517| `clear` | Remove all fallback entries. |518519---520521## `hermes hooks`522523```bash524hermes hooks <subcommand>525```526527| Subcommand | Description |528|------------|-------------|529| `list` (alias: `ls`) | List configured hooks with matcher, timeout, and consent status. |530| `test <event>` | Fire every hook matching `<event>` against a synthetic payload. |531| `revoke` | Remove a command's allowlist entries. |532| `doctor` | Check each configured hook: exec bit, allowlist, mtime drift, JSON validity. |533534---535536## `hermes memory`537538```bash539hermes memory <subcommand>540```541542| Subcommand | Description |543|------------|-------------|544| `setup` | Interactive provider selection and configuration. |545| `status` | Show current memory provider config. |546| `off` | Disable external provider (built-in only). |547548Available providers: honcho, openviking, mem0, hindsight, holographic, retaindb, byterover, supermemory. When an external provider is active, it may register its own `hermes <provider>` command.549550---551552## `hermes mcp`553554```bash555hermes mcp <subcommand>556```557558| Subcommand | Description |559|------------|-------------|560| `serve [-v]` | Run Hermes as an MCP server. |561| `add <name> [--url URL] [--command CMD] [--args ...] [--auth oauth|header]` | Add an MCP server. |562| `remove <name>` | Remove an MCP server from config. |563| `list` | List configured MCP servers. |564| `test <name>` | Test connection to an MCP server. |565| `configure <name>` | Toggle tool selection for a server. |566567---568569## `hermes plugins`570571```bash572hermes plugins [subcommand]573```574575| Subcommand | Description |576|------------|-------------|577| *(none)* | Composite interactive UI — general plugin toggles + provider plugin config. |578| `install <identifier> [--force]` | Install a plugin from Git URL or `owner/repo`. |579| `update <name>` | Pull latest changes for an installed plugin. |580| `remove <name>` | Remove an installed plugin. |581| `enable <name>` | Enable a disabled plugin. |582| `disable <name>` | Disable a plugin without removing it. |583| `list` | List installed plugins with status. |584585---586587## `hermes tools`588589```bash590hermes tools [--summary]591```592593`--summary` prints the enabled-tools summary and exits. Without it, launches the interactive per-platform tool configuration UI.594595---596597## `hermes sessions`598599```bash600hermes sessions <subcommand>601```602603| Subcommand | Description |604|------------|-------------|605| `list` | List recent sessions. |606| `browse` | Interactive session picker with search and resume. |607| `export <output> [--session-id ID]` | Export sessions to JSONL. |608| `delete <session-id>` | Delete one session. |609| `prune` | Delete old sessions. |610| `stats` | Show session-store statistics. |611| `rename <session-id> <title>` | Set or change a session title. |612613---614615## `hermes insights`616617```bash618hermes insights [--days N] [--source platform]619```620621---622623## `hermes claw`624625```bash626hermes claw migrate [options]627```628629Migrate OpenClaw setup to Hermes.630631| Option | Description |632|--------|-------------|633| `--dry-run` | Preview without writing anything. |634| `--preset <name>` | `full` (all compatible settings) or `user-data` (excludes infra config). |635| `--overwrite` | Overwrite existing Hermes files on conflicts. |636| `--migrate-secrets` | Include API keys in migration. |637| `--no-backup` | Skip pre-migration zip snapshot. |638| `--source <path>` | Custom OpenClaw directory (default: `~/.openclaw`). |639| `--workspace-target <path>` | Target directory for workspace instructions. |640| `--skill-conflict <mode>` | Handle skill name collisions: `skip` (default), `overwrite`, or `rename`. |641| `--yes` | Skip confirmation prompt. |642643---644645## `hermes dashboard`646647```bash648hermes dashboard [--port N] [--host addr] [--no-open]649```650651Launch the web dashboard. Requires `pip install hermes-agent[web]`.652653| Option | Default | Description |654|--------|---------|-------------|655| `--port` | `9119` | Port to run the web server on. |656| `--host` | `127.0.0.1` | Bind address. |657| `--no-open` | — | Don't auto-open the browser. |658659---660661## `hermes profile`662663```bash664hermes profile <subcommand>665```666667| Subcommand | Description |668|------------|-------------|669| `list` | List all profiles. |670| `use <name>` | Set a sticky default profile. |671| `create <name> [--clone] [--clone-all] [--clone-from <source>] [--no-alias]` | Create a new profile. |672| `delete <name> [-y]` | Delete a profile. |673| `show <name>` | Show profile details. |674| `alias <name> [--remove] [--name NAME]` | Manage wrapper scripts. |675| `rename <old> <new>` | Rename a profile. |676| `export <name> [-o FILE]` | Export to `.tar.gz`. |677| `import <archive> [--name NAME]` | Import from `.tar.gz`. |678679Examples:680681```bash682hermes profile list683hermes profile create work --clone684hermes profile use work685hermes profile alias work --name h-work686hermes -p work chat -q "Hello from work profile"687```688689---690691## `hermes completion`692693```bash694hermes completion [bash|zsh|fish]695```696697---698699## `hermes update`700701```bash702hermes update [--check] [--backup] [--restart-gateway]703```704705| Option | Description |706|--------|-------------|707| `--check` | Print current vs latest commit. Does not pull or install. |708| `--backup` | Create pre-update snapshot of `HERMES_HOME`. |709| `--restart-gateway` | Restart the gateway after update. |710711---712713## `hermes uninstall`714715```bash716hermes uninstall [--full] [--yes]717```718719Remove Hermes. `--full` deletes all config/data.