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 useCollapse how to use
- 1
Search commands
Type a keyword to filter across command names, flags, descriptions, and examples at once.
- 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
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
CLI Commands
hermes
Notes
- hermes [global-options] <command> [subcommand/options]: entry point syntax
Examples
hermesStart an interactive sessionhermes -z "<prompt>"
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 resulthermes chat
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 chatStart an interactive chathermes chat -q "What changed in this repo?"Ask once and exithermes model
Examples
hermes modelOpen the model selectorhermes moa
Notes
- list: list presets
- configure [name]: create or edit a preset
- delete <name>: delete a preset
Examples
hermes moa listList configured presetshermes fallback
Notes
- list: show the chain (alias ls, default)
- add: add a provider
- remove (alias rm) / clear: remove one or all entries
Examples
hermes fallback listShow the fallback chainhermes gateway
Notes
- run: run in the foreground
- start / stop / restart / status: control the background service
- setup: interactive messaging-platform setup
Examples
hermes gateway statusCheck gateway statushermes gateway run
Examples
hermes gateway runRun in the foregroundhermes gateway start
Examples
hermes gateway startStart the background servicehermes gateway stop
Examples
hermes gateway stopStop the gatewayhermes gateway restart
Examples
hermes gateway restartRestart the gatewayhermes gateway status
Examples
hermes gateway statusShow service statushermes gateway list
Examples
hermes gateway listList gateway status per profilehermes gateway install
Examples
hermes gateway installInstall as a background servicehermes gateway uninstall
Examples
hermes gateway uninstallRemove the servicehermes gateway setup
Examples
hermes gateway setupStart the platform setup wizardhermes gateway migrate-legacy
Examples
hermes gateway migrate-legacyClean up legacy service unitshermes gateway enroll
Examples
hermes gateway enrollEnroll with a relay connectorhermes proxy
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 startStart the local proxyhermes egress
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 statusCheck firewall statushermes lsp
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 statusCheck LSP integration statushermes setup
Notes
- --quick: only prompt for missing or unset items
- --non-interactive: use defaults and environment values without prompts
Examples
hermes setupStart the setup wizardhermes whatsapp
Examples
hermes whatsappStart WhatsApp pairinghermes whatsapp-cloud
Examples
hermes whatsapp-cloudConfigure the Cloud API adapterhermes slack manifest
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 manifestGenerate the app manifesthermes auth
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 listList registered credentialshermes send
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 telegramSend piped stdin to Telegramhermes 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_KEYRegister another machine's gateway as a peer named workhermes peer dm work "Summarize today's build failures"DM the main agent on peer work and print its replyhermes secrets bitwarden
Notes
- setup / status / token: configure, inspect, and manage tokens
- sync / install / disable: sync, install, and disable
Examples
hermes secrets bitwarden setupSet up the Bitwarden integrationhermes migrate
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 xaiScan for retired xAI model referenceshermes status
Notes
- --all: show all details in a shareable redacted format
- --deep: run deeper checks that may take longer
Examples
hermes statusCheck current statushermes cron
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 listList scheduled jobshermes kanban
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 listList tasks on the boardhermes project
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 listList workspaceshermes webhook
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 listList webhook subscriptionshermes hooks
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 listList declared hookshermes doctor
Notes
- --fix: attempt automatic repairs where possible
Examples
hermes doctorDiagnose the environmenthermes security audit
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 auditRun the vulnerability scanhermes approvals
Notes
- Generates allowlist proposals from approval history
- Switch approval modes in-session with the /approvals slash command
Examples
hermes approvalsMine approval history into allowlist proposalshermes dump
Notes
- --show-keys: show redacted API key prefixes instead of just set/not set
Examples
hermes dumpPrint the environment summaryhermes prompt-size
Notes
- --platform <name>: simulate a messaging platform's prompt
- --json: machine-readable output for scripts
Examples
hermes prompt-sizeMeasure the fixed prompt sizehermes debug share
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 shareGet a shareable debug URLhermes backup
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 backupCreate a full backuphermes checkpoints
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 statusCheck checkpoint statushermes import <zipfile>
Notes
- -f/--force: skip the existing-installation confirmation prompt
Examples
hermes import hermes-backup.zipRestore from a backuphermes logs [log_name]
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 --followTail the agent log in real timehermes config
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 showShow the current configurationhermes skin
Notes
- Lists available skins and switches between them
- Switch mid-session with the /skin slash command
Examples
hermes skinList and switch display skinshermes console
Examples
hermes consoleOpen the command consolehermes pairing
Notes
- list: list pending codes
- approve <platform> <code>: approve
- revoke <platform> <user-id> / clear-pending: revoke and clear
Examples
hermes pairing listList pairing statushermes skills
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 listList installed skillshermes bundles
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 listList skill bundleshermes curator
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 statusCheck curator statushermes journey
Notes
- Aliases: hermes learning / hermes memory-graph
- Open it mid-session with the /journey slash command
Examples
hermes journeyShow the learning timelinehermes memory
Notes
- setup: set up a provider
- status: show status
- off: disable the external provider
Examples
hermes memory statusCheck memory provider statushermes acp
Notes
- Related entrypoints: hermes-acp / python -m acp_adapter
Examples
hermes acpStart the ACP stdio serverhermes mcp
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 listList configured MCP servershermes worktree [list|prune]
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 listAudit the worktrees in the repositoryhermes worktree prune --dry-runPreview what would be removedhermes plugins
Notes
- install <identifier> [--force] / update <name>: install and update
- remove (aliases rm, uninstall): remove
- enable / disable / list (ls): enable, disable, and list
Examples
hermes pluginsOpen the interactive plugin UIhermes portal
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 statusCheck Portal statushermes tools
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 toolsOpen the tool configuration UIhermes computer-use
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 statusCheck cua-driver statushermes pets
Notes
- list / install / select / show: discover and choose
- off / scale / remove / doctor: display control and maintenance
Examples
hermes pets listList available petshermes sessions
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 listList sessionshermes insights
Notes
- --days <n>: analyze the last n days (default 30)
- --source <platform>: filter by source such as cli, telegram, or discord
Examples
hermes insightsShow usage analyticshermes claw migrate
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-runPreview the migrationhermes import-agent
Notes
- claude-code / codex: choose the agent to import from
- Always previews before applying; credentials are excluded
Examples
hermes import-agent claude-codeImport a Claude Code setuphermes dashboard
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 dashboardLaunch the dashboardhermes desktop
Examples
hermes desktopLaunch the desktop apphermes profile
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 listList profileshermes completion [bash|zsh|fish]
Examples
hermes completion zshPrint the zsh completion scripthermes version
Examples
hermes versionShow the versionhermes update
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 --checkCheck whether an update is availablehermes uninstall
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 uninstallUninstall Hermeshermes serve
Notes
- --host (default 127.0.0.1) / --port: bind address
- --stop / --status: stop and check status
- --skip-build: skip the build step
Examples
hermes serveStart the backend serverCLI Flags
--version
Examples
hermes --versionPrint the version--profile <name>
Examples
hermes --profile work chatStart chat with the work profile--resume <session>
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-sessionResume the specified sessionhermes --resume latestResume the most recent session--continue [name]
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 --continueResume the most recent session--in <dir>
Notes
- Combine with --resume latest or -c to target only that directory's most recent session
Examples
hermes --resume latest --in ./my-projectResume that directory's most recent session--worktree
Examples
hermes --worktreeStart in an isolated worktree--yolo
Examples
hermes --yoloStart in auto-approve mode--pass-session-id
Examples
hermes --pass-session-idStart with the session ID included in the system prompt--ignore-user-config
Examples
hermes --ignore-user-configStart without the user configuration--ignore-rules
Examples
hermes --ignore-rulesStart without rule auto-injection--tui
Examples
hermes --tuiLaunch the TUI--cli
Examples
hermes --cliLaunch the classic CLI--dev
Examples
hermes --devRun the TypeScript sources directly-z <prompt>
Notes
- Combinable with --provider and --model per-run overrides
Examples
hermes -z "Summarize the latest logs"Run a one-shot prompthermes chat --query "<text>"
Examples
hermes chat --query "Summarize this repository"Run a single prompt non-interactivelyhermes chat --query-file <path>
Examples
hermes chat --query-file prompt.txtRun a single prompt read from a filecat prompt.txt | hermes chat --query-file -Read the prompt from stdinhermes chat --model <model>
Notes
- Maps to HERMES_INFERENCE_MODEL for -z runs
hermes chat --toolsets <csv>
hermes chat --provider <provider>
Notes
- --provider <provider>: openrouter / anthropic / openai-api, etc.
Examples
hermes chat --provider openrouterStart with the OpenRouter providerhermes chat --skills <name>
hermes chat --verbose
Examples
hermes chat --verboseStart with verbose outputhermes chat --quiet
Examples
hermes chat --quietRun with the banner and spinner suppressedhermes chat --image <path>
Examples
hermes chat --image ./photo.pngStart with a local image attachedhermes chat --checkpoints
Examples
hermes chat --checkpointsStart with checkpoints enabledhermes chat --safe-mode
Examples
hermes chat --safe-modeStart with all customizations disabledhermes chat --source <tag>
hermes chat --max-turns <N>
Examples
hermes chat --max-turns 10Start with tool-calling capped at 10 iterationshermes gateway --all
Examples
hermes gateway stop --allStop the gateways of every profilehermes gateway --no-supervise
hermes gateway --external-supervisor
hermes setup --quick
Examples
hermes setup --quickSet up only the missing itemshermes setup --non-interactive
Examples
hermes setup --non-interactiveRun setup non-interactivelyhermes setup --reset
Examples
hermes setup --resetReset configuration, then run setuphermes setup --reconfigure
Examples
hermes setup --reconfigureRun reconfiguration (now the default behavior)hermes setup --portal
Examples
hermes setup --portalSet up Nous Portalhermes send --to <target>
Notes
- --to <target>: accepts forms like platform or platform:chat_id
Examples
hermes send --to telegram --file notes.txtSend the contents of notes.txt to Telegramhermes send --file <path>
Examples
hermes send --to telegram --file notes.txtSend with the message body read from a filehermes send --subject <line>
Examples
hermes send --to telegram --subject "Daily report" --file report.txtSend with a subject linehermes send --list [platform]
Examples
hermes send --listList the configured targetshermes send --quiet
Examples
hermes send --to telegram --file notes.txt --quietSend while suppressing output on successhermes send --json
Examples
hermes send --to telegram --file notes.txt --jsonEmit the result as JSONhermes logs --lines <N>
Examples
hermes logs --lines 100Show the last 100 lineshermes logs --follow
Examples
hermes logs --followFollow the log in real timehermes logs --level <LEVEL>
Notes
- --level <LEVEL>: DEBUG / INFO / WARNING / ERROR / CRITICAL
Examples
hermes logs --level ERRORShow only ERROR-level logs and abovehermes logs --session <ID>
hermes logs --since <TIME>
Notes
- Relative time formats such as 30m / 1h / 2d
Examples
hermes logs --since 1hShow logs from the last hourhermes logs --component <NAME>
Notes
- --component <NAME>: gateway / agent / tools / cli / cron
Examples
hermes logs --component gatewayShow only gateway logshermes status --all
Examples
hermes status --allShow all details in redacted formhermes status --deep
Examples
hermes status --deepRun the deeper checkshermes doctor --fix
Examples
hermes doctor --fixAttempt automatic repairs for detected issueshermes dump --show-keys
Examples
hermes dump --show-keysShow redacted API key prefixeshermes security audit --json
Examples
hermes security audit --jsonEmit the audit result as JSONhermes security audit --fail-on <level>
Notes
- --fail-on <level>: low / moderate / high / critical
Examples
hermes security audit --fail-on highExit non-zero on findings of high severity or abovehermes security audit --skip-venv
Examples
hermes security audit --skip-venvAudit without scanning the venvhermes security audit --skip-plugins
Examples
hermes security audit --skip-pluginsAudit without scanning pluginshermes security audit --skip-mcp
Examples
hermes security audit --skip-mcpAudit without scanning MCP servershermes prompt-size --platform <name>
Examples
hermes prompt-size --platform telegramSimulate the Telegram prompthermes prompt-size --json
Examples
hermes prompt-size --jsonEmit the prompt size as JSONhermes insights --days <n>
Examples
hermes insights --days 7Analyze the last 7 dayshermes insights --source <platform>
Notes
- --source <platform>: cli / telegram / discord, etc.
Examples
hermes insights --source telegramAnalyze only Telegram sessionshermes tools --summary
Examples
hermes tools --summaryPrint the enabled-tools summaryhermes backup --output <path>
Notes
- --output <path>: defaults to ~/hermes-backup-<timestamp>.zip
Examples
hermes backup --output ~/backups/hermes.zipBack up to the specified output pathhermes backup --quick
Examples
hermes backup --quickCreate a quick snapshothermes backup --label <name>
Examples
hermes backup --quick --label before-updateCreate a labeled quick snapshothermes update --check
Examples
hermes update --checkCheck whether an update is availablehermes update --plan
Examples
hermes update --planPreview the update plan onlyhermes update --backup
Examples
hermes update --backupUpdate after taking a full backuphermes update --no-backup
Examples
hermes update --no-backupUpdate without any backupshermes update --gateway
hermes update --yes
Examples
hermes update --yesUpdate without confirmation promptshermes uninstall --gui
Examples
hermes uninstall --guiUninstall only the Chat GUIhermes uninstall --full
Examples
hermes uninstall --fullUninstall including config and datahermes uninstall --dry-run
Examples
hermes uninstall --dry-runPreview what would be removedhermes uninstall --yes
Examples
hermes uninstall --yesUninstall without promptsSlash Commands
/new [name]
Notes
- [name]: sets the initial session title
Examples
/newStart a new session/new bugfixStart a new session titled bugfix/clear
Examples
/clearClear the screen and start fresh/history
Examples
/historyShow conversation history/save
Examples
/saveSave the current conversation/prompt
Examples
/promptCompose the prompt in your editor/retry
Examples
/retryResend the last message/undo
Examples
/undoRemove the last exchange/title
Examples
/titleSet the session title/compress [here [N] | focus topic]
Notes
- Syntax: /compress [here [N] | focus topic]
Examples
/compressCompress the conversation context/rollback
Examples
/rollbackList or restore checkpoints/diff [staged|all|session] [--stat]
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 --statShow just the changed-file summary/snapshot [create|restore <id>|prune]
Notes
- Subcommands: create / restore <id> / prune
Examples
/snapshot createCreate a snapshot/stop
Examples
/stopKill all background processes/queue <prompt>
Examples
/queue Run the tests nextQueue a prompt for the next turn/steer <prompt>
Examples
/steer Focus on the failing test firstInject a note into the running agent/goal <text>
Examples
/goal Keep the test suite greenSet a standing goal/subgoal <text>
Examples
/subgoal Add tests for edge casesAppend a criterion to the active goal/heartbeat every <interval> <prompt>
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 statusRe-send the same prompt every 30 minutes/heartbeat clearClear the recurring prompt/loop [interval] <prompt>
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 statusRe-run the same prompt every 10 minutes/loop stopStop the running loop/refine [focus]
Notes
- Optional focus text steers what the review looks at
- On Slack, run it as /hermes refine
Examples
/refineRun the self-improvement review now/refine save the deploy workflow as a skillSteer the review with focus text/review [instructions]
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
/reviewReview the work just discussed/review focus on error handlingSteer the review with instructions/moa <prompt>
Examples
/moa Compare these two designsRun the prompt through the MoA preset/resume [name]
Examples
/resume bugfixResume the named session/sessions
Examples
/sessionsOpen the session picker/egress [status]
Examples
/egressShow egress proxy status/redraw
Examples
/redrawRepaint the UI/status
Examples
/statusShow session info/context [all]
Notes
- all: append per-skill and per-toolset cost listings
- Read-only, with no prompt-cache impact
Examples
/contextCheck context window usage/agents
Examples
/agentsShow agents and tasks/bg <prompt>
Notes
- prompt: the prompt to hand to the background session (required)
Examples
/bg Summarize the docsSummarize the docs in a background session/btw <question>
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]
Examples
/branch experimentBranch the session with a name/worktree [new [name]|list|prune [--dry-run]]
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-aCreate an isolated worktree and switch into it/journey [list|delete <id>|edit <id>]
Notes
- list: list recorded entries
- delete <id> / edit <id>: delete or edit an entry
Examples
/journeyOpen the learning timeline/handoff <platform>
Examples
/handoff telegramHand the session off to Telegram/config
Examples
/configShow current configuration/model [model-name]
Examples
/modelShow the current model/model claude-sonnet-4Switch to the specified model/codex-runtime [auto|codex_app_server|on|off]
Notes
- Values: auto / codex_app_server / on / off
Examples
/codex-runtime autoSet the runtime selection to auto/personality [name]
Notes
- /personality none (also default or neutral) clears the overlay and returns to base behavior
Examples
/personalitySet a personality overlay/personality noneClear the overlay and return to default/verbose
Examples
/verboseCycle tool progress display/focus [on|off|status]
Notes
- Values: on / off / status
- While active, a focus badge stays pinned in the status bar
Examples
/focus onTurn on focus view/fast [normal|fast|status]
Notes
- Values: normal / fast / status
Examples
/fast statusShow fast mode status/reasoning
Notes
- Messaging syntax: /reasoning [level|show|hide]
Examples
/reasoningManage reasoning settings/skin
Examples
/skinShow or change the skin/export [profile]
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
/exportExport the active profile/export work -o work.tar.gzExport to a specific path/import <archive.tar.gz>
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.gzInstall the archive as a new profile/import work.tar.gz --name teamInstall it under a specific name/statusbar
Examples
/statusbarToggle the status bar/battery [on|off|status]
Notes
- Values: on / off / status
Examples
/battery onEnable the battery read-out/voice [on|off|tts|status]
Notes
- Values: on / off / tts / status
- Messaging: join / channel / leave
Examples
/voice onEnable voice mode/yolo
Examples
/yoloToggle YOLO mode/approvals [manual|smart|off]
Notes
- manual: prompt every time
- smart: auto-approve commands learned to be safe
- off: disable approval prompts
Examples
/approvals smartSwitch the approval mode to smart/footer [on|off|status]
Notes
- Values: on / off / status
Examples
/footer offDisable the footer/busy [queue|steer|interrupt|status]
Notes
- Values: queue / steer / interrupt / status
Examples
/busy steerSet the busy Enter action to steer/indicator [kaomoji|emoji|unicode|ascii]
Notes
- Values: kaomoji / emoji / unicode / ascii
Examples
/indicator emojiUse the emoji indicator style/timestamps [on|off|status]
Notes
- Values: on / off / status
Examples
/timestamps onEnable timestamps/wake [on|off|status]
Notes
- Values: on / off / status
Examples
/wake onEnable the wake word listener/tools [list|disable|enable] [name...]
Notes
- list: show available tools
- disable <name...>: disable the given tools
- enable <name...>: re-enable the given tools
Examples
/tools listList available tools/toolsets
Examples
/toolsetsShow the list of toolsets/browser [connect|disconnect|status]
Notes
- connect: connect to the browser
- disconnect: drop the connection
- status: show connection status
Examples
/browser statusCheck the current connection status/skills
Notes
- Messaging-surface arguments: [pending|approve|reject|diff|approval] to review, approve, reject, or diff pending skill writes
Examples
/skillsSearch and manage skills/memory [pending|approve|reject|approval]
Notes
- pending: list pending writes
- approve / reject: approve or reject pending writes
- approval: manage write approval
Examples
/memory pendingReview pending memory writes/bundles
Examples
/bundlesList skill bundles/learn <what to learn from>
Notes
- <what to learn from>: the source to learn from (a directory, a URL, etc.)
Examples
/learn ./scriptsDistill a reusable skill from the scripts directory/plan [task]
Notes
- task: the task to plan for (inferred from the conversation when omitted)
Examples
/plan Add OAuth loginWrite an implementation plan for adding OAuth login/init [notes]
Notes
- [notes]: optional notes that steer the emphasis
Examples
/initGenerate AGENTS.md from a repo scan/cron
Notes
- list: list scheduled tasks
- add / create / edit: add or edit tasks
- pause / resume / run / remove: pause, resume, run, or remove tasks
Examples
/cronManage scheduled tasks/suggestions [accept|dismiss N|catalog|clear]
Notes
- accept: accept a suggestion
- dismiss N: dismiss a suggestion
- catalog / clear: browse the catalog or clear suggestions
Examples
/suggestionsReview suggested automations/blueprint [name] [slot=value ...]
Notes
- [name]: blueprint to use
- [slot=value ...]: fill template slots with values
Examples
/blueprintSet up an automation from a blueprint/curator
Notes
- status: show curator status
- run: run maintenance
- pin / archive: pin or archive skills
Examples
/curatorOperate background skill maintenance/kanban <action>
Notes
- <action>: the board action to run
Examples
/kanban listList tasks on the board/reload-mcp
Examples
/reload-mcpReload MCP servers/reload-skills
Examples
/reload-skillsRe-scan the skills directory/reload
Examples
/reloadReload .env variables/plugins
Examples
/pluginsList plugins and their status/pet [list|<slug>]
Notes
- list: list available pets
- <slug>: pick the given pet
Examples
/pet listList available pets/hatch <description>
Notes
- <description>: what the new pet should be
Examples
/hatch a tiny robot foxGenerate a new pet from a description/help
Notes
- Prefix matching supported (/h → /help; exact names and aliases take precedence when ambiguous)
Examples
/helpShow help/palette
Examples
/paletteOpen the command palette and filter commands and skills/version
Examples
/versionShow version info/whoami
Examples
/whoamiCheck your access level/usage
Notes
- reset: redeem one banked reset to restore your limits (openai-codex provider only)
Examples
/usageCheck usage and cost/usage reset
Examples
/usage resetRedeem one banked reset/topup
Examples
/topupCheck your Nous balance and manage billing/subscription
Examples
/subscriptionView and change your plan/insights
Notes
- [days]: number of days to cover (messaging surface only)
Examples
/insightsShow insights for the last 30 days/platforms
Examples
/platformsCheck platform status/paste
Examples
/pasteAttach a clipboard image/copy [number]
Notes
- [number]: which response to copy, counting from the last
Examples
/copyCopy the last response/copy 2Copy the second-from-last response/image <path>
Notes
- <path>: path to the image file to attach
Examples
/image ./screenshot.pngAttach an image to your next prompt/debug
Examples
/debugUpload a debug report/profile
Examples
/profileCheck the active profile/quit
Notes
- --delete: exit and permanently delete the current session's SQLite history and on-disk transcripts (/exit --delete does the same)
Examples
/quitExit the CLI/start
Examples
/startSent automatically on initial contact with the platform/sethome
Examples
/sethomeMark the current chat as the home channel/topic [off|help|session-id]
Notes
- off: turn topic mode off
- help: show help
- session-id: pass a target session ID
Examples
/topic offTurn topic mode off/commands [page]
Notes
- [page]: page number to show
Examples
/commandsBrowse commands and skills/commands 2Show page 2/approve [session|always]
Notes
- session / always: scope of the approval
Examples
/approveApprove and run the pending command/deny
Examples
/denyReject the pending command/update
Examples
/updateUpdate to the latest version/restart
Examples
/restartRestart the gateway/platform <list|pause|resume> [name]
Notes
- list: list platforms
- pause / resume [name]: pause or resume the given platform
Examples
/platform listList platformsKeybindings
Gateway Settings
TELEGRAM_BOT_TOKEN
Examples
TELEGRAM_BOT_TOKEN=<token>Put the bot token in ~/.hermes/.envTELEGRAM_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,987654321Allow specific user IDs, comma-separatedTELEGRAM_HOME_CHANNEL
Examples
TELEGRAM_HOME_CHANNEL=<channel-id>Set the channel that receives cron resultsgateway.platforms.<platform>
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_fromKey listing admin user IDs for Discordplatforms.telegram.extra
Notes
- status_indicator: toggle for the status indicator
- rich_messages: toggle for rich messages
Configuration
~/.hermes/config.yaml
Examples
hermes config pathShow the settings file path~/.hermes/.env
Notes
- ${VAR_NAME}: substitution syntax to reference .env values from config.yaml
Examples
hermes config env-pathShow the .env file path~/.hermes/
model.default
model.provider
model.context_length
model.persist_switch_by_default
auxiliary.*
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
agent.reasoning_effort
Notes
- Accepted values: none / minimal / low / medium / high / xhigh / max / ultra
- agent.reasoning_overrides.<model>: per-model override
memory.memory_enabled
memory.user_profile_enabled
memory.memory_char_limit
Notes
- memory.user_char_limit: user profile size cap (about 500 tokens)
memory.write_approval
compression.enabled
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
Notes
- Accepted values: legacy / lean
context.engine
session.terminal_continue
credential_pool_strategies.<provider>
Notes
- Accepted values: fill_first / round_robin / least_used / random
providers.<provider>.key_cmd
security.allow_data_training_tiers_noninteractive
prompt_caching.cache_ttl
Notes
- Accepted values: "5m" / "1h"
${VAR_NAME}
Notes
- ${VAR_NAME}: expands to the environment variable's value (multiple references per value work)
Delegation Skills
claude-code
Notes
- print mode: one-shot task that returns the result and exits (no PTY needed)
- interactive mode: full conversational REPL (requires tmux)
codex
opencode
hermes-agent
openhands
grok
blackbox
antigravity-cli
hermes skills install official/<category>/<skill>
Notes
- official/<category>/<skill>: category and skill name in the official catalog
Examples
hermes skills install official/autonomous-ai-agents/antigravity-cliInstall the antigravity-cli skilldelegate_task
Version history
The Hermes Agent versions and key changes used to verify the data on this page.
- 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
- 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)
- 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)
- 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
- 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
- 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
- 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
- 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
- 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
- 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)
- Same-day patch addressing the WhatsApp Baileys dependency issue
- Fixed dependency installation for Docker builds
- Made tagged-release deployments reliable
- 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
- 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
- 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.