Skip to main content

Reference · Reference

Hermes Agent (hermes) Cheat Sheet

Search and one-click copy every Hermes Agent (hermes CLI) command by category. Covers CLI commands, flags, slash commands, keybindings, messaging gateway settings, config keys, and delegation skills.

Last updated:

Version: Hermes Agent v0.21.0 The Pantheon Release (released 2026-08-31 / verified 2026-09-01) | Updated September 2026

How to use

Expand how to use
  1. 1

    Search commands

    Type a keyword to filter across command names, flags, descriptions, and examples at once.

  2. 2

    Filter by category

    Switch between CLI commands, CLI flags, slash commands, keybindings, gateway settings, configuration, and delegation skills to reach what you need fast.

  3. 3

    One-click copy

    Use the copy button to copy a command to your clipboard and paste it straight into your terminal, a Hermes Agent TUI session, or a connected chat.

Latest updates

Recent notable updates to Hermes Agent. See the full history at the bottom of the page.

v0.21.0 (2026.8.31) (August 31, 2026)

  • Major release, The Pantheon Release, consolidating about 5,800 commits and roughly 2,475 merged PRs since v0.20.0; the v0.20.1 through v0.20.6 patch tags are fully documented in these notes as well
  • /plan graduated from a bundled skill to a built-in slash command available on both the CLI and the messaging surface: it writes a markdown implementation plan to .hermes/plans/ in the active workspace, planning only with no execution
  • The background commands are now documented as two distinct entries: /bg runs a prompt in a separate background session, and /btw answers a side question from a read-only transcript snapshot without interrupting the conversation

v0.20.6 (2026.8.27) (August 27, 2026)

  • Rollup patch consolidating about 525 merged PRs since v0.20.5 (full curated release notes covering everything from v0.20.0 onward will ship with v0.21.0)
  • The user guide now documents hermes worktree (list / prune), which audits and reclaims the disposable worktrees hermes -w creates; /worktree prune does the same from inside a session
  • hermes chat gained --query-file, so a one-shot prompt can come from a file or stdin with nothing shell-interpreted, leaving quotes and backticks verbatim
See full update history

CLI Commands

hermes

Launch the interactive CLI and start a conversation with the agent. Arguments follow the order: global options, command, then subcommand and options

Notes

  • hermes [global-options] <command> [subcommand/options]: entry point syntax

Examples

hermes
Start an interactive session

hermes -z "<prompt>"

Scripted one-shot mode: a single prompt in, the final response text out, and nothing else on stdout or stderr — no banner, spinner, tool previews, or Session line

Notes

  • -m/--model <model>: per-run model override
  • --provider <provider>: per-run provider override

Examples

hermes -z "Summarize this repo"
Run once and print only the result

hermes chat

Interactive or one-shot chat with the agent. Supports one-shot queries, model/provider overrides, toolset selection, skill preloading, image attachment, worktree isolation, and checkpoints

Notes

  • -q/--query <text>: one-shot, non-interactive prompt
  • -m/--model <model>: per-run model override
  • --checkpoints: enable filesystem checkpoints before destructive file changes

Examples

hermes chat
Start an interactive chat
hermes chat -q "What changed in this repo?"
Ask once and exit

hermes model

Interactive provider and model selector. This is the command for adding new providers, setting up API keys, and running OAuth flows

Examples

hermes model
Open the model selector

hermes moa

Configure named Mixture of Agents presets, which appear as selectable models under a Mixture of Agents provider

Notes

  • list: list presets
  • configure [name]: create or edit a preset
  • delete <name>: delete a preset

Examples

hermes moa list
List configured presets

hermes fallback

Manage the fallback provider chain tried in order when the primary model fails

Notes

  • list: show the chain (alias ls, default)
  • add: add a provider
  • remove (alias rm) / clear: remove one or all entries

Examples

hermes fallback list
Show the fallback chain

hermes gateway

Run or manage the messaging gateway service. Subcommands: run, start, stop, restart, status, list, install, uninstall, setup, migrate-legacy, and enroll

Notes

  • run: run in the foreground
  • start / stop / restart / status: control the background service
  • setup: interactive messaging-platform setup

Examples

hermes gateway status
Check gateway status

hermes gateway run

Run the gateway in the foreground

Examples

hermes gateway run
Run in the foreground

hermes gateway start

Start the installed systemd/launchd background service

Examples

hermes gateway start
Start the background service

hermes gateway stop

Stop the service (or foreground process)

Examples

hermes gateway stop
Stop the gateway

hermes gateway restart

Restart the gateway service

Examples

hermes gateway restart
Restart the gateway

hermes gateway status

Show gateway service status

Examples

hermes gateway status
Show service status

hermes gateway list

List all profiles and whether each profile's gateway is running

Examples

hermes gateway list
List gateway status per profile

hermes gateway install

Install the gateway as a systemd (Linux) or launchd (macOS) background service

Examples

hermes gateway install
Install as a background service

hermes gateway uninstall

Remove the installed gateway service

Examples

hermes gateway uninstall
Remove the service

hermes gateway setup

Interactive messaging-platform setup

Examples

hermes gateway setup
Start the platform setup wizard

hermes gateway migrate-legacy

Remove legacy hermes.service units left over from pre-rename installs

Examples

hermes gateway migrate-legacy
Clean up legacy service units

hermes gateway enroll

Enroll this gateway with a relay connector

Examples

hermes gateway enroll
Enroll with a relay connector

hermes proxy

Run a local OpenAI-compatible HTTP server that forwards requests to an OAuth-authenticated upstream provider

Notes

  • start --provider <nous|xai>: choose the upstream provider (default nous)
  • start --host / --port: bind address (default 127.0.0.1:8645)
  • status / providers: show status and supported providers

Examples

hermes proxy start
Start the local proxy

hermes egress

Outbound credential-injection firewall for remote terminal sandboxes; wraps the iron-proxy daemon

Notes

  • install [--force] / setup: install and configure
  • start / stop / restart / reload: control the daemon
  • status [--show-tokens] / disable / config: inspect, disable, and configure

Examples

hermes egress status
Check firewall status

hermes lsp

Manage the Language Server Protocol integration. LSP runs real language servers in the background and feeds their diagnostics into the post-write checks used by write_file and patch

Notes

  • status / list: show status and installed servers
  • install <id> / install-all: install language servers
  • restart / which <id>: restart and locate a server

Examples

hermes lsp status
Check LSP integration status

hermes setup

Interactive setup wizard with sections for model (provider/model), terminal (backend and sandbox), gateway (messaging platforms), tools (per-platform enable/disable), and agent (behavior settings)

Notes

  • --quick: only prompt for missing or unset items
  • --non-interactive: use defaults and environment values without prompts

Examples

hermes setup
Start the setup wizard

hermes whatsapp

Run the WhatsApp pairing/setup flow, including mode selection and QR-code pairing

Examples

hermes whatsapp
Start WhatsApp pairing

hermes whatsapp-cloud

Configure the official Meta WhatsApp Business Cloud API adapter

Examples

hermes whatsapp-cloud
Configure the Cloud API adapter

hermes slack manifest

Generate a Slack app manifest that registers every gateway command as a first-class Slack slash command

Notes

  • --write [PATH]: write the manifest to a file
  • --name / --description / --long-description: set app metadata
  • --slashes-only: output only the slash-command definitions

Examples

hermes slack manifest
Generate the app manifest

hermes auth

Manage credential pools for same-provider key rotation

Notes

  • add: add an API key or OAuth credential (--api-key / --type oauth)
  • list / status: show registered credentials
  • remove <provider> <index> / reset / logout / spotify: remove, reset, and PKCE auth

Examples

hermes auth list
List registered credentials

hermes send

Send a one-shot message to a configured messaging platform without spinning up an agent or gateway loop. Supports piped stdin, file input, and media attachment via the MEDIA: directive

Notes

  • -t/--to <target>: delivery target (platform or platform:chat_id)
  • MEDIA:<local_path>: attach media ([[as_document]] delivers images as uncompressed file attachments)
  • -f/--file <path>: read the message body from a text file

Examples

echo "Build finished" | hermes send --to telegram
Send piped stdin to Telegram

hermes peer

Register a Hermes gateway running on another machine as a peer and DM its agents' canonical Bot Chat. This is the transport behind cross-machine bot-to-bot messaging: a peer name alone targets that gateway's main agent, while a peer name combined with an agent name targets a named profile on a multiplexed peer.

Notes

  • add NAME --url URL [--key KEY] [--note TEXT]: register or update a peer. The URL goes to bot_peers in config.yaml; the key is stored as HERMES_PEER_NAME_KEY in ~/.hermes/.env
  • list: list peers and whether each one has a key configured
  • dm PEER MESSAGE: message the peer agent's canonical Bot Chat and print the reply (--json for machine-readable output; the message falls back to stdin)
  • remove NAME: remove a peer from the registry (the .env key entry is left in place)
  • Exit codes: 0 on success, 1 on delivery/peer failure, 2 on usage errors
  • Once at least one peer is registered, the Bot Mode messaging protocol automatically includes the peer roster and the dm pattern

Examples

hermes peer add work --url http://192.168.1.10:8080 --key $API_SERVER_KEY
Register another machine's gateway as a peer named work
hermes peer dm work "Summarize today's build failures"
DM the main agent on peer work and print its reply

hermes secrets bitwarden

Pull API keys from an external secret manager at process startup instead of storing them in ~/.hermes/.env. Alias: hermes secrets bw

Notes

  • setup / status / token: configure, inspect, and manage tokens
  • sync / install / disable: sync, install, and disable

Examples

hermes secrets bitwarden setup
Set up the Bitwarden integration

hermes migrate

Diagnose and optionally rewrite the active config.yaml to replace references to retired models or deprecated settings. Dry-run by default

Notes

  • xai: scan for xAI models scheduled for retirement
  • --apply: rewrite in-place (default is dry-run)
  • --no-backup: skip the backup

Examples

hermes migrate xai
Scan for retired xAI model references

hermes status

Show agent, auth, and platform status

Notes

  • --all: show all details in a shareable redacted format
  • --deep: run deeper checks that may take longer

Examples

hermes status
Check current status

hermes cron

Inspect and tick the cron scheduler, with job listing, creation, editing, pause/resume, and removal

