Gateway
Configuration — chat commands
The commands.* block: which chat command surfaces are registered, and who may use them.
Commands (chat command handling)
{ commands: { native: "auto", // register native commands when supported nativeSkills: "auto", // register native skill commands when supported text: true, // parse /commands in chat messages bash: false, // allow ! (alias: /bash) bashForegroundMs: 2000, config: false, // allow /config mcp: false, // allow /mcp plugins: false, // allow /plugins debug: false, // allow /debug restart: true, // allow /restart + external SIGUSR1 restart requests ownerAllowFrom: ["discord:123456789012345678"], allowFrom: { "*": ["user1"], discord: ["user:123"], }, },}Command details
- This block configures command surfaces. For the current built-in + bundled command catalog, see Slash Commands.
- This page is a config-key reference, not the full command catalog. Channel/plugin-owned commands such as QQ Bot
/bot-ping/bot-help/bot-logs, LINE/card, device-pair/pair, memory/dreaming, and Talk/voiceare documented in their channel/plugin pages plus Slash Commands. - Text commands must be standalone messages with leading
/. native: "auto"turns on native commands for Discord/Telegram, leaves Slack off.nativeSkills: "auto"turns on native skill commands for Discord/Telegram, leaves Slack off.- Override per channel:
channels.discord.commands.native(bool or"auto"). For Discord,falseskips native command registration and cleanup during startup. - Override native skill registration per channel with
channels.<provider>.commands.nativeSkills. channels.telegram.customCommandsadds extra Telegram bot menu entries.bash: trueenables! <cmd>for host shell. Requirestools.elevated.enabledand sender intools.elevated.allowFrom.<channel>.config: trueenables/config(reads/writesopenclaw.json). For gatewaychat.sendclients, persistent/config set|unsetwrites also requireoperator.admin; read-only/config showstays available to normal write-scoped operator clients.mcp: trueenables/mcpfor OpenClaw-managed MCP server config undermcp.servers.plugins: trueenables/pluginsfor plugin discovery, install, and enable/disable controls.channels.<provider>.configWritesgates config mutations per channel (default: true).- For multi-account channels,
channels.<provider>.accounts.<id>.configWritesalso gates writes that target that account (for example/allowlist --config --account <id>or/config set channels.<provider>.accounts.<id>...). restart: falsedisables/restartand externalSIGUSR1restart requests. Default:true.ownerAllowFromis the explicit owner allowlist for owner-only commands and owner-gated channel actions. It is separate fromallowFrom.allowFromis per-provider. When set, it is the only authorization source for commands and directives.- When
allowFromis unset, command authorization follows channel allowlists and pairing state. Access-group entries in channel allowlists are resolved automatically. - Command docs map:
- built-in + bundled catalog: Slash Commands
- channel-specific command surfaces: Channels
- QQ Bot commands: QQ Bot
- pairing commands: Pairing
- LINE card command: LINE
- memory dreaming: Dreaming
Was this useful?