Files
clawdbot/docs/tools/slash-commands.md
2026-01-11 03:30:09 +00:00

4.8 KiB

summary, read_when
summary read_when
Slash commands: text vs native, config, and supported commands
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 /. 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 (default true) 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.
  • 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.
  • commands.config (default false) enables /config (reads/writes clawdbot.json).
  • commands.debug (default false) enables /debug (runtime-only overrides).
  • commands.useAccessGroups (default true) 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; requires commands.config: true)
  • /debug show|set|unset|reset (runtime overrides, owner-only; requires commands.debug: true)
  • /cost on|off (toggle per-response usage line)
  • /stop
  • /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)
  • /reasoning on|off|stream (alias: /reason; when on, sends a separate message prefixed Reasoning:; stream = Telegram draft only)
  • /elevated on|off (alias: /elev)
  • /model <name> (alias: /models; or /<alias> from agents.defaults.models.*.alias)
  • /queue <mode> (plus options like debounce:2s cap:25 drop:summarize; send /queue to see current settings)

Text-only:

Notes:

  • Commands accept an optional : between the command and args (e.g. /think: high, /send: on, /help:).
  • /status and /usage show the same status output; for full provider usage breakdown, use clawdbot status --usage.
  • /cost appends per-response token usage; it only shows dollar cost when the model uses an API key (OAuth hides cost).
  • /restart is disabled by default; set commands.restart: true to enable it.
  • /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.

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 reset to 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.
  • /config updates 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 via slack.slashCommand.sessionPrefix)
    • Telegram: telegram:slash:<userId> (targets the chat session via CommandTargetSessionKey)
  • /stop targets the active chat session so it can abort the current run.
  • 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).