Notes

  • list / create (alias add) / edit: manage jobs
  • pause / resume / run / remove / status: control execution
  • tick: run due jobs once and exit
  • cron.cleanup_timeout_seconds caps the post-run cleanup timeout (default: 10 seconds; 0 restores the previous unbounded behavior)
  • cron.media_send_timeout_seconds caps how long attachment delivery may take for a cron run (default: 300 seconds; the HERMES_CRON_MEDIA_SEND_TIMEOUT env var wins over config.yaml). A timed-out attachment is recorded as a partial delivery failure while the text still goes out

Examples

hermes cron list
List scheduled jobs

hermes kanban

Multi-profile, multi-project collaboration board; each board is a standalone queue with its own SQLite DB

Notes

  • --board <slug>: select the target board (global flag)
  • init / boards list|create|switch|show|rename|rm: manage boards
  • create / list / show / assign / claim / complete / block / archive and more: task actions

Examples

hermes kanban list
List tasks on the board

hermes project

Manage named, multi-folder workspaces that can span multiple folders and repos

Notes

  • create / list (alias ls) / show: create, list, and inspect
  • add-folder / remove-folder / set-primary: change folder membership
  • use / rename / archive / restore / bind-board: switch and manage

Examples

hermes project list
List workspaces

hermes webhook

Manage dynamic webhook subscriptions for event-driven agent activation

Notes

  • subscribe (alias add): register (--prompt / --events / --skills / --deliver / --secret, etc.)
  • list (ls) / remove (rm): list and remove
  • test: test a subscription

Examples

hermes webhook list
List webhook subscriptions

hermes hooks

Inspect shell-script hooks declared in ~/.hermes/config.yaml, test them against synthetic payloads, and manage the consent allowlist

Notes

  • list (ls): list declared hooks
  • test <event>: test against a synthetic payload
  • revoke (aliases remove, rm) / doctor: revoke consent and diagnose

Examples

hermes hooks list
List declared hooks

hermes doctor

Diagnose config and dependency issues

Notes

  • --fix: attempt automatic repairs where possible

Examples

hermes doctor
Diagnose the environment

hermes security audit

On-demand supply-chain vulnerability scan against OSV.dev, covering the Hermes venv, Python dependencies declared by plugins, and pinned npx/uvx MCP servers in config.yaml

Notes

  • --json: emit machine-readable JSON
  • --fail-on <level>: exit non-zero when a finding meets the given severity
  • --skip-venv / --skip-plugins / --skip-mcp: exclude scan targets

Examples

hermes security audit
Run the vulnerability scan

hermes approvals

Approval-prompt tools that mine your dangerous-command approval history into allowlist proposals, so commands you keep approving stop asking every time

Notes

  • Generates allowlist proposals from approval history
  • Switch approval modes in-session with the /approvals slash command

Examples

hermes approvals
Mine approval history into allowlist proposals

hermes dump

Output a compact, plain-text summary of your entire Hermes setup, designed to be pasted into Discord, GitHub issues, or Telegram: version, environment, identity, model, terminal backend, API key presence, features, services, workload, and config overrides

Notes

  • --show-keys: show redacted API key prefixes instead of just set/not set

Examples

hermes dump
Print the environment summary

hermes prompt-size

Report the fixed prompt budget for a fresh session — what gets sent on every API call before any conversation content (system prompt, skills index, memory/user profile, prompt tiers, tool schemas). Runs entirely offline with no API call

Notes

  • --platform <name>: simulate a messaging platform's prompt
  • --json: machine-readable output for scripts

Examples

hermes prompt-size
Measure the fixed prompt size

hermes debug share

Upload a debug report (system info plus recent logs) to a paste service and get a shareable URL

Notes

  • --lines <N>: log lines to include (default 200)
  • --expire <days>: expiry (default 7 days)
  • --local / --nous / --no-redact: control destination and redaction

Examples

hermes debug share
Get a shareable debug URL

hermes backup

Create a zip archive of your Hermes configuration, skills, sessions, and data. Excludes SQLite WAL/journal files, checkpoints/, and the hermes-agent code itself

Notes

  • -o/--output <path>: output path for the zip file
  • -q/--quick: quick snapshot of only critical state files
  • -l/--label <name>: snapshot label (only with --quick)

Examples

hermes backup
Create a full backup

hermes checkpoints

Inspect and manage the shadow git store at ~/.hermes/checkpoints/ — the storage layer behind the in-session /rollback command

Notes

  • status (default) / list: show status and entries
  • prune / clear / clear-legacy: trim and delete
  • --limit N / --retention-days N / --max-size-mb N / -f: retention settings

Examples

hermes checkpoints status
Check checkpoint status

hermes import <zipfile>

Restore a previously created Hermes backup into your Hermes home directory

Notes

  • -f/--force: skip the existing-installation confirmation prompt

Examples

hermes import hermes-backup.zip
Restore from a backup

hermes logs [log_name]

View, tail, and filter Hermes log files: agent (default), errors, gateway, gui, desktop. Filters can be combined; a line must pass all active filters

Notes

  • -f/--follow: follow in real time, like tail -f
  • --level <LEVEL> / --component <NAME>: filter by level and component
  • --since <TIME> / --session <ID>: filter by time window and session

Examples

hermes logs --follow
Tail the agent log in real time

hermes config

Show, edit, migrate, and check configuration files, and read or change individual values by dotted key

Notes

  • show / edit / path / env-path: view and edit
  • get <key> [--json]: print a single config value by dotted key (--json for machine-readable output)
  • set <key> <value> / unset <key>: set a value or revert it to the built-in default
  • check / migrate: validate and interactively add newly introduced options

Examples

hermes config show
Show the current configuration

hermes skin

List, switch, and tweak display skins, changing the colors and decorations used across the CLI, TUI, and desktop app

Notes

  • Lists available skins and switches between them
  • Switch mid-session with the /skin slash command

Examples

hermes skin
List and switch display skins

hermes console

Open the safe Hermes command console, a curated command REPL that is not a raw shell and does not expose the full Hermes CLI

Examples

hermes console
Open the command console

hermes pairing

Approve or revoke messaging pairing codes

Notes

  • list: list pending codes
  • approve <platform> <code>: approve
  • revoke <platform> <user-id> / clear-pending: revoke and clear

Examples

hermes pairing list
List pairing status

hermes skills

Browse, install, publish, audit, and configure skills. Supports registry sources and installing directly from an http(s) SKILL.md URL

Notes

  • browse / search / install / inspect / list: discover and install
  • --source official|skills-sh|well-known|browse-sh: choose a registry source
  • --force: override non-dangerous policy blocks (not a dangerous scan verdict)
  • Hub skill installs run an NVIDIA SkillEvaluator Tier 1 advisory scan (PII detection, unicode smuggling detection, script linting, license compliance, and a SkillSpector static security scan). It is advisory only, the install always proceeds, and it is skipped silently when the optional binaries are absent. Set skills.tier1_advisory to false in config.yaml to disable it

Examples

hermes skills list
List installed skills

hermes bundles

Manage skill bundles, which group several skills under a single slash command named after the bundle

Notes

  • list (default) / show <name>: list and inspect
  • create <name> --skill <id> (repeatable): create a bundle
  • delete <name> / reload: delete and reload

Examples

hermes bundles list
List skill bundles

hermes curator

Manage the curator, an auxiliary-model background task that periodically reviews agent-created skills, prunes stale ones, consolidates overlaps, and archives obsolete skills

Notes

  • status / run [--background|--dry-run]: inspect and run
  • backup / rollback / restore: preserve and revert changes
  • pause / resume / pin <skill> / unpin <skill>: control and protect skills

Examples

hermes curator status
Check curator status

hermes journey

Show a timeline of learned skills and memories over time. Also available under the aliases learning and memory-graph

Notes

  • Aliases: hermes learning / hermes memory-graph
  • Open it mid-session with the /journey slash command

Examples

hermes journey
Show the learning timeline

hermes memory

Set up and manage external memory provider plugins (Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover, Supermemory). Only one external provider can be active at a time; built-in memory (MEMORY.md/USER.md) is always active

Notes

  • setup: set up a provider
  • status: show status
  • off: disable the external provider

Examples

hermes memory status
Check memory provider status

hermes acp

Start Hermes as an ACP (Agent Client Protocol) stdio server for editor integration. Requires installing the acp extra first

Notes

  • Related entrypoints: hermes-acp / python -m acp_adapter

Examples

hermes acp
Start the ACP stdio server

hermes mcp

Manage MCP (Model Context Protocol) server configurations and run Hermes as an MCP server

Notes

  • picker (default) / catalog / install <name>: discover and install
  • add <name> [--url|--command|--auth oauth|header|--args]: add a server
  • serve [-v] / test <name> / login <name>: serve, test, and log in
  • Supports adding a server from a hermes://mcp/install deep link; opening the link never installs immediately and always goes through a confirmation dialog (config is base64url-encoded JSON, and payloads over 32KB are rejected)

Examples

hermes mcp list
List configured MCP servers

hermes worktree [list|prune]

Audit and reclaim the disposable worktrees that hermes -w creates under .worktrees/. A conservative pruner runs automatically at startup, but preserved trees and merged local branches still accumulate, so clean them up explicitly. Uncommitted tracked changes, unique unpushed commits, and trees in use by a running session are never deleted in any mode

Notes

  • list: audit the age, size, verdict, and reason for each tree
  • prune: remove safe trees and delete merged local branches
  • prune --dry-run: show the plan without changing anything
  • prune --trees-only / --branches-only: leave local branches alone, or leave worktrees alone
  • Untracked-only scratch work is archived to ~/.hermes/archive/worktree-prune/ before its tree is removed
  • Startup prints a one-line notice once .worktrees/ grows past 10 trees or 5 GB

Examples

hermes worktree list
Audit the worktrees in the repository
hermes worktree prune --dry-run
Preview what would be removed

hermes plugins

Unified plugin management — general plugins, memory providers, and context engines in one place. Run without arguments for the composite interactive UI

Notes

  • install <identifier> [--force] / update <name>: install and update
  • remove (aliases rm, uninstall): remove
  • enable / disable / list (ls): enable, disable, and list

Examples

hermes plugins
Open the interactive plugin UI

hermes portal

Nous Portal status, subscription link, and Tool Gateway routing

Notes

  • status (default): portal auth state plus per-tool routing summary
  • open: open portal.nousresearch.com/manage-subscription
  • tools: list every Tool Gateway partner

