Files
hermes-agent/website/docs/reference/slash-commands.md
Teknium 289cc47631 docs: resync reference, user-guide, developer-guide, and messaging pages against code (#17738)
Broad drift audit against origin/main (b52b63396).

Reference pages (most user-visible drift):
- slash-commands: add /busy, /curator, /footer, /indicator, /redraw, /steer
  that were missing; drop non-existent /terminal-setup; fix /q footnote
  (resolves to /queue, not /quit); extend CLI-only list with all 24
  CLI-only commands in the registry
- cli-commands: add dedicated sections for hermes curator / fallback /
  hooks (new subcommands not previously documented); remove stale
  hermes honcho standalone section (the plugin registers dynamically
  via hermes memory); list curator/fallback/hooks in top-level table;
  fix completion to include fish
- toolsets-reference: document the real 52-toolset count; split browser
  vs browser-cdp; add discord / discord_admin / spotify / yuanbao;
  correct hermes-cli tool count from 36 to 38; fix misleading claim
  that hermes-homeassistant adds tools (it's identical to hermes-cli)
- tools-reference: bump tool count 55 -> 68; add 7 Spotify, 5 Yuanbao,
  2 Discord toolsets; move browser_cdp/browser_dialog to their own
  browser-cdp toolset section
- environment-variables: add 40+ user-facing HERMES_* vars that were
  undocumented (--yolo, --accept-hooks, --ignore-*, inference model
  override, agent/stream/checkpoint timeouts, OAuth trace, per-platform
  batch tuning for Telegram/Discord/Matrix/Feishu/WeCom, cron knobs,
  gateway restart/connect timeouts); dedupe the Cron Scheduler section;
  replace stale QQ_SANDBOX with QQ_PORTAL_HOST

User-guide (top level):
- cli.md: compression preserves last 20 turns, not 4 (protect_last_n: 20)
- configuration.md: display.platforms is the canonical per-platform
  override key; tool_progress_overrides is deprecated and auto-migrated
- profiles.md: model.default is the config key, not model.model
- sessions.md: CLI/TUI session IDs use 6-char hex, gateway uses 8
- checkpoints-and-rollback.md: destructive-command list now matches
  _DESTRUCTIVE_PATTERNS (adds rmdir, cp, install, dd)
- docker.md: the container runs as non-root hermes (UID 10000) via
  gosu; fix install command (uv pip); add missing --insecure on the
  dashboard compose example (required for non-loopback bind)
- security.md: systemctl danger pattern also matches 'restart'
- index.md: built-in tool count 47 -> 68
- integrations/index.md: 6 STT providers, 8 memory providers
- integrations/providers.md: drop fictional dashscope/qwen aliases

Features:
- overview.md: 9 image models (not 8), 9 TTS providers (not 5),
  8 memory providers (Supermemory was missing)
- tool-gateway.md: 9 image models
- tools.md: extend common-toolsets list with search / messaging /
  spotify / discord / debugging / safe
- fallback-providers.md: add 6 real providers from PROVIDER_REGISTRY
  (lmstudio, kimi-coding-cn, stepfun, alibaba-coding-plan,
  tencent-tokenhub, azure-foundry)
- plugins.md: Available Hooks table now includes on_session_finalize,
  on_session_reset, subagent_stop
- built-in-plugins.md: add the 7 bundled plugins the page didn't
  mention (spotify, google_meet, three image_gen providers, two
  dashboard examples)
- web-dashboard.md: add --insecure and --tui flags
- cron.md: hermes cron create takes positional schedule/prompt, not
  flags

Messaging:
- telegram.md: TELEGRAM_WEBHOOK_SECRET is now REQUIRED when
  TELEGRAM_WEBHOOK_URL is set (gateway refuses to start without it
  per GHSA-3vpc-7q5r-276h). Biggest user-visible drift in the batch.
- discord.md: HERMES_DISCORD_TEXT_BATCH_SPLIT_DELAY_SECONDS default
  is 2.0, not 0.1
- dingtalk.md: document DINGTALK_REQUIRE_MENTION /
  FREE_RESPONSE_CHATS / MENTION_PATTERNS / HOME_CHANNEL /
  ALLOW_ALL_USERS that the adapter supports
- bluebubbles.md: drop fictional BLUEBUBBLES_SEND_READ_RECEIPTS env
  var; the setting lives in platforms.bluebubbles.extra only
- qqbot.md: drop dead QQ_SANDBOX; add real QQ_PORTAL_HOST and
  QQ_GROUP_ALLOWED_USERS
- wecom-callback.md: replace 'hermes gateway start' (service-only)
  with 'hermes gateway' for first-time setup

Developer-guide:
- architecture.md: refresh tool/toolset counts (61/52), terminal
  backend count (7), line counts for run_agent.py (~13.7k), cli.py
  (~11.5k), main.py (~10.4k), setup.py (~3.5k), gateway/run.py
  (~12.2k), mcp_tool.py (~3.1k); add yuanbao adapter, bump platform
  adapter count 18 -> 20
- agent-loop.md: run_agent.py line count 10.7k -> 13.7k
- tools-runtime.md: add vercel_sandbox backend
- adding-tools.md: remove stale 'Discovery import added to
  model_tools.py' checklist item (registry auto-discovery)
- adding-platform-adapters.md: mark send_typing / get_chat_info as
  concrete base methods; only connect/disconnect/send are abstract
- acp-internals.md: ACP sessions now persist to SessionDB
  (~/.hermes/state.db); acp.run_agent call uses
  use_unstable_protocol=True
- cron-internals.md: gateway runs scheduler in a dedicated background
  thread via _start_cron_ticker, not on a maintenance cycle; locking
  is cross-process via fcntl.flock (Unix) / msvcrt.locking (Windows)
- gateway-internals.md: gateway/run.py ~12k lines
- provider-runtime.md: cron DOES support fallback (run_job reads
  fallback_providers from config)
- session-storage.md: SCHEMA_VERSION = 11 (not 9); add migrations
  10 and 11 (trigram FTS, inline-mode FTS5 re-index); add
  api_call_count column to Sessions DDL; document messages_fts_trigram
  and state_meta in the architecture tree
- context-compression-and-caching.md: remove the obsolete 'context
  pressure warnings' section (warnings were removed for causing
  models to give up early)
- context-engine-plugin.md: compress() signature now includes
  focus_topic param
- extending-the-cli.md: _build_tui_layout_children signature now
  includes model_picker_widget; add to default layout

Also fixed three pre-existing broken links/anchors the build warned
about (docker.md -> api-server.md, yuanbao.md -> cron-jobs.md and
tips#background-tasks, nix-setup.md -> #container-aware-cli).

Regenerated per-skill pages via website/scripts/generate-skill-docs.py
so catalog tables and sidebar are consistent with current SKILL.md
frontmatter.

docusaurus build: clean, no broken links or anchors.
2026-04-29 20:55:59 -07:00

13 KiB

sidebar_position, title, description
sidebar_position title description
2 Slash Commands Reference Complete reference for interactive CLI and messaging slash commands

Slash Commands Reference

Hermes has two slash-command surfaces, both driven by a central COMMAND_REGISTRY in hermes_cli/commands.py:

  • Interactive CLI slash commands — dispatched by cli.py, with autocomplete from the registry
  • Messaging slash commands — dispatched by gateway/run.py, with help text and platform menus generated from the registry

Installed skills are also exposed as dynamic slash commands on both surfaces. That includes bundled skills like /plan, which opens plan mode and saves markdown plans under .hermes/plans/ relative to the active workspace/backend working directory.

Interactive CLI slash commands

Type / in the CLI to open the autocomplete menu. Built-in commands are case-insensitive.

Session

Command Description
/new (alias: /reset) Start a new session (fresh session ID + history)
/clear Clear screen and start a new session
/history Show conversation history
/save Save the current conversation
/retry Retry the last message (resend to agent)
/undo Remove the last user/assistant exchange
/title Set a title for the current session (usage: /title My Session Name)
/compress [focus topic] Manually compress conversation context (flush memories + summarize). Optional focus topic narrows what the summary preserves.
/rollback List or restore filesystem checkpoints (usage: /rollback [number])
/snapshot [create|restore <id>|prune] (alias: /snap) Create or restore state snapshots of Hermes config/state. create [label] saves a snapshot, restore <id> reverts to it, prune [N] removes old snapshots, or list all with no args.
/stop Kill all running background processes
/queue <prompt> (alias: /q) Queue a prompt for the next turn (doesn't interrupt the current agent response).
/steer <prompt> Inject a mid-run note that arrives at the agent after the next tool call — no interrupt, no new user turn. The text is appended to the last tool result's content once the current tool completes, giving the agent new context without breaking the current tool-calling loop. Use this to nudge direction mid-task (e.g. "focus on the auth module" while the agent is running tests).
/resume [name] Resume a previously-named session
/redraw Force a full UI repaint (recovers from terminal drift after tmux resize, mouse selection artifacts, etc.)
/status Show session info
/agents (alias: /tasks) Show active agents and running tasks across the current session.
/background <prompt> (alias: /bg, /btw) Run a prompt in a separate background session. The agent processes your prompt independently — your current session stays free for other work. Results appear as a panel when the task finishes. See CLI Background Sessions.
/branch [name] (alias: /fork) Branch the current session (explore a different path)

Configuration

Command Description
/config Show current configuration
/model [model-name] Show or change the current model. Supports: /model claude-sonnet-4, /model provider:model (switch providers), /model custom:model (custom endpoint), /model custom:name:model (named custom provider), /model custom (auto-detect from endpoint). Use --global to persist the change to config.yaml. Note: /model can only switch between already-configured providers. To add a new provider, exit the session and run hermes model from your terminal.
/personality Set a predefined personality
/verbose Cycle tool progress display: off → new → all → verbose. Can be enabled for messaging via config.
/fast [normal|fast|status] Toggle fast mode — OpenAI Priority Processing / Anthropic Fast Mode. Options: normal, fast, status.
/reasoning Manage reasoning effort and display (usage: /reasoning [level|show|hide])
/skin Show or change the display skin/theme
/statusbar (alias: /sb) Toggle the context/model status bar on or off
/voice [on|off|tts|status] Toggle CLI voice mode and spoken playback. Recording uses voice.record_key (default: Ctrl+B).
/yolo Toggle YOLO mode — skip all dangerous command approval prompts.
/footer [on|off|status] Toggle the gateway runtime-metadata footer on final replies (shows model, tool counts, timing).
/busy [queue|steer|interrupt|status] CLI-only: control what pressing Enter does while Hermes is working — queue the new message, steer mid-turn, or interrupt immediately.
/indicator [kaomoji|emoji|unicode|ascii] CLI-only: pick the TUI busy-indicator style.

Tools & Skills

Command Description
/tools [list|disable|enable] [name...] Manage tools: list available tools, or disable/enable specific tools for the current session. Disabling a tool removes it from the agent's toolset and triggers a session reset.
/toolsets List available toolsets
/browser [connect|disconnect|status] Manage local Chrome CDP connection. connect attaches browser tools to a running Chrome instance (default: ws://localhost:9222). disconnect detaches. status shows current connection. Auto-launches Chrome if no debugger is detected.
/skills Search, install, inspect, or manage skills from online registries
/cron Manage scheduled tasks (list, add/create, edit, pause, resume, run, remove)
/curator Background skill maintenance — status, run, pin, archive. See Curator.
/reload-mcp (alias: /reload_mcp) Reload MCP servers from config.yaml
/reload Reload .env variables into the running session (picks up new API keys without restarting)
/plugins List installed plugins and their status

Info

Command Description
/help Show this help message
/usage Show token usage, cost breakdown, session duration, and — when available from the active provider — an Account limits section with remaining quota / credits / plan usage pulled live from the provider's API.
/insights Show usage insights and analytics (last 30 days)
/platforms (alias: /gateway) Show gateway/messaging platform status
/paste Attach a clipboard image
/copy [number] Copy the last assistant response to clipboard (or the Nth-from-last with a number). CLI-only.
/image <path> Attach a local image file for your next prompt.
/debug Upload debug report (system info + logs) and get shareable links. Also available in messaging.
/profile Show active profile name and home directory
/gquota Show Google Gemini Code Assist quota usage with progress bars (only available when the google-gemini-cli provider is active).

Exit

Command Description
/quit Exit the CLI (also: /exit).

Dynamic CLI slash commands

Command Description
/<skill-name> Load any installed skill as an on-demand command. Example: /gif-search, /github-pr-workflow, /excalidraw.
/skills ... Search, browse, inspect, install, audit, publish, and configure skills from registries and the official optional-skills catalog.

Quick Commands

User-defined quick commands map a short slash command to either a shell command or another slash command. Configure them in ~/.hermes/config.yaml:

quick_commands:
  status:
    type: exec
    command: systemctl status hermes-agent
  deploy:
    type: exec
    command: scripts/deploy.sh
  inbox:
    type: alias
    target: /gmail unread

Then type /status, /deploy, or /inbox in the CLI or a messaging platform. Quick commands are resolved at dispatch time and may not appear in every built-in autocomplete/help table.

String-only prompt shortcuts are not supported as quick commands. Put longer reusable prompts in a skill, or use type: alias to point at an existing slash command.

Alias Resolution

Commands support prefix matching: typing /h resolves to /help, /mod resolves to /model. When a prefix is ambiguous (matches multiple commands), the first match in registry order wins. Full command names and registered aliases always take priority over prefix matches.

Messaging slash commands

The messaging gateway supports the following built-in commands inside Telegram, Discord, Slack, WhatsApp, Signal, Email, and Home Assistant chats:

Command Description
/new Start a new conversation.
/reset Reset conversation history.
/status Show session info.
/stop Kill all running background processes and interrupt the running agent.
/model [provider:model] Show or change the model. Supports provider switches (/model zai:glm-5), custom endpoints (/model custom:model), named custom providers (/model custom:local:qwen), and auto-detect (/model custom). Use --global to persist the change to config.yaml. Note: /model can only switch between already-configured providers. To add a new provider or set up API keys, use hermes model from your terminal (outside the chat session).
/personality [name] Set a personality overlay for the session.
/fast [normal|fast|status] Toggle fast mode — OpenAI Priority Processing / Anthropic Fast Mode.
/retry Retry the last message.
/undo Remove the last exchange.
/sethome (alias: /set-home) Mark the current chat as the platform home channel for deliveries.
/compress [focus topic] Manually compress conversation context. Optional focus topic narrows what the summary preserves.
/title [name] Set or show the session title.
/resume [name] Resume a previously named session.
/usage Show token usage, estimated cost breakdown (input/output), context window state, session duration, and — when available from the active provider — an Account limits section with remaining quota / credits pulled live from the provider's API.
/insights [days] Show usage analytics.
/reasoning [level|show|hide] Change reasoning effort or toggle reasoning display.
/voice [on|off|tts|join|channel|leave|status] Control spoken replies in chat. join/channel/leave manage Discord voice-channel mode.
/rollback [number] List or restore filesystem checkpoints.
/background <prompt> Run a prompt in a separate background session. Results are delivered back to the same chat when the task finishes. See Messaging Background Sessions.
/queue <prompt> (alias: /q) Queue a prompt for the next turn without interrupting the current one.
/steer <prompt> Inject a message after the next tool call without interrupting — the model picks it up on its next iteration rather than as a new turn.
/footer [on|off|status] Toggle the runtime-metadata footer on final replies (shows model, tool counts, timing).
/curator [status|run|pin|archive] Background skill maintenance controls.
/reload-mcp (alias: /reload_mcp) Reload MCP servers from config.
/yolo Toggle YOLO mode — skip all dangerous command approval prompts.
/commands [page] Browse all commands and skills (paginated).
/approve [session|always] Approve and execute a pending dangerous command. session approves for this session only; always adds to permanent allowlist.
/deny Reject a pending dangerous command.
/update Update Hermes Agent to the latest version.
/restart Gracefully restart the gateway after draining active runs. When the gateway comes back online, it sends a confirmation to the requester's chat/thread.
/debug Upload debug report (system info + logs) and get shareable links.
/help Show messaging help.
/<skill-name> Invoke any installed skill by name.

Notes

  • /skin, /snapshot, /gquota, /reload, /tools, /toolsets, /browser, /config, /cron, /skills, /platforms, /paste, /image, /statusbar, /plugins, /busy, /indicator, /redraw, /clear, /history, /save, /copy, and /quit are CLI-only commands.
  • /verbose is CLI-only by default, but can be enabled for messaging platforms by setting display.tool_progress_command: true in config.yaml. When enabled, it cycles the display.tool_progress mode and saves to config.
  • /sethome, /update, /restart, /approve, /deny, and /commands are messaging-only commands.
  • /status, /background, /queue, /steer, /voice, /reload-mcp, /rollback, /debug, /fast, /footer, /curator, and /yolo work in both the CLI and the messaging gateway.
  • /voice join, /voice channel, and /voice leave are only meaningful on Discord.