The Gateway handles commands sent as standalone messages starting withDocumentation Index
Fetch the complete documentation index at: https://openclaw.ai2me.io/llms.txt
Use this file to discover all available pages before exploring further.
/.
Host-only bash commands use ! <cmd> (with /bash <cmd> as an alias).
When a conversation is bound to an ACP session, normal text routes to the ACP
harness. Gateway management commands remain local: /acp ... always reaches
the OpenClaw command handler, and /status plus /unfocus stay local whenever
command handling is enabled for the surface.
Three command types
Commands
Standalone
/... messages handled by the Gateway. Must be sent as the
only content in the message.Directives
/think, /fast, /verbose, /trace, /reasoning, /elevated,
/exec, /model, /queue — stripped from the message before the model
sees it. Persist session settings when sent alone; act as inline hints
when sent with other text.Inline shortcuts
/help, /commands, /status, /whoami — run immediately and are
stripped before the model sees the remaining text. Authorized senders only.Directive behavior details
Directive behavior details
- Directives are stripped from the message before the model sees it.
- In directive-only messages (the message is only directives), they persist to the session and reply with an acknowledgement.
- In normal chat messages with other text, they act as inline hints and do not persist session settings.
- Directives only apply for authorized senders. If
commands.allowFromis set, it is the only allowlist used; otherwise authorization comes from channel allowlists/pairing pluscommands.useAccessGroups. Unauthorized senders see directives treated as plain text.
Configuration
Enables parsing
/... in chat messages. On surfaces without native commands
(WhatsApp, WebChat, Signal, iMessage, Google Chat, Microsoft Teams), text
commands work even when set to false.Registers native commands. Auto: on for Discord/Telegram; off for Slack;
ignored for providers without native support. Override per-channel with
channels.<provider>.commands.native. On Discord, false skips slash-command
registration; previously registered commands may stay visible until removed.Registers skill commands natively when supported. Auto: on for
Discord/Telegram; off for Slack. Override with
channels.<provider>.commands.nativeSkills.Enables
! <cmd> to run host shell commands (/bash <cmd> alias). Requires
tools.elevated allowlists.How long bash waits before switching to background mode (
0 backgrounds
immediately).Enables
/config (reads/writes openclaw.json). Owner-only.Enables
/mcp (reads/writes OpenClaw-managed MCP config under mcp.servers). Owner-only.Enables
/plugins (plugin discovery/status plus install + enable/disable). Owner-only for writes.Enables
/debug (runtime-only config overrides). Owner-only.Enables
/restart and gateway restart tool actions.Explicit owner allowlist for owner-only command surfaces. Separate from
commands.allowFrom and DM pairing access.Per-channel: requires owner identity for owner-only commands. When
true,
sender must match commands.ownerAllowFrom or hold internal operator.admin
scope. A wildcard allowFrom entry is not sufficient.Controls how owner ids appear in the system prompt.
HMAC secret used when
commands.ownerDisplay: "hash".Per-provider allowlist for command authorization. When configured, it is the
only authorization source for commands and directives. Use
"*" for a
global default; provider-specific keys override it.Enforces allowlists/policies for commands when
commands.allowFrom is not set.Command list
Commands come from three sources:- Core built-ins:
src/auto-reply/commands-registry.shared.ts - Generated dock commands:
src/auto-reply/commands-registry.data.ts - Plugin commands: plugin
registerCommand()calls
Core commands
Sessions and runs
Sessions and runs
| Command | Description |
|---|---|
/new [model] | Archive the current session and start a fresh one |
/reset [soft [message]] | Reset the current session in place. soft keeps the transcript, drops reused CLI backend session ids, and reruns startup |
/compact [instructions] | Compact the session context. See Compaction |
/stop | Abort the current run |
/session idle <duration|off> | Manage thread-binding idle expiry |
/session max-age <duration|off> | Manage thread-binding max-age expiry |
/export-session [path] | Export the current session to HTML. Alias: /export |
/export-trajectory [path] | Export a JSONL trajectory bundle for the current session. Alias: /trajectory |
Control UI intercepts typed
/new to create and switch to a fresh
dashboard session, except when session.dmScope: "main" is configured
and the current parent is the agent’s main session — in that case /new
resets the main session in place. Typed /reset still runs the Gateway’s
in-place reset.Model and run controls
Model and run controls
| Command | Description |
|---|---|
/think <level|default> | Set the thinking level or clear the session override. Aliases: /thinking, /t |
/verbose on|off|full | Toggle verbose output. Alias: /v |
/trace on|off | Toggle plugin trace output for the current session |
/fast [status|on|off|default] | Show, set, or clear fast mode |
/reasoning [on|off|stream] | Toggle reasoning visibility. Alias: /reason |
/elevated [on|off|ask|full] | Toggle elevated mode. Alias: /elev |
/exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id> | Show or set exec defaults |
/model [name|#|status] | Show or set the model |
/models [provider] [page] [limit=<n>|all] | List configured/auth-available providers or models |
/queue <mode> | Manage active-run queue behavior. See Queue and Queue steering |
/steer <message> | Inject guidance into the active run. Alias: /tell. See Steer |
verbose / trace / fast / reasoning safety
verbose / trace / fast / reasoning safety
/verboseis for debugging — keep it off in normal use./tracereveals only plugin-owned trace/debug lines; normal verbose chatter stays off./fast on|offpersists a session override; use the Sessions UIinheritoption to clear it./fastis provider-specific: OpenAI/Codex map it toservice_tier=priority; direct Anthropic requests map it toservice_tier=autoorstandard_only./reasoning,/verbose, and/traceare risky in group settings — they may reveal internal reasoning or plugin diagnostics. Keep them off in group chats.
Model switching details
Model switching details
/modelpersists the new model immediately to the session.- If the agent is idle, the next run uses it right away.
- If a run is active, the switch is marked pending and applied at the next clean retry point.
Discovery and status
Discovery and status
| Command | Description |
|---|---|
/help | Show the short help summary |
/commands | Show the generated command catalog |
/tools [compact|verbose] | Show what the current agent can use right now |
/status | Show execution/runtime status, Gateway and system uptime, plus provider usage/quota |
/goal [status|start|pause|resume|complete|block|clear] ... | Manage the current session’s durable goal |
/diagnostics [note] | Owner-only support-report flow. Asks for exec approval every time |
/crestodian <request> | Run the Crestodian setup and repair helper from an owner DM |
/tasks | List active/recent background tasks for the current session |
/context [list|detail|map|json] | Explain how context is assembled |
/whoami | Show your sender id. Alias: /id |
/usage off|tokens|full|cost | Control the per-response usage footer or print a local cost summary |
Skills, allowlists, approvals
Skills, allowlists, approvals
| Command | Description |
|---|---|
/skill <name> [input] | Run a skill by name |
/allowlist [list|add|remove] ... | Manage allowlist entries. Text-only |
/approve <id> <decision> | Resolve exec or plugin approval prompts |
/btw <question> | Ask a side question without changing session context. Alias: /side. See BTW |
Subagents and ACP
Subagents and ACP
| Command | Description |
|---|---|
/subagents list|log|info | Inspect sub-agent runs for the current session |
/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help | Manage ACP sessions and runtime options |
/focus <target> | Bind the current Discord thread or Telegram topic to a session target |
/unfocus | Remove the current thread binding |
/agents | List thread-bound agents for the current session |
Owner-only writes and admin
Owner-only writes and admin
| Command | Requires | Description |
|---|---|---|
/config show|get|set|unset | commands.config: true | Read or write openclaw.json. Owner-only |
/mcp show|get|set|unset | commands.mcp: true | Read or write OpenClaw-managed MCP server config. Owner-only |
/plugins list|inspect|show|get|install|enable|disable | commands.plugins: true | Inspect or mutate plugin state. Owner-only for writes. Alias: /plugin |
/debug show|set|unset|reset | commands.debug: true | Runtime-only config overrides. Owner-only |
/restart | commands.restart: true (default) | Restart OpenClaw |
/send on|off|inherit | owner | Set send policy |
Voice, TTS, channel control
Voice, TTS, channel control
| Command | Description |
|---|---|
/tts on|off|status|chat|latest|provider|limit|summary|audio|help | Control TTS. See TTS |
/activation mention|always | Set group activation mode |
/bash <command> | Run a host shell command. Alias: ! <command>. Requires commands.bash: true |
!poll [sessionId] | Check a background bash job |
!stop [sessionId] | Stop a background bash job |
Dock commands
Dock commands switch the active session’s reply route to another linked channel. See Channel docking for setup and troubleshooting. Generated from channel plugins with native-command support:/dock-discord(alias:/dock_discord)/dock-mattermost(alias:/dock_mattermost)/dock-slack(alias:/dock_slack)/dock-telegram(alias:/dock_telegram)
session.identityLinks. The source sender and target peer
must be in the same identity group.
Bundled plugin commands
| Command | Description |
|---|---|
/dreaming [on|off|status|help] | Toggle memory dreaming. See Dreaming |
/pair [qr|status|pending|approve|cleanup|notify] | Manage device pairing. See Pairing |
/phone status|arm ...|disarm | Temporarily arm high-risk phone node commands |
/voice status|list|set <voiceId> | Manage Talk voice config. Discord native name: /talkvoice |
/card ... | Send LINE rich card presets. See LINE |
/codex status|models|threads|resume|compact|review|diagnostics|account|mcp|skills | Control the Codex app-server harness. See Codex harness |
/bot-ping, /bot-version, /bot-help, /bot-upgrade, /bot-logs
Skill commands
User-invocable skills are exposed as slash commands:/skill <name> [input]always works as the generic entrypoint.- Skills may register as direct commands (e.g.
/prosefor OpenProse). - Native skill-command registration is controlled by
commands.nativeSkillsandchannels.<provider>.commands.nativeSkills. - Names are sanitized to
a-z0-9_(max 32 chars); collisions get numeric suffixes.
Skill command dispatch
Skill command dispatch
By default, skill commands route to the model as a normal request.Skills can declare
command-dispatch: tool to route directly to a tool
(deterministic, no model involvement). Example: /prose (OpenProse plugin)
— see OpenProse.Native command arguments
Native command arguments
Discord uses autocomplete for dynamic options and button menus when required
args are omitted. Telegram and Slack show a button menu for commands with
choices. Dynamic choices resolve against the target session model, so model-
specific options like
/think levels follow the session’s /model override./tools — what the agent can use now
/tools answers a runtime question: what this agent can use right now in this
conversation — not a static config catalog.
/model — model selection
/model and /models open an interactive picker with provider and
model dropdowns. The picker respects agents.defaults.models, including
provider/* entries.
/config — on-disk config writes
Owner-only. Disabled by default — enable with
commands.config: true./config
updates persist across restarts.
/mcp — MCP server config
Owner-only. Disabled by default — enable with
commands.mcp: true./mcp stores config in OpenClaw config, not embedded-agent project settings.
/debug — runtime-only overrides
Owner-only. Disabled by default — enable with
commands.debug: true.
Overrides apply immediately to new config reads but do not write to disk./plugins — plugin management
Owner-only for writes. Disabled by default — enable with
commands.plugins: true./plugins enable|disable updates plugin config and hot-reloads the Gateway
plugin runtime for new agent turns. /plugins install restarts managed
Gateways automatically because plugin source modules changed.
/trace — plugin trace output
/trace reveals session-scoped plugin trace/debug lines without full verbose
mode. It does not replace /debug (runtime overrides) or /verbose (normal
tool output).
/btw — side questions
/btw is a quick side question about the current session context. Alias: /side.
- Uses the current session as background context.
- In Codex harness sessions, runs as an ephemeral Codex side thread.
- Does not change future session context.
- Is not written to transcript history.
Surface notes
Session scoping per surface
Session scoping per surface
- Text commands: run in the normal chat session (DMs share
main, groups have their own session). - Native Discord commands:
agent:<agentId>:discord:slash:<userId> - Native Slack commands:
agent:<agentId>:slack:slash:<userId>(prefix configurable viachannels.slack.slashCommand.sessionPrefix) - Native Telegram commands:
telegram:slash:<userId>(targets the chat session viaCommandTargetSessionKey) /stoptargets the active chat session to abort the current run.
Slack specifics
Slack specifics
channels.slack.slashCommand supports a single /openclaw-style command.
With commands.native: true, create one Slack slash command per built-in
command. Register /agentstatus (not /status) because Slack reserves
/status. Text /status still works in Slack messages.Fast path and inline shortcuts
Fast path and inline shortcuts
- Command-only messages from allowlisted senders are handled immediately (bypass queue + model).
- Inline shortcuts (
/help,/commands,/status,/whoami) also work embedded in normal messages and are stripped before the model sees the remaining text. - Unauthorized command-only messages are silently ignored; inline
/...tokens are treated as plain text.
Argument notes
Argument notes
- Commands accept an optional
:between the command and args (/think: high,/send: on). /new <model>accepts a model alias,provider/model, or a provider name (fuzzy match); if no match, the text is treated as the message body./allowlist add|removerequirescommands.config: trueand honors channelconfigWrites.
Provider usage and status
- Provider usage/quota (e.g., “Claude 80% left”) shows in
/statusfor the current model provider when usage tracking is enabled. - Token/cache lines in
/statuscan fall back to the latest transcript usage entry when the live session snapshot is sparse. - Execution vs runtime:
/statusreportsExecutionfor the effective sandbox path andRuntimefor who is running the session:OpenClaw Default,OpenAI Codex, a CLI backend, or an ACP backend. - Per-response tokens/cost: controlled by
/usage off|tokens|full. /model statusis about models/auth/endpoints, not usage.
Related
Skills
How skill slash commands are registered and gated.
Creating skills
Build a skill that registers its own slash command.
BTW
Side questions without changing session context.
Steer
Guide the agent mid-run with
/steer.