Examples

hermes portal status
Check Portal status

hermes tools

Launch the interactive per-platform tool configuration UI

Notes

  • --summary: print the current enabled-tools summary and exit
  • enable <toolset> --platform <platform>: enable a toolset per platform (for example a2a for cli, telegram, or a2a)

Examples

hermes tools
Open the tool configuration UI

hermes computer-use

Install or check the cua-driver backend

Notes

  • install: run the upstream cua-driver installer
  • install --upgrade: in-place upgrade to the latest release
  • status: whether cua-driver is on PATH and which version
  • doctor: run cua-driver's health report and platform checks (--include / --skip / --json)
  • permissions status: report macOS Accessibility and Screen Recording grants (--json)
  • permissions grant: ask macOS to grant Accessibility and Screen Recording to Cua Driver

Examples

hermes computer-use status
Check cua-driver status

hermes pets

Browse, install, and select petdex animated pets — a public gallery of animated sprite pets for coding agents

Notes

  • list / install / select / show: discover and choose
  • off / scale / remove / doctor: display control and maintenance

Examples

hermes pets list
List available pets

hermes sessions

Browse, export, prune, rename, and delete sessions. Prune/archive supports combined date, attribute, and numeric filters (default: sessions older than 90 days)

Notes

  • list / browse / export <output> [--session-id ID]: browse and export. browse shows a liveness status tag (done / intr / err / empty) and the message count on each row; with an empty search filter, pressing d on the highlighted row deletes it after a y/N confirmation
  • import --from claude|codex: import sessions from Claude Code and Codex CLI
  • prune / archive: trim with filters such as --older-than, --source, and --model
  • --dry-run / --yes: preview and skip confirmation

Examples

hermes sessions list
List sessions

hermes insights

Show token, cost, and activity analytics

Notes

  • --days <n>: analyze the last n days (default 30)
  • --source <platform>: filter by source such as cli, telegram, or discord

Examples

hermes insights
Show usage analytics

hermes claw migrate

Migrate your OpenClaw setup to Hermes; reads from ~/.openclaw (or a custom path) and writes to ~/.hermes

Notes

  • --dry-run / --yes: preview and auto-confirm
  • --preset <full|user-data> / --source <path>: migration scope and source path
  • --migrate-secrets / --skill-conflict <skip|overwrite|rename>: secrets and skill-conflict handling

Examples

hermes claw migrate --dry-run
Preview the migration

hermes import-agent

Import a Claude Code (~/.claude) or OpenAI Codex CLI (~/.codex) setup into Hermes. Instruction files map to memory entries, permission allow and deny rules to the approval settings, MCP servers to config.yaml, and skill directories into ~/.hermes/skills/. It always previews before applying, and API keys and credentials are never imported

Notes

  • claude-code / codex: choose the agent to import from
  • Always previews before applying; credentials are excluded

Examples

hermes import-agent claude-code
Import a Claude Code setup

hermes dashboard

Launch the web dashboard — a browser-based UI for managing configuration, API keys, and monitoring sessions

Notes

  • --port (default 9119) / --host (default 127.0.0.1): bind address
  • --no-open / --stop / --status: launch control and status
  • register --name / --redirect-uri / --portal-url: register as a self-hosted dashboard with your Nous Portal account

Examples

hermes dashboard
Launch the dashboard

hermes desktop

Build and launch the native Electron desktop app. Alias: hermes gui

Examples

hermes desktop
Launch the desktop app

hermes profile

Manage profiles — multiple isolated Hermes instances, each with its own config, sessions, skills, and home directory

Notes

  • list / use / show: list, switch, and inspect
  • create (--clone / --clone-all / --clone-from / --no-alias) / delete [-y]: create and delete
  • export [-o FILE] / import / rename / alias: migrate and organize

Examples

hermes profile list
List profiles

hermes completion [bash|zsh|fish]

Print a shell completion script to stdout for bash, zsh, or fish

Examples

hermes completion zsh
Print the zsh completion script

hermes version

Show version information

Examples

hermes version
Show the version

hermes update

Pull the latest hermes-agent code and reinstall dependencies in the managed venv. After a successful update it attempts to restart all running gateway profiles; dirty tracked files are auto-stashed for git installs

Notes

  • --check: check for updates without pulling or installing
  • --plan: read-only mode that prints the update plan (install kind, every running Hermes service across all profiles, and how each will be restarted) and exits
  • --backup / --no-backup: control the pre-update backup
  • -y/--yes: assume yes for interactive prompts
  • Windows venv recreation is transactional: the old venv is set aside first, then the new one is created and verified, and the old tree is deleted only after dependency installation and the baseline import succeed (on failure it is stashed and rolled back)

Examples

hermes update --check
Check whether an update is available

hermes uninstall

Remove Hermes from the system, optionally deleting all config and data

Notes

  • --gui: remove only the desktop Chat GUI, leaving the agent intact
  • --full: also delete config/data
  • --dry-run: print what would be removed without changing anything
  • --yes: skip prompts

Examples

hermes uninstall
Uninstall Hermes

hermes serve

Start the Hermes backend server — the JSON-RPC/WebSocket gateway the desktop app and remote clients connect to. Requires the web extra (FastAPI + Uvicorn)

Notes

  • --host (default 127.0.0.1) / --port: bind address
  • --stop / --status: stop and check status
  • --skip-build: skip the build step

Examples

hermes serve
Start the backend server

CLI Flags

--version

Global option: print the version and exit (alias: -V)

Examples

hermes --version
Print the version

--profile <name>

Global option: select which Hermes profile to use for this invocation (alias: -p)

Examples

hermes --profile work chat
Start chat with the work profile

--resume <session>

Global option: resume a previous session by ID or title (alias: -r). The keyword latest resumes the most recent session, using the same workspace-scoped lookup as -c

Notes

  • Pass latest to resume the most recent session with the same lookup as -c
  • Pass @claude or @codex to resume an imported Claude Code or Codex CLI session

Examples

hermes --resume my-session
Resume the specified session
hermes --resume latest
Resume the most recent session

--continue [name]

Global option: resume the most recent session (alias: -c), choosing which session to resume per terminal

Notes

  • Resumes a separate session per terminal — tty, tmux pane, kitty window, wezterm pane, Zellij pane, or Windows Terminal session
  • Falls back to the most recent session when no breadcrumb exists or it is more than 30 days old; set session.terminal_continue to false to disable

Examples

hermes --continue
Resume the most recent session

--in <dir>

Global option: change into the given directory before starting or resuming. Scopes --resume latest and -c lookups to that directory's workspace and keeps the session there, skipping the recorded-cwd restore

Notes

  • Combine with --resume latest or -c to target only that directory's most recent session

Examples

hermes --resume latest --in ./my-project
Resume that directory's most recent session

--worktree

Global option: start in an isolated git worktree for parallel-agent workflows (alias: -w)

Examples

hermes --worktree
Start in an isolated worktree

--yolo

Global option: bypass dangerous-command approval prompts (auto-approve mode)

Examples

hermes --yolo
Start in auto-approve mode

--pass-session-id

Global option: include the session ID in the agent's system prompt

Examples

hermes --pass-session-id
Start with the session ID included in the system prompt

--ignore-user-config

Global option: ignore ~/.hermes/config.yaml and fall back to built-in defaults; credentials in .env are still loaded

Examples

hermes --ignore-user-config
Start without the user configuration

--ignore-rules

Global option: skip auto-injection of AGENTS.md, SOUL.md, .cursorrules, memory, and preloaded skills

Examples

hermes --ignore-rules
Start without rule auto-injection

--tui

Global option: launch the TUI instead of the classic CLI

Examples

hermes --tui
Launch the TUI

--cli

Global option: force the classic prompt_toolkit REPL

Examples

hermes --cli
Launch the classic CLI

--dev

Global option: run the TypeScript sources directly via tsx

Examples

hermes --dev
Run the TypeScript sources directly

-z <prompt>

Scripted one-shot flag: takes a single prompt and prints only the final response text, with no banner, spinner, tool previews, or Session line on stdout/stderr

Notes

  • Combinable with --provider and --model per-run overrides

Examples

hermes -z "Summarize the latest logs"
Run a one-shot prompt

hermes chat --query "<text>"

Run a one-shot, non-interactive prompt (alias: -q)

Examples

hermes chat --query "Summarize this repository"
Run a single prompt non-interactively

hermes chat --query-file <path>

Read the one-shot prompt from a file, or from stdin when the path is a single dash. Nothing is shell-interpreted, so quotes, command substitutions, and backticks arrive verbatim — use it for programmatic or untrusted message bodies. Mutually exclusive with -q

Examples

hermes chat --query-file prompt.txt
Run a single prompt read from a file
cat prompt.txt | hermes chat --query-file -
Read the prompt from stdin

hermes chat --model <model>

Override the model for this run (alias: -m)

Notes

  • Maps to HERMES_INFERENCE_MODEL for -z runs

hermes chat --toolsets <csv>

Enable a comma-separated set of toolsets (alias: -t)

hermes chat --provider <provider>

Force a specific provider

Notes

  • --provider <provider>: openrouter / anthropic / openai-api, etc.

Examples

hermes chat --provider openrouter
Start with the OpenRouter provider

hermes chat --skills <name>

Preload one or more skills for the session (alias: -s)

hermes chat --verbose

Enable verbose output (alias: -v)

Examples

hermes chat --verbose
Start with verbose output

hermes chat --quiet

Programmatic mode that suppresses the banner, spinner, and tool previews (alias: -Q)

Examples

hermes chat --quiet
Run with the banner and spinner suppressed

hermes chat --image <path>

Attach a local image to a single query

Examples

hermes chat --image ./photo.png
Start with a local image attached

hermes chat --checkpoints

Enable filesystem checkpoints before destructive file changes

Examples

hermes chat --checkpoints
Start with checkpoints enabled

hermes chat --safe-mode

Disable all customizations for troubleshooting

Examples

hermes chat --safe-mode
Start with all customizations disabled

hermes chat --source <tag>

Set the session source tag used for filtering (default: cli)

hermes chat --max-turns <N>

Set the maximum number of tool-calling iterations per conversation turn

Examples

hermes chat --max-turns 10
Start with tool-calling capped at 10 iterations

hermes gateway --all

On start, restart, or stop, act on every profile's gateway

