4.8 KiB
4.8 KiB
summary, read_when
| summary | read_when | ||
|---|---|---|---|
| Slash commands: text vs native, config, and supported commands |
|
Slash commands
Commands are handled by the Gateway. Send them as a standalone message that starts with /.
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.
Config
{
commands: {
native: false,
text: true,
config: false,
debug: false,
restart: false,
useAccessGroups: true
}
}
commands.text(defaulttrue) enables parsing/...in chat messages.- On surfaces without native commands (WhatsApp/WebChat/Signal/iMessage/MS Teams), text commands still work even if you set this to
false.
- On surfaces without native commands (WhatsApp/WebChat/Signal/iMessage/MS Teams), text commands still work even if you set this to
commands.native(defaultfalse) registers native commands on Discord/Slack/Telegram.falseclears previously registered commands on Discord/Telegram at startup.- Slack commands are managed in the Slack app and are not removed automatically.
commands.config(defaultfalse) enables/config(reads/writesclawdbot.json).commands.debug(defaultfalse) enables/debug(runtime-only overrides).commands.useAccessGroups(defaulttrue) enforces allowlists/policies for commands.
Command list
Text + native (when enabled):
/help/commands/status/status(show current status; includes a short usage line when available)/usage(alias:/status)/whoami(alias:/id)/config show|get|set|unset(persist config to disk, owner-only; requirescommands.config: true)/debug show|set|unset|reset(runtime overrides, owner-only; requirescommands.debug: true)/cost on|off(toggle per-response usage line)/stop/restart/activation mention|always(groups only)/send on|off|inherit(owner-only)/resetor/new/think <level>(aliases:/thinking,/t)/verbose on|off(alias:/v)/reasoning on|off|stream(alias:/reason; when on, sends a separate message prefixedReasoning:;stream= Telegram draft only)/elevated on|off(alias:/elev)/model <name>(alias:/models; or/<alias>fromagents.defaults.models.*.alias)/queue <mode>(plus options likedebounce:2s cap:25 drop:summarize; send/queueto see current settings)
Text-only:
/compact [instructions](see /concepts/compaction)
Notes:
- Commands accept an optional
:between the command and args (e.g./think: high,/send: on,/help:). /statusand/usageshow the same status output; for full provider usage breakdown, useclawdbot status --usage./costappends per-response token usage; it only shows dollar cost when the model uses an API key (OAuth hides cost)./restartis disabled by default; setcommands.restart: trueto enable it./verboseis 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.
Debug overrides
/debug lets you set runtime-only config overrides (memory, not disk). Owner-only. Disabled by default; enable with commands.debug: true.
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 resetto clear all overrides and return to the on-disk config.
Config updates
/config writes to your on-disk config (clawdbot.json). Owner-only. Disabled by default; enable with commands.config: true.
Examples:
/config show
/config show messages.responsePrefix
/config get messages.responsePrefix
/config set messages.responsePrefix="[clawdbot]"
/config unset messages.responsePrefix
Notes:
- Config is validated before write; invalid changes are rejected.
/configupdates persist across restarts.
Surface notes
- Text commands run in the normal chat session (DMs share
main, groups have their own session). - Native commands use isolated sessions:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(prefix configurable viaslack.slashCommand.sessionPrefix) - Telegram:
telegram:slash:<userId>(targets the chat session viaCommandTargetSessionKey)
- Discord:
/stoptargets the active chat session so it can abort the current run.- Slack:
slack.slashCommandis still supported for a single/clawd-style command. If you enablecommands.native, you must create one Slack slash command per built-in command (same names as/help).