A **Hermes Slash Command** is a /-prefixed instruction typed into 📝Hermes Agent, either a built-in command or an installed skill, dispatched in the interactive CLI and on connected messaging platforms.
Hermes has two slash-command surfaces, both driven by a central COMMAND_REGISTRY in hermes_cli/commands.py. Interactive CLI commands are dispatched by cli.py, which builds its autocomplete menu from the registry. Messaging commands are dispatched by gateway/run.py in the 📝Hermes Gateway, which generates help text and platform menus from the same registry. Each entry is a CommandDef recording a name, description, category, aliases, argument hint and availability flags such as cli_only and gateway_only.
The two surfaces do not offer the same set. The reference lists commands such as /status, /queue, 📝/steer, /learn and /sessions as working in both the CLI and the messaging gateway, while /snapshot, /handoff and /quit are CLI-only and /sethome, /restart, /approve and /deny are messaging-only. Built-in commands are case-insensitive, and an unambiguous prefix such as /mod resolves to /model.
Installed skills are also exposed as dynamic slash commands on both surfaces, so a 📝skill document loads as /<skill-name>. When a skill's name matches a built-in command or alias, the built-in wins and the skill stays loadable through /skill <name>. Quick commands defined in Hermes' config.yaml map a short slash command to a shell command or to another slash command. On messaging platforms with per-user allowlists, admins get every registered command, while regular users get only the names in user_allowed_commands plus the always-allowed /help and /whoami.