Examples

hermes gateway stop --all
Stop the gateways of every profile

hermes gateway --no-supervise

Opt out of auto-supervision in the s6-overlay Docker image

hermes gateway --external-supervisor

Declare that a wrapper-provided process manager owns the foreground

hermes setup --quick

Prompt only for items that are missing or unset

Examples

hermes setup --quick
Set up only the missing items

hermes setup --non-interactive

Use defaults and environment values without prompts

Examples

hermes setup --non-interactive
Run setup non-interactively

hermes setup --reset

Reset configuration to defaults before setup

Examples

hermes setup --reset
Reset configuration, then run setup

hermes setup --reconfigure

Backwards-compatibility alias; now the default behavior

Examples

hermes setup --reconfigure
Run reconfiguration (now the default behavior)

hermes setup --portal

One-shot Nous Portal setup with Tool Gateway opt-in

Examples

hermes setup --portal
Set up Nous Portal

hermes send --to <target>

Delivery target for one-shot messages sent without running the gateway loop (alias: -t)

Notes

  • --to <target>: accepts forms like platform or platform:chat_id

Examples

hermes send --to telegram --file notes.txt
Send the contents of notes.txt to Telegram

hermes send --file <path>

Read the message body from a file path (text files only, alias: -f)

Examples

hermes send --to telegram --file notes.txt
Send with the message body read from a file

hermes send --subject <line>

Prepend a subject or header line before the message body (alias: -s)

Examples

hermes send --to telegram --subject "Daily report" --file report.txt
Send with a subject line

hermes send --list [platform]

List configured targets across all platforms (alias: -l)

Examples

hermes send --list
List the configured targets

hermes send --quiet

Suppress stdout on success (alias: -q)

Examples

hermes send --to telegram --file notes.txt --quiet
Send while suppressing output on success

hermes send --json

Emit the raw JSON result instead of human-readable output

Examples

hermes send --to telegram --file notes.txt --json
Emit the result as JSON

hermes logs --lines <N>

Number of lines to show (default: 50, alias: -n)

Examples

hermes logs --lines 100
Show the last 100 lines

hermes logs --follow

Follow the log in real time, like tail -f (alias: -f)

Examples

hermes logs --follow
Follow the log in real time

hermes logs --level <LEVEL>

Set the minimum log level to show

Notes

  • --level <LEVEL>: DEBUG / INFO / WARNING / ERROR / CRITICAL

Examples

hermes logs --level ERROR
Show only ERROR-level logs and above

hermes logs --session <ID>

Filter lines containing a session ID substring

hermes logs --since <TIME>

Show lines from a relative time ago

Notes

  • Relative time formats such as 30m / 1h / 2d

Examples

hermes logs --since 1h
Show logs from the last hour

hermes logs --component <NAME>

Filter logs by component

Notes

  • --component <NAME>: gateway / agent / tools / cli / cron

Examples

hermes logs --component gateway
Show only gateway logs

hermes status --all

Show all details in a shareable redacted format

Examples

hermes status --all
Show all details in redacted form

hermes status --deep

Run deeper checks that may take longer

Examples

hermes status --deep
Run the deeper checks

hermes doctor --fix

Attempt automatic repairs where possible

Examples

hermes doctor --fix
Attempt automatic repairs for detected issues

hermes dump --show-keys

Show redacted API key prefixes instead of just set or not set

Examples

hermes dump --show-keys
Show redacted API key prefixes

hermes security audit --json

Emit machine-readable JSON instead of human-readable text

Examples

hermes security audit --json
Emit the audit result as JSON

hermes security audit --fail-on <level>

Exit non-zero when a finding meets the given severity

Notes

  • --fail-on <level>: low / moderate / high / critical

Examples

hermes security audit --fail-on high
Exit non-zero on findings of high severity or above

hermes security audit --skip-venv

Skip scanning the Hermes Python venv

Examples

hermes security audit --skip-venv
Audit without scanning the venv

hermes security audit --skip-plugins

Skip scanning plugin requirements files

Examples

hermes security audit --skip-plugins
Audit without scanning plugins

hermes security audit --skip-mcp

Skip scanning pinned MCP servers in config.yaml

Examples

hermes security audit --skip-mcp
Audit without scanning MCP servers

hermes prompt-size --platform <name>

Simulate a messaging platform's prompt

Examples

hermes prompt-size --platform telegram
Simulate the Telegram prompt

hermes prompt-size --json

Machine-readable output for scripts

Examples

hermes prompt-size --json
Emit the prompt size as JSON

hermes insights --days <n>

Analyze the last N days (default: 30)

Examples

hermes insights --days 7
Analyze the last 7 days

hermes insights --source <platform>

Filter the analysis by source

Notes

  • --source <platform>: cli / telegram / discord, etc.

Examples

hermes insights --source telegram
Analyze only Telegram sessions

hermes tools --summary

Print the current enabled-tools summary and exit

Examples

hermes tools --summary
Print the enabled-tools summary

hermes backup --output <path>

Output path for the backup zip file (alias: -o); the default is hermes-backup-TIMESTAMP.zip in the home directory

Notes

  • --output <path>: defaults to ~/hermes-backup-<timestamp>.zip

Examples

hermes backup --output ~/backups/hermes.zip
Back up to the specified output path

hermes backup --quick

Quick snapshot with only critical state files, much faster (alias: -q)

Examples

hermes backup --quick
Create a quick snapshot

hermes backup --label <name>

Label for the snapshot, only used with --quick (alias: -l)

Examples

hermes backup --quick --label before-update
Create a labeled quick snapshot

hermes update --check

Check whether an update is available without pulling or installing

Examples

hermes update --check
Check whether an update is available

hermes update --plan

Read-only mode that prints the update plan and exits without changing anything: the install kind (git/Docker/Nix/apt), every running Hermes service across all profiles with its supervisor and running code version, and how each will be restarted. On image- or package-managed installs it reports the correct external update command instead

Examples

hermes update --plan
Preview the update plan only

hermes update --backup

Force a full pre-update backup (a complete zip of HERMES_HOME)

Examples

hermes update --backup
Update after taking a full backup

hermes update --no-backup

Skip all pre-update backups for this run

Examples

hermes update --no-backup
Update without any backups

hermes update --gateway

Internal mode used by the messaging /update command

hermes update --yes

Assume yes for interactive prompts (alias: -y)

Examples

hermes update --yes
Update without confirmation prompts

hermes uninstall --gui

Remove only the desktop Chat GUI, leaving the agent intact

Examples

hermes uninstall --gui
Uninstall only the Chat GUI

hermes uninstall --full

Also delete config and data

Examples

hermes uninstall --full
Uninstall including config and data

hermes uninstall --dry-run

Print what would be removed without changing anything

Examples

hermes uninstall --dry-run
Preview what would be removed

hermes uninstall --yes

Skip prompts

Examples

hermes uninstall --yes
Uninstall without prompts

Slash Commands

/new [name]

Start a new session with a fresh session ID and history. An optional name sets the initial session title. Alias: /reset

Notes

  • [name]: sets the initial session title

Examples

/new
Start a new session
/new bugfix
Start a new session titled bugfix

/clear

Clear the screen and start a new session

Examples

/clear
Clear the screen and start fresh

/history

Show the conversation history

Examples

/history
Show conversation history

/save

Save the current conversation

Examples

/save
Save the current conversation

/prompt

Compose your next prompt in $EDITOR (markdown) instead of the inline input. Alias: /compose

Examples

/prompt
Compose the prompt in your editor

/retry

Retry the last message by resending it to the agent

Examples

/retry
Resend the last message

/undo

Remove the last user/assistant exchange

Examples

/undo
Remove the last exchange

/title

Set a title for the current session

Examples

/title
Set the session title

/compress [here [N] | focus topic]

Manually compress the conversation context (flush memories and summarize)

Notes

  • Syntax: /compress [here [N] | focus topic]

Examples

/compress
Compress the conversation context

/rollback

List or restore filesystem checkpoints

Examples

/rollback
List or restore checkpoints

/diff [staged|all|session] [--stat]

Show git changes in the working directory. Defaults to unstaged changes plus untracked files. On messaging platforms the output is fenced and truncated to the platform message limit

Notes

  • staged / all / session: staged changes, everything since HEAD, or the cumulative diff Hermes made here
  • --stat: print only the changed-file summary
  • [path...]: restrict the diff to given paths (CLI only)

Examples

/diff --stat
Show just the changed-file summary

/snapshot [create|restore <id>|prune]

Create or restore snapshots of Hermes config and state. Alias: /snap

Notes

  • Subcommands: create / restore <id> / prune

Examples

/snapshot create
Create a snapshot

/stop

Kill all running background processes

Examples

/stop
Kill all background processes

/queue <prompt>

Queue a prompt for the next turn without interrupting the current agent response. Alias: /q

Examples

/queue Run the tests next
Queue a prompt for the next turn

/steer <prompt>

Inject a mid-run note that reaches the agent after the next tool call

Examples

/steer Focus on the failing test first
Inject a note into the running agent

/goal <text>

Set a standing goal Hermes works toward across turns

Examples

/goal Keep the test suite green
Set a standing goal

/subgoal <text>

Append a user-supplied criterion to the active goal mid-loop

Examples

/subgoal Add tests for edge cases
Append a criterion to the active goal

/heartbeat every <interval> <prompt>

Set a recurring prompt that re-enters this session as a normal user turn whenever it is idle and the interval has elapsed. Alias: /hb

Notes

  • Minimum interval is 60 seconds; missed ticks coalesce into one
  • Subcommands: /heartbeat status, /heartbeat pause, /heartbeat resume, /heartbeat clear
  • Session-scoped and in-process — use hermes cron for durable isolated schedules
  • On Slack, run it as /hermes heartbeat

Examples

/heartbeat every 30m Check the CI status
Re-send the same prompt every 30 minutes
/heartbeat clear
Clear the recurring prompt

/loop [interval] <prompt>

Re-run a prompt or slash command on an interval inside the current session. Give an interval for a fixed cadence, or omit it for self-paced mode, which backs off exponentially from 1 minute up to 15 minutes. Alias: /proactive

Notes

  • --times N: cap how many times it repeats
  • --until condition: repeat until the given condition is met
  • Subcommands: /loop status, /loop pause, /loop resume, /loop stop
  • loops.max_ticks caps the total tick count (default: 100; 0 for unlimited)

