* feat: config-gated /verbose command for messaging gateway Add gateway_config_gate field to CommandDef, allowing cli_only commands to be conditionally available in the gateway based on a config value. - CommandDef gains gateway_config_gate: str | None — a config dotpath that, when truthy, overrides cli_only for gateway surfaces - /verbose uses gateway_config_gate='display.tool_progress_command' - Default is off (cli_only behavior preserved) - When enabled, /verbose cycles tool_progress mode (off/new/all/verbose) in the gateway, saving to config.yaml — same cycle as the CLI - Gateway helpers (help, telegram menus, slack mapping) dynamically check config to include/exclude config-gated commands - GATEWAY_KNOWN_COMMANDS always includes config-gated commands so the gateway recognizes them and can respond appropriately - Handles YAML 1.1 bool coercion (bare 'off' parses as False) - 8 new tests for the config gate mechanism + gateway handler * docs: document gateway_config_gate and /verbose messaging support - AGENTS.md: add gateway_config_gate to CommandDef fields - slash-commands.md: note /verbose can be enabled for messaging, update Notes - configuration.md: add tool_progress_command to display section + usage note - cli.md: cross-link to config docs for messaging enablement - messaging/index.md: show tool_progress_command in config snippet - plugins.md: add gateway_config_gate to register_command parameter table
133 lines
8.3 KiB
Markdown
133 lines
8.3 KiB
Markdown
---
|
|
sidebar_position: 2
|
|
title: "Slash Commands Reference"
|
|
description: "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` | Manually compress conversation context (flush memories + summarize) |
|
|
| `/rollback` | List or restore filesystem checkpoints (usage: /rollback [number]) |
|
|
| `/stop` | Kill all running background processes |
|
|
| `/queue <prompt>` (alias: `/q`) | Queue a prompt for the next turn (doesn't interrupt the current agent response) |
|
|
| `/resume [name]` | Resume a previously-named session |
|
|
| `/statusbar` (alias: `/sb`) | Toggle the context/model status bar on or off |
|
|
| `/background <prompt>` | 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](/docs/user-guide/cli#background-sessions). |
|
|
| `/plan [request]` | Load the bundled `plan` skill to write a markdown plan instead of executing the work. Plans are saved under `.hermes/plans/` relative to the active workspace/backend working directory. |
|
|
|
|
### 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) |
|
|
| `/provider` | Show available providers and current provider |
|
|
| `/prompt` | View/set custom system prompt |
|
|
| `/personality` | Set a predefined personality |
|
|
| `/verbose` | Cycle tool progress display: off → new → all → verbose. Can be [enabled for messaging](#notes) via config. |
|
|
| `/reasoning` | Manage reasoning effort and display (usage: /reasoning [level\|show\|hide]) |
|
|
| `/skin` | Show or change the display skin/theme |
|
|
| `/voice [on\|off\|tts\|status]` | Toggle CLI voice mode and spoken playback. Recording uses `voice.record_key` (default: `Ctrl+B`). |
|
|
|
|
### 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) |
|
|
| `/reload-mcp` | Reload MCP servers from config.yaml |
|
|
| `/plugins` | List installed plugins and their status |
|
|
|
|
### Info
|
|
|
|
| Command | Description |
|
|
|---------|-------------|
|
|
| `/help` | Show this help message |
|
|
| `/usage` | Show token usage, cost breakdown, and session duration |
|
|
| `/insights` | Show usage insights and analytics (last 30 days) |
|
|
| `/platforms` | Show gateway/messaging platform status |
|
|
| `/paste` | Check clipboard for an image and attach it |
|
|
|
|
### Exit
|
|
|
|
| Command | Description |
|
|
|---------|-------------|
|
|
| `/quit` | Exit the CLI (also: /exit, /q) |
|
|
|
|
### 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 from `quick_commands` in `~/.hermes/config.yaml` are also available as slash commands. These are resolved at dispatch time, not shown in the built-in autocomplete/help tables.
|
|
|
|
## 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`). |
|
|
| `/provider` | Show provider availability and auth status. |
|
|
| `/personality [name]` | Set a personality overlay for the session. |
|
|
| `/retry` | Retry the last message. |
|
|
| `/undo` | Remove the last exchange. |
|
|
| `/sethome` | Mark the current chat as the platform home channel for deliveries. |
|
|
| `/compress` | Manually compress conversation context. |
|
|
| `/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, and session duration. |
|
|
| `/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](/docs/user-guide/messaging/#background-sessions). |
|
|
| `/plan [request]` | Load the bundled `plan` skill to write a markdown plan instead of executing the work. Plans are saved under `.hermes/plans/` relative to the active workspace/backend working directory. |
|
|
| `/reload-mcp` | Reload MCP servers from config. |
|
|
| `/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. |
|
|
| `/help` | Show messaging help. |
|
|
| `/<skill-name>` | Invoke any installed skill by name. |
|
|
|
|
## Notes
|
|
|
|
- `/skin`, `/tools`, `/toolsets`, `/browser`, `/config`, `/prompt`, `/cron`, `/skills`, `/platforms`, `/paste`, `/statusbar`, and `/plugins` 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.
|
|
- `/status`, `/sethome`, `/update`, `/approve`, and `/deny` are **messaging-only** commands.
|
|
- `/background`, `/voice`, `/reload-mcp`, and `/rollback` work in **both** the CLI and the messaging gateway.
|
|
- `/voice join`, `/voice channel`, and `/voice leave` are only meaningful on Discord.
|