- 使用或配置聊天命令时
- 调试命令路由或权限时
- 理解技能命令如何注册时
Gateway 处理以
/ 开头、作为独立消息发送的命令。
仅主机可用的 bash 命令使用 ! <cmd>(/bash <cmd> 为别名)。
当会话绑定到 ACP 会话时,普通文本会路由到 ACP
harness。Gateway 管理命令仍保留在本地:/acp ... 始终会到达
OpenClaw 命令处理器,而 /status 和 /unfocus 会在该界面启用
命令处理时始终保持本地执行。
三种命令类型
命令
由 Gateway 处理的独立
/... 消息。必须作为消息中的唯一内容发送。指令
/think、/fast、/verbose、/trace、/reasoning、/elevated、
/exec、/model、/queue —— 在模型看到消息之前会从消息中剥离。
单独发送时会持久化会话设置;与其他文本一起发送时则作为行内提示。行内快捷方式
/help、/commands、/status、/whoami —— 会立即运行,并在模型看到剩余文本之前被剥离。仅限授权发送者。指令行为详情
指令行为详情
- 指令会在模型看到消息之前从消息中剥离。
- 在仅指令消息中(消息只包含指令),它们会持久化到会话并返回确认信息。
- 在包含其他文本的普通聊天消息中,它们作为行内提示,不会持久化会话设置。
- 指令只适用于授权发送者。如果设置了
commands.allowFrom,则它是唯一使用的允许列表;否则授权来自频道允许列表/配对以及commands.useAccessGroups。未授权发送者看到的指令会被当作纯文本处理。
配置
启用在聊天消息中解析
/...。在没有原生命令的界面(WhatsApp、WebChat、Signal、iMessage、Google Chat、Microsoft Teams)上,即使设为 false,文本命令也可正常工作。注册原生命令。自动:Discord/Telegram 开启;Slack 关闭;对于不支持原生命令的提供方则忽略。可通过
channels.<provider>.commands.native 按频道覆盖。在 Discord 上,false 会跳过斜杠命令注册;之前已注册的命令可能仍会可见,直到被移除。在支持时以原生方式注册技能命令。自动:Discord/Telegram 开启;Slack 关闭。可通过
channels.<provider>.commands.nativeSkills 覆盖。启用
! <cmd> 运行主机 shell 命令(/bash <cmd> 别名)。需要 tools.elevated 允许列表。bash 在切换到后台模式前等待的时间(
0 会立即转入后台)。启用
/config(读写 openclaw.json)。仅限 owner。启用
/mcp(读写 mcp.servers 下由 OpenClaw 管理的 MCP 配置)。仅限 owner。启用
/plugins(插件发现/状态以及安装 + 启用/禁用)。写操作仅限 owner。启用
/debug(仅运行时配置覆盖)。仅限 owner。启用
/restart 和 gateway 重启工具操作。owner-only 命令界面的显式 owner 允许列表。与
commands.allowFrom 和 DM 配对访问分开。每个频道:要求 owner 身份才能执行 owner-only 命令。为
true 时,发送者必须匹配 commands.ownerAllowFrom 或拥有内部 operator.admin 范围。通配符 allowFrom 条目不足以满足要求。控制 owner id 在系统提示词中的显示方式。
当
commands.ownerDisplay: "hash" 时使用的 HMAC secret。按提供方划分的命令授权允许列表。配置后,它是命令和指令的唯一授权来源。使用
"*" 作为全局默认值;特定提供方的键会覆盖它。当未设置
commands.allowFrom 时,对命令强制执行允许列表/策略。命令列表
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
| 命令 | 描述 |
|---|---|
/new [model] | 归档当前会话并启动一个新的会话 |
/reset [soft [message]] | 原地重置当前会话。soft 会保留对话记录,移除复用的 CLI 后端会话 id,并重新运行启动流程 |
/compact [instructions] | 压缩会话上下文。参见 Compaction |
/stop | 中止当前运行 |
/session idle <duration|off> | 管理线程绑定的空闲过期时间 |
/session max-age <duration|off> | 管理线程绑定的最大生存期过期时间 |
/export-session [path] | 将当前会话导出为 HTML。别名:/export |
/export-trajectory [path] | 将当前会话导出为 JSONL 轨迹包。别名:/trajectory |
控制 UI 会拦截输入的
/new,以创建并切换到一个新的
仪表盘会话,除非配置了 session.dmScope: "main" 且当前父级是代理的主会话——在这种情况下,/new
会原地重置主会话。输入的 /reset 仍然会执行 Gateway 的原地重置。Model and run controls
Model and run controls
| 命令 | 描述 |
|---|---|
/think <level|default> | 设置思考级别或清除会话覆盖。别名:/thinking、/t |
/verbose on|off|full | 切换详细输出。别名:/v |
/trace on|off | 切换当前会话的插件跟踪输出 |
/fast [status|on|off|default] | 显示、设置或清除快速模式 |
/reasoning [on|off|stream] | 切换推理可见性。别名:/reason |
/elevated [on|off|ask|full] | 切换提升模式。别名:/elev |
/exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id> | 显示或设置 exec 默认值 |
/model [name|#|status] | 显示或设置模型 |
/models [provider] [page] [limit=<n>|all] | 列出已配置/已授权可用的提供方或模型 |
/queue <mode> | 管理活跃运行的队列行为。参见 Queue 和 Queue steering |
/steer <message> | 将指导注入当前运行。别名:/tell。参见 Steer |
verbose / trace / fast / reasoning safety
verbose / trace / fast / reasoning safety
/verbose用于调试——正常使用时请保持关闭。/trace只会显示插件拥有的 trace/debug 行;正常的详细聊天内容仍保持关闭。/fast on|off会持久化一个会话覆盖;使用 Sessions UI 的inherit选项可清除它。/fast具有提供方特定映射:OpenAI/Codex 将其映射为service_tier=priority;直接 Anthropic 请求将其映射为service_tier=auto或standard_only。/reasoning、/verbose和/trace在群组场景中有风险——它们可能泄露内部推理或插件诊断信息。在群聊中请保持关闭。
Model switching details
Model switching details
/model会立即将新模型持久化到会话中。- 如果代理处于空闲状态,下一次运行会立即使用它。
- 如果运行正在进行,切换会被标记为待处理,并在下一次干净的重试点应用。
Discovery and status
Discovery and status
| 命令 | 描述 |
|---|---|
/help | 显示简短帮助摘要 |
/commands | 显示生成的命令目录 |
/tools [compact|verbose] | 显示当前代理此刻可使用的内容 |
/status | 显示执行/运行时状态、Gateway 和系统运行时间,以及提供方用量/配额 |
/goal [status|start|pause|resume|complete|block|clear] ... | 管理当前会话的持久化 goal |
/diagnostics [note] | 仅限 owner 的支持报告流程。每次都会请求 exec 批准 |
/crestodian <request> | 以 owner DM 身份运行 Crestodian 设置和修复助手 |
/tasks | 列出当前会话活跃/最近的后台任务 |
/context [list|detail|map|json] | 解释上下文是如何组装的 |
/whoami | 显示你的发送者 id。别名:/id |
/usage off|tokens|full|cost | 控制每次响应的用量页脚或打印本地成本摘要 |
Skills, allowlists, approvals
Skills, allowlists, approvals
| 命令 | 描述 |
|---|---|
/skill <name> [input] | 按名称运行一个技能 |
/allowlist [list|add|remove] ... | 管理允许列表条目。仅文本 |
/approve <id> <decision> | 处理 exec 或插件批准提示 |
/btw <question> | 在不更改会话上下文的情况下提出一个旁路问题。别名:/side。参见 BTW |
Subagents and ACP
Subagents and ACP
| 命令 | 描述 |
|---|---|
/subagents list|log|info | 检查当前会话的子代理运行 |
/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help | 管理 ACP 会话和运行时选项 |
/focus <target> | 将当前 Discord 线程或 Telegram 主题绑定到一个会话目标 |
/unfocus | 移除当前线程绑定 |
/agents | 列出当前会话的线程绑定代理 |
Owner-only writes and admin
Owner-only writes and admin
| 命令 | 需要 | 描述 |
|---|---|---|
/config show|get|set|unset | commands.config: true | 读写 openclaw.json。仅限 owner |
/mcp show|get|set|unset | commands.mcp: true | 读写由 OpenClaw 管理的 MCP 服务器配置。仅限 owner |
/plugins list|inspect|show|get|install|enable|disable | commands.plugins: true | 检查或修改插件状态。写操作仅限 owner。别名:/plugin |
/debug show|set|unset|reset | commands.debug: true | 仅运行时配置覆盖。仅限 owner |
/restart | commands.restart: true(默认) | 重启 OpenClaw |
/send on|off|inherit | owner | 设置发送策略 |
Voice, TTS, channel control
Voice, TTS, channel control
| 命令 | 描述 |
|---|---|
/tts on|off|status|chat|latest|provider|limit|summary|audio|help | 控制 TTS。参见 TTS |
/activation mention|always | 设置群组激活模式 |
/bash <command> | 运行主机 shell 命令。别名:! <command>。需要 commands.bash: true |
!poll [sessionId] | 检查一个后台 bash 作业 |
!stop [sessionId] | 停止一个后台 bash 作业 |
Dock 命令
Dock 命令会将当前会话的回复路由切换到另一个关联频道。 参见 Channel docking 了解配置和故障排查。 由支持原生命令的频道插件生成:/dock-discord(别名:/dock_discord)/dock-mattermost(别名:/dock_mattermost)/dock-slack(别名:/dock_slack)/dock-telegram(别名:/dock_telegram)
session.identityLinks。源发送者和目标对端
必须属于同一个身份组。
内置插件命令
| Command | Description |
|---|---|
/dreaming [on|off|status|help] | 切换记忆做梦。参见 Dreaming |
/pair [qr|status|pending|approve|cleanup|notify] | 管理设备配对。参见 Pairing |
/phone status|arm ...|disarm | 临时启用高风险手机节点命令 |
/voice status|list|set <voiceId> | 管理 Talk 语音配置。Discord 原生名称:/talkvoice |
/card ... | 发送 LINE 富卡片预设。参见 LINE |
/codex status|models|threads|resume|compact|review|diagnostics|account|mcp|skills | 控制 Codex app-server harness。参见 Codex harness |
/bot-ping、/bot-version、/bot-help、/bot-upgrade、/bot-logs
技能命令
用户可调用的技能会以斜杠命令形式暴露:/skill <name> [input]始终作为通用入口可用。- 技能可以注册为直接命令(例如 OpenProse 的
/prose)。 - 原生技能命令注册由
commands.nativeSkills和channels.<provider>.commands.nativeSkills控制。 - 名称会被规范化为
a-z0-9_(最多 32 个字符);冲突会追加数字后缀。
Skill command dispatch
Skill command dispatch
默认情况下,技能命令会作为普通请求路由到模型。技能可以声明
command-dispatch: tool,从而直接路由到某个工具
(确定性执行,不涉及模型)。示例:/prose(OpenProse 插件)
—— 参见 OpenProse。Native command arguments
Native command arguments
当省略必需参数时,Discord 会使用自动补全来处理动态选项和按钮菜单。Telegram 和 Slack 会为具有选项的命令显示按钮菜单。动态选项会针对目标会话模型进行解析,因此像
/think 等特定于模型的选项级别会遵循会话的 /model 覆盖。/tools — 代理现在可用的内容
/tools 回答的是一个运行时问题:这个代理在当前会话里现在能用什么 —— 不是静态配置目录。
/model — 模型选择
/model 和 /models 会打开一个交互式选择器,包含 provider 和 model 下拉框。该选择器会遵循 agents.defaults.models,包括 provider/* 条目。
/config — 写入磁盘配置
仅限 owner。默认禁用——通过启用
commands.config: true 打开。/config 的更新会在重启后保留。
/mcp — MCP 服务器配置
仅限 owner。默认禁用——通过启用
commands.mcp: true 打开。/mcp 将配置存储在 OpenClaw 配置中,而不是嵌入式代理项目设置中。
/debug — 仅运行时覆盖
仅限 owner。默认禁用——通过启用
commands.debug: true 打开。
覆盖会立即应用到新的配置读取,但不会写入磁盘。/plugins — 插件管理
仅限 owner 执行写入操作。默认禁用——通过启用
commands.plugins: true 打开。/plugins enable|disable 会更新插件配置,并为新的代理轮次热重载 Gateway 插件运行时。/plugins install 会自动重启受管控的 Gateways,因为插件源码模块发生了变化。
/trace — 插件跟踪输出
/trace 会显示会话范围内的插件跟踪/调试行,而不会进入完整 verbose 模式。它不能替代 /debug(运行时覆盖)或 /verbose(正常工具输出)。
/btw — 顺便提问
/btw 是一个关于当前会话上下文的快速顺便提问。别名:/side。
- 使用当前会话作为背景上下文。
- 在 Codex harness 会话中,会作为一个临时的 Codex side thread 运行。
- 不会更改未来的会话上下文。
- 不会写入 transcript 历史。
界面说明
按界面划分的会话范围
按界面划分的会话范围
- 文本命令: 在正常聊天会话中运行(DM 共享
main,群组有各自的会话)。 - 原生 Discord 命令:
agent:<agentId>:discord:slash:<userId> - 原生 Slack 命令:
agent:<agentId>:slack:slash:<userId>(前缀可通过channels.slack.slashCommand.sessionPrefix配置) - 原生 Telegram 命令:
telegram:slash:<userId>(通过CommandTargetSessionKey目标指向聊天会话) /stop会针对当前活跃聊天会话,终止当前运行。
Slack 细节
Slack 细节
channels.slack.slashCommand 支持单个 /openclaw 风格命令。
在 commands.native: true 时,为每个内置命令创建一个 Slack slash 命令。
注册 /agentstatus(而不是 /status),因为 Slack 保留了 /status。
文本形式的 /status 仍可在 Slack 消息中正常使用。快速路径与内联快捷方式
快速路径与内联快捷方式
- 来自允许列表发送者的仅命令消息会被立即处理(绕过队列 + 模型)。
- 内联快捷方式(
/help、/commands、/status、/whoami)也可以嵌入普通消息中使用,并会在模型看到剩余文本之前被移除。 - 未授权的仅命令消息会被静默忽略;内联
/...标记会被当作普通文本处理。
参数说明
参数说明
- 命令接受在命令与参数之间可选的
:(/think: high、/send: on)。 /new <model>接受模型别名、provider/model,或 provider 名称(模糊匹配);如果没有匹配,文本会被当作消息正文。/allowlist add|remove需要commands.config: true,并遵守通道的configWrites。
提供方使用情况和状态
- Provider 使用量/配额(例如“Claude 还剩 80%”)会在启用使用量追踪时,显示在当前模型 provider 的
/status中。 /status中的 token/cache 行 在实时会话快照较少时,可能回退到最新的 transcript 使用条目。- 执行 vs 运行时:
/status会报告Execution表示有效的 sandbox 路径,以及Runtime表示当前是谁在运行会话:OpenClaw Default、OpenAI Codex、CLI backend 或 ACP backend。 - 每次响应的 token/成本: 由
/usage off|tokens|full控制。 /model status关注的是模型/认证/端点,而不是使用量。
相关内容
Skills
技能 slash 命令如何注册和受限。
Creating skills
构建一个会注册自己的 slash 命令的 skill。
BTW
在不改变会话上下文的情况下提出顺便问题。
Steer
使用
/steer 在运行中引导代理。