Examples

/loop 10m Check the CI status
Re-run the same prompt every 10 minutes
/loop stop
Stop the running loop

/refine [focus]

Run the background memory and skill self-improvement review now instead of waiting for the automatic post-turn trigger. It runs in a background fork against a conversation snapshot, so the live session and prompt cache are untouched

Notes

  • Optional focus text steers what the review looks at
  • On Slack, run it as /hermes refine

Examples

/refine
Run the self-improvement review now
/refine save the deploy workflow as a skill
Steer the review with focus text

/review [instructions]

Spawn an independent, full-privilege reviewer subagent to review the work just discussed — a PR, code, docs, or any artifact referenced in the last 10 chat messages. It investigates in the background, opening the PR, reading the diff, and running code, and its full review re-enters the session as a background-subagent completion the primary agent can act on

Notes

  • Optional instructions steer what the reviewer focuses on
  • Pin a dedicated review model with auxiliary.review in config.yaml (defaults to your main model)
  • On Slack, run it as /hermes review

Examples

/review
Review the work just discussed
/review focus on error handling
Steer the review with instructions

/moa <prompt>

Run a single prompt through the default Mixture of Agents preset

Examples

/moa Compare these two designs
Run the prompt through the MoA preset

/resume [name]

Resume a previously-named session

Examples

/resume bugfix
Resume the named session

/sessions

Browse and resume previous sessions in an interactive picker. Alias: /switch (TUI)

Examples

/sessions
Open the session picker

/egress [status]

Show Docker egress proxy status (enabled, configured, and running state)

Examples

/egress
Show egress proxy status

/redraw

Force a full UI repaint to recover from terminal drift after a tmux resize

Examples

/redraw
Repaint the UI

/status

Show session info: model, provider, profile, session ID, working directory, and title

Examples

/status
Show session info

/context [all]

Show a visual context-window breakdown. On the CLI and TUI it renders a glyph block grid plus an estimated per-category table covering system prompt, tool definitions, rules, skills index, MCP, subagents, memory, and conversation. On messaging it shows a usage gauge with the same table in plain text. Computed locally with no LLM call. Alias: /ctx

Notes

  • all: append per-skill and per-toolset cost listings
  • Read-only, with no prompt-cache impact

Examples

/context
Check context window usage

/agents

Show active agents and running tasks across the current session. Alias: /tasks

Examples

/agents
Show agents and tasks

/bg <prompt>

Run a prompt in a separate background session. The agent processes it independently, so the current session stays free for other work, and the results appear as a panel when the task finishes. On the messaging surface the results are delivered back to the same chat

Notes

  • prompt: the prompt to hand to the background session (required)

Examples

/bg Summarize the docs
Summarize the docs in a background session

/btw <question>

Ask a quick side question about the current conversation without interrupting it. A one-shot auxiliary LLM call answers from a read-only snapshot of the transcript, so the live session history and prompt cache are untouched and the current turn keeps running. For independent work with a fresh context, use /bg instead

Notes

  • question: the side question to ask about the current conversation (required)

Examples

/btw What model am I using?
Check the current model without stopping the turn

/branch [name]

Branch the current session to explore a different path. Alias: /fork

Examples

/branch experiment
Branch the session with a name

/worktree [new [name]|list|prune [--dry-run]]

CLI only. Inspect or create isolated git worktrees mid-session. Bare /worktree shows the active worktree, list shows the repository's worktrees, and new creates one under .worktrees/ branched from the freshly fetched remote tip, retargeting the session's terminal and file tools into it. Named trees use a hermes/ branch prefix, while unnamed ones get a random hermes- id. On exit the tree is kept only if it has unpushed commits, the same lifecycle as hermes -w. prune runs the same cleanup as hermes worktree prune and never touches the tree the session is running in

Notes

  • list: list the worktrees in the repository
  • new [name]: create a worktree and switch the session into it
  • prune [--dry-run]: reclaim safe worktrees and merged branches; --dry-run only shows the plan, and the session's own tree is never touched

Examples

/worktree new feature-a
Create an isolated worktree and switch into it

/journey [list|delete <id>|edit <id>]

Open the learning journey timeline of learned skills and memories. Works in the classic CLI, as a TUI overlay, and in the desktop app Star Map panel, but is not available on messaging platforms. Aliases: /learning and /memory-graph

Notes

  • list: list recorded entries
  • delete <id> / edit <id>: delete or edit an entry

Examples

/journey
Open the learning timeline

/handoff <platform>

Hand the current session off to a messaging platform

Examples

/handoff telegram
Hand the session off to Telegram

/config

Show the current configuration

Examples

/config
Show current configuration

/model [model-name]

Show or change the current model. Custom model aliases defined in config are also accepted

Examples

/model
Show the current model
/model claude-sonnet-4
Switch to the specified model

/codex-runtime [auto|codex_app_server|on|off]

Toggle the optional Codex app-server runtime for OpenAI/Codex models

Notes

  • Values: auto / codex_app_server / on / off

Examples

/codex-runtime auto
Set the runtime selection to auto

/personality [name]

Set a predefined personality overlay for the session

Notes

  • /personality none (also default or neutral) clears the overlay and returns to base behavior

Examples

/personality
Set a personality overlay
/personality none
Clear the overlay and return to default

/verbose

Cycle the tool progress display: off → new → all → verbose

Examples

/verbose
Cycle tool progress display

/focus [on|off|status]

Toggle focus view, a display-only reduced-output mode showing just your prompt and the final response. Tool detail is hidden, never discarded. It shares one suppression path with /verbose, so turning focus off restores your previous display mode

Notes

  • Values: on / off / status
  • While active, a focus badge stays pinned in the status bar

Examples

/focus on
Turn on focus view

/fast [normal|fast|status]

Toggle fast mode: OpenAI Priority Processing / Anthropic Fast Mode

Notes

  • Values: normal / fast / status

Examples

/fast status
Show fast mode status

/reasoning

Manage reasoning effort and display. On messaging surfaces it also accepts level, show, and hide arguments

Notes

  • Messaging syntax: /reasoning [level|show|hide]

Examples

/reasoning
Manage reasoning settings

/skin

Show or change the display skin/theme

Examples

/skin
Show or change the skin

/export [profile]

Pack a profile into a shareable tar.gz — skills, memory, persona, crons, plugins, settings, and (from the desktop) themes and layout. Credentials such as auth.json and .env are stripped. CLI only

Notes

  • Defaults to the active profile and writes the profile name as a tar.gz in the current directory
  • Use -o to choose the output path
  • Same archive as hermes profile export; use a profile distribution for a versioned, updatable share

Examples

/export
Export the active profile
/export work -o work.tar.gz
Export to a specific path

/import <archive.tar.gz>

Install a profile archive as a new profile, inferring the name from the archive. CLI only

Notes

  • Use --name to set the imported profile name
  • Refuses to overwrite an existing profile and cannot import as default
  • Creates a shell wrapper when the name is free

Examples

/import work.tar.gz
Install the archive as a new profile
/import work.tar.gz --name team
Install it under a specific name

/statusbar

Toggle the context/model status bar on or off. Alias: /sb

Examples

/statusbar
Toggle the status bar

/battery [on|off|status]

Toggle a color-coded battery read-out as the first status-bar element

Notes

  • Values: on / off / status

Examples

/battery on
Enable the battery read-out

/voice [on|off|tts|status]

Toggle CLI voice mode and spoken playback. On messaging platforms it also supports join, channel, and leave to control spoken replies in chat

Notes

  • Values: on / off / tts / status
  • Messaging: join / channel / leave

Examples

/voice on
Enable voice mode

/yolo

Toggle YOLO mode, skipping all dangerous command approval prompts

Examples

/yolo
Toggle YOLO mode

/approvals [manual|smart|off]

Show or set the persistent dangerous-command approval mode. The setting is remembered across sessions

Notes

  • manual: prompt every time
  • smart: auto-approve commands learned to be safe
  • off: disable approval prompts

Examples

/approvals smart
Switch the approval mode to smart

/footer [on|off|status]

Toggle the gateway runtime-metadata footer on final replies

Notes

  • Values: on / off / status

Examples

/footer off
Disable the footer

/busy [queue|steer|interrupt|status]

CLI-only: control what pressing Enter does while Hermes is working

Notes

  • Values: queue / steer / interrupt / status

Examples

/busy steer
Set the busy Enter action to steer

/indicator [kaomoji|emoji|unicode|ascii]

CLI-only: pick the TUI busy-indicator style

Notes

  • Values: kaomoji / emoji / unicode / ascii

Examples

/indicator emoji
Use the emoji indicator style

/timestamps [on|off|status]

CLI-only: toggle HH:MM timestamps on messages and in /history

Notes

  • Values: on / off / status

Examples

/timestamps on
Enable timestamps

/wake [on|off|status]

CLI-only: toggle the Hey Hermes wake word listener

Notes

  • Values: on / off / status

Examples

/wake on
Enable the wake word listener

/tools [list|disable|enable] [name...]

Manage tools: list available tools, or disable and enable specific ones

Notes

  • list: show available tools
  • disable <name...>: disable the given tools
  • enable <name...>: re-enable the given tools

Examples

/tools list
List available tools

/toolsets

List available toolsets

Examples

/toolsets
Show the list of toolsets

/browser [connect|disconnect|status]

Manage a CDP connection to a local Chromium-family browser

Notes

  • connect: connect to the browser
  • disconnect: drop the connection
  • status: show connection status

Examples

/browser status
Check the current connection status

/skills

Search, install, inspect, or manage skills from online registries. On the messaging surface it also reviews pending skill writes

Notes

  • Messaging-surface arguments: [pending|approve|reject|diff|approval] to review, approve, reject, or diff pending skill writes

Examples

/skills
Search and manage skills

/memory [pending|approve|reject|approval]

Review pending memory writes staged by the write-approval gate

Notes

  • pending: list pending writes
  • approve / reject: approve or reject pending writes
  • approval: manage write approval

Examples

/memory pending
Review pending memory writes

/bundles

List configured skill bundles, slash aliases that preload several skills at once

Examples

/bundles
List skill bundles

/learn <what to learn from>

Distill a reusable skill from anything you describe, such as a directory or a URL

Notes

  • <what to learn from>: the source to learn from (a directory, a URL, etc.)

Examples

