2026-01-06 20:45:40 +00:00
---
summary: "Slash commands: text vs native, config, and supported commands"
read_when:
- Using or configuring chat commands
- Debugging command routing or permissions
---
# Slash commands
Commands are handled by the Gateway. Send them as a **standalone** message that starts with `/` .
2026-01-08 22:57:08 +01:00
Inline text like `hello /status` is ignored for commands.
Directives (`/think` , `/verbose` , `/reasoning` , `/elevated` ) are parsed even when inline and are stripped from the message before the model sees it.
2026-01-06 20:45:40 +00:00
## Config
```json5
{
commands: {
native: false,
text: true,
2026-01-11 02:17:10 +01:00
config: false,
debug: false,
2026-01-09 05:49:11 +00:00
restart: false,
2026-01-06 20:45:40 +00:00
useAccessGroups: true
}
}
```
- `commands.text` (default `true` ) enables parsing `/...` in chat messages.
2026-01-11 02:44:32 +00:00
- On surfaces without native commands (WhatsApp/WebChat/Signal/iMessage/MS Teams), text commands still work even if you set this to `false` .
2026-01-06 20:45:40 +00:00
- `commands.native` (default `false` ) registers native commands on Discord/Slack/Telegram.
- `false` clears previously registered commands on Discord/Telegram at startup.
- Slack commands are managed in the Slack app and are not removed automatically.
2026-01-11 02:17:10 +01:00
- `commands.config` (default `false` ) enables `/config` (reads/writes `clawdbot.json` ).
- `commands.debug` (default `false` ) enables `/debug` (runtime-only overrides).
2026-01-06 20:45:40 +00:00
- `commands.useAccessGroups` (default `true` ) enforces allowlists/policies for commands.
## Command list
Text + native (when enabled):
- `/help`
2026-01-08 16:02:54 +01:00
- `/commands`
2026-01-11 04:09:14 +01:00
- `/status` (show current status; includes a short usage line when available)
- `/usage` (alias: `/status` )
2026-01-11 11:45:25 +00:00
- `/whoami` (show your sender id; alias: `/id` )
2026-01-11 02:17:10 +01:00
- `/config show|get|set|unset` (persist config to disk, owner-only; requires `commands.config: true` )
- `/debug show|set|unset|reset` (runtime overrides, owner-only; requires `commands.debug: true` )
2026-01-09 02:21:17 +00:00
- `/cost on|off` (toggle per-response usage line)
2026-01-06 23:05:05 +00:00
- `/stop`
2026-01-06 20:45:40 +00:00
- `/restart`
- `/activation mention|always` (groups only)
- `/send on|off|inherit` (owner-only)
- `/reset` or `/new`
- `/think <level>` (aliases: `/thinking` , `/t` )
- `/verbose on|off` (alias: `/v` )
2026-01-10 00:53:19 +01:00
- `/reasoning on|off|stream` (alias: `/reason` ; when on, sends a separate message prefixed `Reasoning:` ; `stream` = Telegram draft only)
2026-01-06 20:45:40 +00:00
- `/elevated on|off` (alias: `/elev` )
2026-01-09 17:14:35 +01:00
- `/model <name>` (alias: `/models` ; or `/<alias>` from `agents.defaults.models.*.alias` )
2026-01-08 03:40:39 +01:00
- `/queue <mode>` (plus options like `debounce:2s cap:25 drop:summarize` ; send `/queue` to see current settings)
2026-01-06 20:45:40 +00:00
Text-only:
2026-01-07 18:12:17 +01:00
- `/compact [instructions]` (see [/concepts/compaction ](/concepts/compaction ))
2026-01-06 20:45:40 +00:00
2026-01-08 03:22:14 +01:00
Notes:
- Commands accept an optional `:` between the command and args (e.g. `/think: high` , `/send: on` , `/help:` ).
2026-01-09 17:14:35 +01:00
- `/status` and `/usage` show the same status output; for full provider usage breakdown, use `clawdbot status --usage` .
2026-01-09 02:21:17 +00:00
- `/cost` appends per-response token usage; it only shows dollar cost when the model uses an API key (OAuth hides cost).
2026-01-09 05:49:11 +00:00
- `/restart` is disabled by default; set `commands.restart: true` to enable it.
2026-01-09 02:07:33 +01:00
- `/verbose` is meant for debugging and extra visibility; keep it **off** in normal use.
- `/reasoning` (and `/verbose` ) are risky in group settings: they may reveal internal reasoning or tool output you did not intend to expose. Prefer leaving them off, especially in group chats.
2026-01-08 03:22:14 +01:00
2026-01-09 16:38:52 +01:00
## Debug overrides
2026-01-11 02:17:10 +01:00
`/debug` lets you set **runtime-only** config overrides (memory, not disk). Owner-only. Disabled by default; enable with `commands.debug: true` .
2026-01-09 16:38:52 +01:00
Examples:
```
/debug show
/debug set messages.responsePrefix="[clawdbot]"
/debug set whatsapp.allowFrom=["+1555","+4477"]
/debug unset messages.responsePrefix
/debug reset
```
Notes:
- Overrides apply immediately to new config reads, but do **not** write to `clawdbot.json` .
- Use `/debug reset` to clear all overrides and return to the on-disk config.
2026-01-10 03:00:24 +01:00
## Config updates
2026-01-11 02:17:10 +01:00
`/config` writes to your on-disk config (`clawdbot.json` ). Owner-only. Disabled by default; enable with `commands.config: true` .
2026-01-10 03:00:24 +01:00
Examples:
```
/config show
/config show messages.responsePrefix
2026-01-10 03:02:39 +01:00
/config get messages.responsePrefix
2026-01-10 03:00:24 +01:00
/config set messages.responsePrefix="[clawdbot]"
/config unset messages.responsePrefix
```
Notes:
- Config is validated before write; invalid changes are rejected.
- `/config` updates persist across restarts.
2026-01-06 20:45:40 +00:00
## Surface notes
- **Text commands** run in the normal chat session (DMs share `main` , groups have their own session).
2026-01-11 02:44:32 +00:00
- **Native commands** use isolated sessions:
- Discord: `agent:<agentId>:discord:slash:<userId>`
- Slack: `agent:<agentId>:slack:slash:<userId>` (prefix configurable via `slack.slashCommand.sessionPrefix` )
- Telegram: `telegram:slash:<userId>` (targets the chat session via `CommandTargetSessionKey` )
2026-01-06 23:05:05 +00:00
- **`/stop` ** targets the active chat session so it can abort the current run.
2026-01-06 20:45:40 +00:00
- **Slack:** `slack.slashCommand` is still supported for a single `/clawd` -style command. If you enable `commands.native` , you must create one Slack slash command per built-in command (same names as `/help` ).