/learn ./scripts
Distill a reusable skill from the scripts directory

/plan [task]

Write a markdown implementation plan to .hermes/plans/ in the active workspace. Planning only, with no execution. An empty argument infers the task from the conversation. Formerly the bundled plan skill, it is now built in so it survives the Telegram and Discord command-menu caps. Works on both the CLI and the messaging surface

Notes

  • task: the task to plan for (inferred from the conversation when omitted)

Examples

/plan Add OAuth login
Write an implementation plan for adding OAuth login

/init [notes]

Generate or update AGENTS.md project instructions from a repo scan, a port of the Codex /init command. The agent inspects manifests, layout, and toolchain configs with read-only tools, then writes a concise file, merge-updating an existing one while preserving your content. Works in the CLI, the messaging gateway, and the TUI

Notes

  • [notes]: optional notes that steer the emphasis

Examples

/init
Generate AGENTS.md from a repo scan

/cron

Manage scheduled tasks: list, add or create, edit, pause, resume, run, and remove

Notes

  • list: list scheduled tasks
  • add / create / edit: add or edit tasks
  • pause / resume / run / remove: pause, resume, run, or remove tasks

Examples

/cron
Manage scheduled tasks

/suggestions [accept|dismiss N|catalog|clear]

Review suggested automations. Alias: /suggest

Notes

  • accept: accept a suggestion
  • dismiss N: dismiss a suggestion
  • catalog / clear: browse the catalog or clear suggestions

Examples

/suggestions
Review suggested automations

/blueprint [name] [slot=value ...]

Set up an automation from a blueprint template. Alias: /bp

Notes

  • [name]: blueprint to use
  • [slot=value ...]: fill template slots with values

Examples

/blueprint
Set up an automation from a blueprint

/curator

Operate background skill maintenance (the curator): status, run, pin, and archive

Notes

  • status: show curator status
  • run: run maintenance
  • pin / archive: pin or archive skills

Examples

/curator
Operate background skill maintenance

/kanban <action>

Drive the multi-profile, multi-project collaboration board without leaving chat

Notes

  • <action>: the board action to run

Examples

/kanban list
List tasks on the board

/reload-mcp

Reload MCP servers from config.yaml. Alias: /reload_mcp

Examples

/reload-mcp
Reload MCP servers

/reload-skills

Re-scan ~/.hermes/skills/ for newly installed or removed skills. Alias: /reload_skills

Examples

/reload-skills
Re-scan the skills directory

/reload

Reload .env variables into the running session

Examples

/reload
Reload .env variables

/plugins

List installed plugins and their status

Examples

/plugins
List plugins and their status

/pet [list|<slug>]

Toggle or adopt a petdex mascot

Notes

  • list: list available pets
  • <slug>: pick the given pet

Examples

/pet list
List available pets

/hatch <description>

Generate a brand-new petdex pet from a text description. Alias: /generate-pet

Notes

  • <description>: what the new pet should be

Examples

/hatch a tiny robot fox
Generate a new pet from a description

/help

Show the help message. Built-in commands are case-insensitive

Notes

  • Prefix matching supported (/h → /help; exact names and aliases take precedence when ambiguous)

Examples

/help
Show help

/palette

Open the fuzzy command palette (also available as Ctrl+P). Type to filter all commands and skills, use the arrow keys to move, and press Enter to insert the selected command into the composer — it never auto-runs. Esc cancels. Matching is ranked by command name first, so a short query stays precise.

Examples

/palette
Open the command palette and filter commands and skills

/version

Show Hermes Agent version, build, and environment info

Examples

/version
Show version info

/whoami

Show your slash command access level, admin or user. On messaging platforms it is always allowed alongside /help

Examples

/whoami
Check your access level

/usage

Show token usage, cost breakdown, and session duration. On the openai-codex provider, also shows any banked usage-limit resets on your ChatGPT account

Notes

  • reset: redeem one banked reset to restore your limits (openai-codex provider only)

Examples

/usage
Check usage and cost

/usage reset

Redeem one banked reset, fully restoring your 5-hour and weekly limits (openai-codex provider only)

Examples

/usage reset
Redeem one banked reset

/topup

Show your Nous balance and manage billing on the portal. It replaces the old /credits and /billing commands and works on both the CLI and messaging surfaces

Examples

/topup
Check your Nous balance and manage billing

/subscription

CLI only: view your Nous plan and change it in the browser. Alias: /upgrade

Examples

/subscription
View and change your plan

/insights

Show usage insights and analytics for the last 30 days. The messaging surface accepts an optional days argument

Notes

  • [days]: number of days to cover (messaging surface only)

Examples

/insights
Show insights for the last 30 days

/platforms

Show gateway and messaging platform status (CLI-only summary view). Alias: /gateway

Examples

/platforms
Check platform status

/paste

Attach a clipboard image

Examples

/paste
Attach a clipboard image

/copy [number]

Copy the last assistant response to the clipboard, or the Nth-from-last when a number is given

Notes

  • [number]: which response to copy, counting from the last

Examples

/copy
Copy the last response
/copy 2
Copy the second-from-last response

/image <path>

Attach a local image file for your next prompt

Notes

  • <path>: path to the image file to attach

Examples

/image ./screenshot.png
Attach an image to your next prompt

/debug

Upload a debug report (system info and logs) and get shareable links

Examples

/debug
Upload a debug report

/profile

Show the active profile name and home directory

Examples

/profile
Check the active profile

/quit

Exit the CLI. Alias: /exit

Notes

  • --delete: exit and permanently delete the current session's SQLite history and on-disk transcripts (/exit --delete does the same)

Examples

/quit
Exit the CLI

/start

Messaging surface: a platform-protocol command; many chat platforms send /start automatically on initial contact

Examples

/start
Sent automatically on initial contact with the platform

/sethome

Messaging surface: mark the current chat as the platform home channel for deliveries. Alias: /set-home

Examples

/sethome
Mark the current chat as the home channel

/topic [off|help|session-id]

Messaging surface, Telegram DM only: manage the user-managed multi-session topic mode

Notes

  • off: turn topic mode off
  • help: show help
  • session-id: pass a target session ID

Examples

/topic off
Turn topic mode off

/commands [page]

Messaging surface: browse all commands and skills with pagination

Notes

  • [page]: page number to show

Examples

/commands
Browse commands and skills
/commands 2
Show page 2

/approve [session|always]

Messaging surface: approve and execute a pending dangerous command

Notes

  • session / always: scope of the approval

Examples

/approve
Approve and run the pending command

/deny

Messaging surface: reject a pending dangerous command

Examples

/deny
Reject the pending command

/update

Messaging surface: update Hermes Agent to the latest version

Examples

/update
Update to the latest version

/restart

Messaging surface: gracefully restart the gateway after draining active runs

Examples

/restart
Restart the gateway

/platform <list|pause|resume> [name]

Messaging surface: operate a running gateway platform right from chat

Notes

  • list: list platforms
  • pause / resume [name]: pause or resume the given platform

Examples

/platform list
List platforms

Keybindings

Enter
Send the message
Alt+Enter
Insert a new line for multi-line input (enabled by default; toggled with display.cli_multiline_shortcuts). On Windows Terminal this key is captured by the terminal as the fullscreen toggle, so use Ctrl+Enter or Ctrl+J instead
Ctrl+J
Insert a new line for multi-line input. Enabled by default alongside backslash line continuation; set display.cli_multiline_shortcuts to false to disable
Shift+Enter
Insert a new line for multi-line input. Recognized on terminals that send a distinct sequence via the Kitty keyboard protocol, and on terminals such as iTerm2 that send it as a separate key
Alt+V
Paste an image from the clipboard when the terminal supports it
Ctrl+V
Paste text and opportunistically attach clipboard images
Ctrl+B
Start or stop voice recording when voice mode is enabled
Ctrl+G
Open the current input buffer in $EDITOR
Ctrl+XCtrl+E
Emacs-style alternate binding for the external editor. Press Ctrl+X followed by Ctrl+E in sequence
Ctrl+C
Interrupt the agent. Press twice within 2 seconds to force exit
Ctrl+D
Exit Hermes
Ctrl+Z
Suspend Hermes to the background (Unix only)
Tab
Accept the auto-suggestion (ghost text) or autocomplete slash commands
Ctrl+S
Stash a half-written prompt so you can recall it later from a browsable panel
!<command>
Prefix a command with ! to run it as a shell command instantly, without spending a model turn

Gateway Settings

TELEGRAM_BOT_TOKEN

Env var for the Telegram bot token obtained from BotFather, placed in ~/.hermes/.env. Representative example of per-platform credential configuration

Examples

TELEGRAM_BOT_TOKEN=<token>
Put the bot token in ~/.hermes/.env

TELEGRAM_ALLOWED_USERS

Env var holding a comma-separated user ID allowlist for the platform. Similar env var patterns exist for other platforms such as DISCORD_ALLOWED_USERS and SIGNAL_ALLOWED_USERS

Notes

  • <PLATFORM>_ALLOWED_USERS: same allowlist pattern for other platforms (e.g. DISCORD_ALLOWED_USERS, SIGNAL_ALLOWED_USERS)

Examples

TELEGRAM_ALLOWED_USERS=123456789,987654321
Allow specific user IDs, comma-separated

TELEGRAM_HOME_CHANNEL

Env var specifying the Telegram home channel ID where cron job results are delivered

Examples

TELEGRAM_HOME_CHANNEL=<channel-id>
Set the channel that receives cron results

gateway.platforms.<platform>

Per-platform config.yaml section for admin vs user tiers. For example, gateway.platforms.discord.allow_admin_from lists admin user IDs

Notes

  • allow_admin_from: list of user IDs treated as admins
  • user_allowed_commands: limits commands available to regular users

Examples

gateway.platforms.discord.allow_admin_from
Key listing admin user IDs for Discord

platforms.telegram.extra

Platform-specific extras section in config.yaml. For Telegram it includes toggles such as status_indicator and rich_messages

Notes

  • status_indicator: toggle for the status indicator
  • rich_messages: toggle for rich messages

Configuration

~/.hermes/config.yaml

Primary settings file for Hermes Agent. Settings here override built-in defaults and are overridden by CLI arguments

Examples

hermes config path
Show the settings file path

~/.hermes/.env

Environment file holding API keys and secrets. Values can be referenced from config.yaml via VAR_NAME-style substitution (dollar sign plus curly braces)

Notes

  • ${VAR_NAME}: substitution syntax to reference .env values from config.yaml

Examples

hermes config env-path
Show the .env file path

~/.hermes/

Hermes home directory containing config.yaml (primary settings), .env (secrets), auth.json (OAuth credentials), SOUL.md (agent identity), plus the memories/ (persistent memory files), skills/ (agent-created skills), cron/ (scheduled jobs), sessions/ (gateway sessions), and logs/ (error and gateway logs) directories

model.default

Active model identifier used by the agent

model.provider

Provider name for the model (anthropic, openrouter, etc.)

model.context_length

Token limit override for the active model

model.persist_switch_by_default

Controls whether mid-session model switches via /model persist globally by default

auxiliary.*

Side-task model settings for vision, compression, and web extract. auxiliary.vision.provider sets the image analysis provider; auxiliary.compression.model overrides the context summarization model (empty = use the main chat model)

Notes

  • auxiliary.vision.provider: image analysis provider
  • auxiliary.compression.model: override for the context summarization model (empty = main chat model)
  • auxiliary.compression.provider / auxiliary.compression.timeout: compression provider and timeout

agent.max_turns

Iteration budget per turn (default: 500)

agent.reasoning_effort

Thinking depth in eight levels: none, minimal, low, medium, high, xhigh, max, ultra. Per-model overrides are available under agent.reasoning_overrides

Notes

  • Accepted values: none / minimal / low / medium / high / xhigh / max / ultra
  • agent.reasoning_overrides.<model>: per-model override

memory.memory_enabled

Toggle persistent memory (default: true)

memory.user_profile_enabled

Track user preferences in a persistent user profile

memory.memory_char_limit

Memory file size limit (about 800 tokens). The related key memory.user_char_limit caps the user profile size (about 500 tokens)

Notes

  • memory.user_char_limit: user profile size cap (about 500 tokens)

memory.write_approval

Require approval before memory writes (default: false)

compression.enabled

Toggle automatic context compression (default: true). compression.threshold compresses at a percentage of the context limit (default: 0.50); protect_last_n keeps recent messages uncompressed (default: 20)

Notes

  • compression.threshold: context usage ratio that triggers compression (default: 0.50)
  • compression.target_ratio: target compression ratio
  • compression.protect_last_n: number of recent messages kept uncompressed (default: 20)

compression.tail_mode

Switch how the tail context is retained after compaction (default: legacy). lean clamps the retained tail to 2.5% of the context window, between 10K and 25K tokens, and puts digests, an anchor index, and session_search recovery pointers in the summary, cutting retained tokens after compaction to roughly a third

Notes

  • Accepted values: legacy / lean

context.engine

Context management strategy (default: compressor)

session.terminal_continue

Toggle per-terminal session resume (default: true). When enabled, each terminal keeps its own breadcrumb, so running hermes -c in that terminal resumes that terminal's session. It falls back to the most recent session when no breadcrumb exists or the breadcrumb is more than 30 days old, and setting it to false restores the old always-most-recent behavior

credential_pool_strategies.<provider>

Credential pool rotation strategy per provider: fill_first, round_robin, least_used, or random

Notes

  • Accepted values: fill_first / round_robin / least_used / random

providers.<provider>.key_cmd

Per provider entry: run a command that prints a token on stdout to mint short-lived credentials on demand. The result is cached until just before it expires, so long sessions keep working without a restart. Precedence is the api-key flag first, then key_cmd, then a static api_key or key_env. It is distinct from secrets.command, which runs once at startup

security.allow_data_training_tiers_noninteractive

Persist consent for using vendor data-training-tier models in non-interactive runs such as cron agents and Kanban workers (default: unset). Even when enabled, the data policy warning and the consent key are still written to the startup log every time, so the audit trail remains. It does not stand in for approving high-cost model or provider routing warnings

prompt_caching.cache_ttl

Prompt cache breakpoint TTL (5m or 1h)

Notes

  • Accepted values: "5m" / "1h"

${VAR_NAME}

Environment variable substitution syntax inside config.yaml, with values resolved from the environment or ~/.hermes/.env. Multiple references per value work; undefined variables remain verbatim

Notes

  • ${VAR_NAME}: expands to the environment variable's value (multiple references per value work)

Delegation Skills

claude-code

Bundled skill that delegates coding to the Claude Code CLI (features, PRs). Two integration modes: print mode (one-shot task, returns the result and exits, no PTY needed) and interactive mode (full conversational REPL; requires tmux since Claude Code is a full TUI app)

Notes

  • print mode: one-shot task that returns the result and exits (no PTY needed)
  • interactive mode: full conversational REPL (requires tmux)

codex

Bundled skill that delegates coding to the OpenAI Codex CLI (features, PRs)

opencode

Bundled skill that delegates coding to the OpenCode CLI (features, PR review)

hermes-agent

Bundled skill to use, configure, theme, extend, and orchestrate Hermes Agent itself

openhands

Optional skill that delegates coding to the OpenHands CLI (model-agnostic, LiteLLM)

grok

Optional skill that delegates coding to the xAI Grok Build CLI (features, PRs)

blackbox

Optional skill that delegates coding tasks to the Blackbox AI multi-model CLI

antigravity-cli

Optional skill to operate the Antigravity CLI (agy): plugins, auth, sandbox

hermes skills install official/<category>/<skill>

Install an optional skill from the official catalog, specifying the category and skill name as a path

Notes

  • official/<category>/<skill>: category and skill name in the official catalog

Examples

hermes skills install official/autonomous-ai-agents/antigravity-cli
Install the antigravity-cli skill

delegate_task

Built-in tool (not a skill) that spawns one or more subagents to work on tasks in isolated contexts. Each subagent gets its own conversation, terminal session, and toolset

Version history

The Hermes Agent versions and key changes used to verify the data on this page.

v0.21.0 (2026.8.31) (August 31, 2026)

View GitHub release notes

  • Major release, The Pantheon Release, consolidating about 5,800 commits and roughly 2,475 merged PRs since v0.20.0; the v0.20.1 through v0.20.6 patch tags are fully documented in these notes as well
  • /plan graduated from a bundled skill to a built-in slash command available on both the CLI and the messaging surface: it writes a markdown implementation plan to .hermes/plans/ in the active workspace, planning only with no execution
  • The background commands are now documented as two distinct entries: /bg runs a prompt in a separate background session, and /btw answers a side question from a read-only transcript snapshot without interrupting the conversation
  • /quit and /exit gained --delete, which exits and permanently deletes the current session's SQLite history and on-disk transcripts
  • A CLI and TUI power wave: a Ctrl+P fuzzy command palette, a /model picker that filters as you type, /status reporting reasoning mode, pending approvals, and context usage, and a status bar that can show cache-hit rate and tokens per second
  • delegate_task gained live orchestration for listing, steering, and stopping running children, with raised defaults of 250 iterations and 10 concurrent children; cron jobs now keep persistent memory and can carry one run's output into the next
  • The desktop app bundles Bot Mode (group chats between named agents with avatars) and an MCP command center, both GUI features outside this reference's scope. Model Council (/council) was reverted before release and does not ship in this version
v0.20.6 (2026.8.27) (August 27, 2026)

View GitHub release notes

  • Rollup patch consolidating about 525 merged PRs since v0.20.5 (full curated release notes covering everything from v0.20.0 onward will ship with v0.21.0)
  • The user guide now documents hermes worktree (list / prune), which audits and reclaims the disposable worktrees hermes -w creates; /worktree prune does the same from inside a session
  • hermes chat gained --query-file, so a one-shot prompt can come from a file or stdin with nothing shell-interpreted, leaving quotes and backticks verbatim
  • /review landed on both the CLI and messaging surfaces: it spawns an independent, full-privilege reviewer subagent for the work just discussed
  • hermes update gained --plan (read-only: print the update plan and exit) and hermes uninstall gained --dry-run (print what would be removed)
  • Large remote MCP catalog expansion (50+ vendor-hosted servers including Cloudflare, Grafana Cloud, Better Stack, and Railway) plus TTL result caching for web_search and web_extract
  • Opt-in OS-keychain encryption for stored secrets and lean-tail compression as the new default (internal changes outside this reference's categories)
v0.20.5 (2026.8.19) (August 19, 2026)

View GitHub release notes

  • Rollup patch consolidating about 323 merged PRs since v0.20.4 (full curated release notes covering everything from v0.20.0 onward will ship with v0.21.0)
  • Added the fuzzy command palette /palette, also reachable with Ctrl+P, which filters every command and skill and inserts the selection into the composer
  • hermes peer (add / list / dm / remove) is now documented in the CLI reference: register a Hermes gateway on another machine as a peer and DM its agents
  • The /model picker gained fuzzy matching and /status now shows richer information
  • Added a keyless web tier (five-vendor free rotation with ring failover), so web search works on fresh installs with zero API keys
  • Cron jobs gained persistent memory and per-job reasoning effort
  • Bot Mode group-room threads, foldable conversation summaries, and PDF/file attachments with drag & drop (desktop and Bot Mode features, outside this reference's scope)
v0.20.4 (2026.8.18) (August 18, 2026)

View GitHub release notes

  • Rollup patch consolidating changes since v0.20.3 (about 74 merged PRs; full curated release notes will ship with v0.21.0)
  • Advisory NVIDIA SkillEvaluator Tier 1 scanning (license and security checks) on skill installs; disable it by setting skills.tier1_advisory to false
  • Cron media-send hardening: configurable attachment timeout via cron.media_send_timeout_seconds (default 300 seconds), manual-run attachments, and better missed-fire surfacing
  • Desktop app glass/translucency refresh, tabbed SESSIONS and BOTS sidebar, and kanban native OS notifications (desktop-app features, outside this reference's scope)
  • SessionDB event-loop and contention fixes, plus hermes update branch-tracking behavior improvements
v0.20.3 (2026.8.16.2) (August 16, 2026)

View GitHub release notes

  • Patch release rolling up roughly 125 merged PRs and about 250 commits since v0.20.2, tagged as a stable release for Docker images, hosted deployments, and fresh installs; curated notes covering everything since v0.20.0 are still slated to ship with v0.21.0
  • New slash command /worktree creates, lists, and inspects isolated git worktrees under .worktrees/ mid-session (96 to 97 entries)
  • hermes computer-use gained doctor, permissions status, and permissions grant subcommands for cua-driver health checks and macOS permission grants
  • MCP migrated to the 2.x SDK and now speaks the 2026-07-28 stateless protocol
  • CommandCode joined the provider registry as commandcode and commandcode-anthropic
v0.20.2 (2026.8.16) (August 16, 2026)

View GitHub release notes

  • Patch release rolling up roughly 397 merged PRs and about 967 commits; the release notes only survey the areas touched, with curated notes covering everything since v0.20.0 slated to ship with v0.21.0
  • New slash command /loop (alias /proactive) re-runs a prompt inside the same session, either at a fixed interval or in self-paced mode with exponential backoff from 1 minute up to 15 minutes (95 to 96 entries)
  • Configuration gained compression.tail_mode (lean cuts retained tokens after compaction by roughly two thirds), session.terminal_continue (per-terminal session resume), key_cmd under providers (mint short-lived tokens from a command), and security.allow_data_training_tiers_noninteractive (data-training consent for unattended runs) (19 to 23 entries)
  • hermes sessions import pulls in Claude Code and Codex CLI sessions, and --resume @claude or --resume @codex resumes them
  • Multi-line input via Ctrl+J and backslash line continuation is now enabled by default
v0.20.1 (2026.8.13) (August 13, 2026)

View GitHub release notes

  • Stabilization patch release rolling up 1,444 commits and roughly 656 merged PRs since v0.20.0, tagged for Docker images, hosted deployments, and latest-tag installs
  • Broad fixes across the desktop app, gateway platforms, installers, the tool system, and provider catalogs
  • New global option --in changes into a directory before starting or resuming, scoping --resume latest and -c lookups to that workspace
  • Slash commands /heartbeat (alias /hb), /refine, /export, and /import were newly documented (91 to 95 entries)
  • Docs now state that /personality none (also default or neutral) clears the personality overlay
  • Full curated release notes for this window are slated to ship with v0.21.0
v0.20.0 (2026.8.3) — The Herald Release (August 3, 2026)

View GitHub release notes

  • The Herald Release: rolls up roughly 3,650 commits, about 1,400 merged PRs, and about 1,200 closed issues since v0.19.0
  • Voice mode moved from record-then-reply to streaming, clause-by-clause playback with mid-sentence barge-in support
  • Added the A2A v1.0 agent-to-agent plugin, signed outbound webhooks, and the grounded-citations research skill with sourced citations
  • The CLI gained a ! shell mode for running shell commands instantly and a Ctrl+S keybinding to stash a half-written prompt, both newly added to this page's keybinding reference (13 to 15 entries)
  • The default tool-calling iteration limit per turn was raised from 90 to 500; synced in the agent.max_turns description
v0.19.1 (2026.7.30) (July 30, 2026)

View GitHub release notes

  • Patch release rolling up about 2,789 commits since v0.19.0 into a stable tag for Docker images, hosted deployments, and fresh installs
  • Dominated by bug-fix work across the gateway, voice subsystem, desktop app, and installer
  • The docs now list /topup and /subscription, and /topup replaces the old /credits and /billing commands
  • CLI commands hermes skin, hermes console, hermes journey, hermes approvals, and hermes import-agent were added to the reference
  • Slash commands /diff, /context, /journey, /focus, /approvals, /wake, /init, and /whoami were added to the reference
  • Full curated release notes for this window are slated to ship with v0.20.0
v0.19.0 (2026.7.20) — The Quicksilver Release (July 20, 2026)

View GitHub release notes

  • First-turn time-to-first-token dropped about 80% across all platforms
  • Reasoning streams are now live by default
  • The desktop app received about 20 performance PRs, including 14x faster markdown streaming
  • Added /subscription for managing Nous subscriptions from the terminal (confirmed in the official docs as of v0.19.1)
v0.18.2 (2026.7.7.2) (July 8, 2026)

View GitHub release notes

  • Same-day patch addressing the WhatsApp Baileys dependency issue
  • Fixed dependency installation for Docker builds
  • Made tagged-release deployments reliable
v0.18.1 (2026.7.7) (July 7, 2026)

View GitHub release notes

  • Infrastructure patch accumulating about 660 PRs since v0.18.0
  • Installer and updater now self-heal on Windows
  • Fixes for the dashboard, the gateway, and WhatsApp pairing
v0.18.0 (2026.7.1) — The Judgment Release (July 1, 2026)

View GitHub release notes

  • Resolved 100% of all P0 and P1 priority issues, about 700 items
  • Mixture-of-Agents became first-class and selectable like any other model
  • Agents can verify that work is complete against actual test evidence
  • Added the /learn command, which teaches reusable skills from any workflow
v0.17.0 (2026.6.19) — The Reach Release (June 19, 2026)

View GitHub release notes

  • iMessage support via Photon, with no Mac relay required
  • Background and async subagents allow work to be delegated in parallel
  • Image generation now supports editing existing images

About the Hermes Agent command reference

Hermes Agent (command name hermes) is the autonomous AI agent from Nous Research. Beyond the interactive CLI and TUI in your terminal, it runs as a resident agent reachable through a gateway from 28 messaging platforms, including Telegram, Discord, Slack, and WhatsApp. Sessions are stored locally so you can list, export, resume, and prune them later. The /learn command turns any workflow into a reusable skill, and the built-in delegate_task tool plus delegation skills hand work off to other AI coding CLIs such as Claude Code, Codex, OpenCode, Grok Build, and Antigravity CLI. This page is a cheat sheet of 303 entries covering CLI commands, CLI flags, slash commands, keybindings, gateway settings, the main config.yaml keys, and delegation skills, verified against the official docs and GitHub releases for v0.21.0. It is a different product from the fashion house Hermès and from the Hermes family of large language models also published by Nous Research.

Key features

  • 303 entries across seven categories: CLI commands, CLI flags, slash commands, keybindings, gateway settings, configuration, and delegation skills
  • Full-text search across command names, descriptions, notes, and examples
  • Category filters to switch between terminal commands, in-session actions, and messaging integration
  • Keybindings rendered as key badges, with every other category shown as cards
  • One-click copy so you can paste a command straight into a terminal or a chat

Use cases

  • Checking the environment variables and config.yaml keys while setting up messaging with hermes gateway setup
  • Reviewing the options for one-shot runs with hermes -z in scripts and CI
  • Searching slash commands such as /compress, /moa, and /learn plus keybindings during a TUI session
  • Confirming which delegation skill to use when handing work to another AI coding CLI via delegate_task

Frequently asked questions

What is Hermes Agent?

It is the autonomous AI agent from Nous Research. The command name is hermes, and you can use it both from the interactive CLI and TUI in your terminal and from messaging platforms such as Telegram, Discord, and Slack. It is a different product from the fashion house Hermès and from the Hermes family of large language models also published by Nous Research, so searching for the two words Hermes Agent keeps the results distinct.

How do I install Hermes Agent?

On Linux, macOS, WSL2, and Termux, run curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash. On native Windows, run iex (irm https://hermes-agent.nousresearch.com/install.ps1) in PowerShell: it bundles uv, Python 3.11, Node.js, ripgrep, ffmpeg, and a portable Git Bash, and it does not require administrator rights. For a manual developer setup, create the virtual environment with uv venv ~/.hermes/venvs/hermes-dev --python 3.11, activate it, and run uv pip install -e ".[all,dev]". The extras .[acp] (for the ACP server) and .[web] (for serve) are also available.

How do I uninstall it?

Run hermes uninstall. Adding --gui removes only the desktop Chat GUI and leaves the agent in place, while --full also deletes your configuration and data. Add --yes to skip the confirmation prompt.

How do I set up the messaging gateway, and which platforms are supported?

Configuration has three layers. Start with the interactive wizard, hermes gateway setup, to pick a platform. Then put the platform credentials, such as TELEGRAM_BOT_TOKEN and the allowed users, in ~/.hermes/.env. Finally, use the gateway.platforms section of config.yaml to control which user IDs are treated as admins and which commands regular users may run. The gateway connects to 28 messaging platforms, including Telegram, Discord, Slack, WhatsApp, Signal, Microsoft Teams, LINE, Matrix, and Email. To receive messages around the clock, run it on an always-on machine such as a VPS or a home server: hermes gateway install registers it as a systemd service on Linux or a launchd service on macOS, and you operate it with hermes gateway start and hermes gateway status.

Where do I configure the model and provider?

Run hermes model to pick a provider and a model interactively. The same command also adds new providers, stores API keys, and runs OAuth flows. Persistent defaults live in config.yaml as model.default, the identifier of the active model, and model.provider, the provider name such as anthropic or openrouter. Fallbacks that are tried in order when the primary model fails are managed as a chain with hermes fallback, and Mixture of Agents presets that combine several models are configured with hermes moa.

Can I run it once from a script or CI?

Use the one-shot mode by passing a prompt to hermes -z. It prints only the final response text and keeps the banner, spinner, tool previews, and Session line off both stdout and stderr, so you can pipe the output directly. Add --model or --provider to override either just for that run. The subcommand form hermes chat -q with a prompt gives you the same non-interactive behavior.

How do skills and the /learn loop work?

Point /learn at a source such as a directory or a URL and it extracts a reusable skill from it (added in v0.18.0). Installed skills are managed with hermes skills, via browse, search, install, inspect, and list, or from /skills in the TUI. Optional skills from the official catalog are installed with hermes skills install followed by the official path of the category and skill name. Installed skills are also exposed as dynamic slash commands, but because they vary per environment they are not listed on this page.

Can it delegate work to other AI coding CLIs?

The built-in delegate_task tool starts one or more subagents, each with its own conversation, terminal session, and toolset. The bundled delegation skills are claude-code, codex, opencode, and hermes-agent, and you can add the optional skills openhands, grok, blackbox, and antigravity-cli. For the commands on the receiving side, see our command references for Claude Code, Codex CLI, Grok Build, and Antigravity CLI as well.

Can I migrate from OpenClaw?

Yes, with hermes claw migrate. By default it reads from ~/.openclaw and writes to ~/.hermes, and --source points it at a different location. Choose the scope with --preset, either full or user-data, preview with --dry-run, auto-approve with --yes, carry secrets over with --migrate-secrets, and decide how skill name collisions are handled with --skill-conflict, which accepts skip, overwrite, or rename.