命令由 Gateway 处理。大多数命令必须作为以Documentation Index
Fetch the complete documentation index at: https://openclaw.zhcndoc.com/llms.txt
Use this file to discover all available pages before exploring further.
/ 开头的独立消息发送。仅主机可用的 bash 聊天命令使用 ! <cmd>(/bash <cmd> 为别名)。
当对话或线程绑定到 ACP 会话时,正常的后续文本会路由到该 ACP harness。Gateway 管理命令仍然保持本地:/acp ... 始终会到达 OpenClaw ACP 命令处理器,而 /status 和 /unfocus 在为该界面启用命令处理时始终保持本地。
有两个相关系统:
命令
命令
独立的
/... 消息。指令
指令
/think、/fast、/verbose、/trace、/reasoning、/elevated、/exec、/model、/queue。- 指令会在模型看到消息之前从消息中移除。
- 在普通聊天消息中(非仅指令消息),它们会被视为“行内提示”,并且不会持久化会话设置。
- 在仅指令消息中(消息只包含指令),它们会持久化到会话并回复确认。
- 指令只对已授权发送者生效。如果设置了
commands.allowFrom,它就是唯一使用的允许列表;否则授权来自频道允许列表/配对以及commands.useAccessGroups。未授权发送者会看到指令被当作纯文本处理。
行内快捷方式
行内快捷方式
仅限被允许列表/已授权发送者:
/help、/commands、/status、/whoami(/id)。它们会立即运行,在模型看到消息之前被移除,而剩余文本会继续通过正常流程。配置
启用在聊天消息中解析
/...。在没有原生命令的平台(WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams)上,即使你将其设为 false,文本命令仍然可用。注册原生命令。自动:在 Discord/Telegram 上启用;在 Slack 上关闭(直到你添加斜杠命令);对于没有原生支持的提供方则忽略。可设置
channels.discord.commands.native、channels.telegram.commands.native 或 channels.slack.commands.native 按提供方覆盖(bool 或 "auto")。在 Discord 上,false 会在启动期间跳过斜杠命令注册和清理;先前注册的命令可能仍然可见,直到你将它们从 Discord 应用中移除。Slack 命令由 Slack 应用管理,不会自动移除。descriptionLocalizations,OpenClaw 会将其发布为 Discord description_localizations 并在一致性检查比较中包含它。
在支持时以原生方式注册技能命令。自动:在 Discord/Telegram 上启用;在 Slack 上关闭(Slack 需要为每个技能创建一个斜杠命令)。可设置
channels.discord.commands.nativeSkills、channels.telegram.commands.nativeSkills 或 channels.slack.commands.nativeSkills 按提供方覆盖(bool 或 "auto")。启用
! <cmd> 运行主机 shell 命令(/bash <cmd> 为别名;需要 tools.elevated 允许列表)。控制 bash 在切换到后台模式之前等待多长时间(
0 表示立即转入后台)。启用
/config(读取/写入 openclaw.json)。启用
/mcp(读取/写入 mcp.servers 下由 OpenClaw 管理的 MCP 配置)。启用
/plugins(插件发现/状态以及安装 + 启用/禁用控制)。启用
/debug(仅运行时覆盖)。启用
/restart 以及 gateway 重启工具操作。为仅 owner 的命令/工具界面设置显式的 owner 允许列表。这是可以批准危险操作并运行
/diagnostics、/export-trajectory 和 /config 等命令的人类操作员账号。它与 commands.allowFrom 以及 DM 配对访问是分开的。按频道:使仅 owner 的命令在该界面上运行时需要owner 身份。当为
true 时,发送者必须要么匹配一个已解析的 owner 候选项(例如 commands.ownerAllowFrom 中的一项或提供方原生 owner 元数据),要么在内部消息频道上拥有内部 operator.admin 范围。频道 allowFrom 中的通配符条目,或空/未解析的 owner 候选列表,都不足够——仅 owner 的命令会在该频道上失败并关闭。若你希望仅 owner 的命令只由 ownerAllowFrom 和标准命令允许列表进行门控,请保持关闭。控制 owner id 在系统提示词中的显示方式。
可选设置在
commands.ownerDisplay="hash" 时使用的 HMAC 密钥。用于命令授权的按提供方允许列表。配置后,它就是命令和指令唯一的授权来源(会忽略频道允许列表/配对以及
commands.useAccessGroups)。使用 "*" 作为全局默认值;特定提供方的键会覆盖它。当未设置
commands.allowFrom 时,对命令强制执行允许列表/策略。命令列表
当前事实来源:- core 内置项来自
src/auto-reply/commands-registry.shared.ts - 生成的 dock 命令来自
src/auto-reply/commands-registry.data.ts - 插件命令来自插件的
registerCommand()调用 - 你的 gateway 上的实际可用性仍取决于配置标志、频道界面以及已安装/启用的插件
Core 内置命令
Sessions and runs
Sessions and runs
/new [model]开始一个新会话;/reset是重置别名。- 控制界面会拦截输入的
/new,以创建并切换到一个新的仪表板会话;输入的/reset仍会运行 Gateway 的原地重置。 /reset soft [message]会保留当前转录,删除复用的 CLI 后端会话 id,并就地重新运行启动/系统提示词加载。/compact [instructions]会压缩会话上下文。见 压缩。/stop中止当前运行。/session idle <duration|off>和/session max-age <duration|off>管理线程绑定过期。/export-session [path]将当前会话导出为 HTML。别名:/export。/export-trajectory [path]会请求 exec 批准,然后为当前会话导出 JSONL 轨迹包。当你需要某个 OpenClaw 会话的提示词、工具和转录时间线时使用它。在群聊中,批准提示和导出结果会私下发送给 owner。别名:/trajectory。
模型和运行控制
模型和运行控制
/think <level>设置思考级别。选项来自当前模型的提供方配置文件;常见级别有off、minimal、low、medium和high,支持时也可用xhigh、adaptive、max或二值on等自定义级别。别名:/thinking、/t。/verbose on|off|full切换详细输出。别名:/v。/trace on|off切换当前会话的插件 trace 输出。/fast [status|on|off]显示或设置快速模式。/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>|size=<n>|all]列出已配置/可认证使用的提供方或某个提供方的模型;添加all可浏览该提供方的完整目录。/queue <mode>管理队列行为(steer、旧版queue、followup、collect、steer-backlog、interrupt),以及诸如debounce:0.5s cap:25 drop:summarize之类的选项;/queue default或/queue reset会清除会话覆盖。见 命令队列 和 引导队列。/steer <message>将指导注入当前会话的活动运行中,与/queue模式无关。会话空闲时它不会启动新的运行。别名:/tell。见 Steer。
发现和状态
发现和状态
/help显示简短帮助摘要。/commands显示生成的命令目录。/tools [compact|verbose]显示当前代理此刻可用的内容。/status显示执行/运行时状态,包括Execution/Runtime标签,以及可用时的提供方使用量/配额。/diagnostics [note]是用于 Gateway bug 和 Codex harness 运行的仅 owner 支持报告流程。它会在每次运行openclaw gateway diagnostics export --json之前要求明确的 exec 批准;不要用允许全部规则批准 diagnostics。批准后,它会发送一份可粘贴的报告,包含本地 bundle 路径、清单摘要、隐私说明以及相关会话 ids。在群聊中,批准提示和报告会私下发送给 owner。当当前会话使用 OpenAI Codex harness 时,同样的批准也会将相关 Codex 反馈发送到 OpenAI 服务器,而完成后的回复会列出 OpenClaw 会话 ids、Codex thread ids,以及codex resume <thread-id>命令。见 Diagnostics Export。/crestodian <request>从 owner DM 中运行 Crestodian 设置和修复助手。/tasks列出当前会话的活动/最近后台任务。/context [list|detail|json]解释上下文如何组装。/whoami显示你的发送者 id。别名:/id。/usage off|tokens|full|cost控制每条响应的使用量页脚,或打印本地成本摘要。
技能、允许列表、审批
技能、允许列表、审批
/skill <name> [input]按名称运行一个技能。/allowlist [list|add|remove] ...管理允许列表条目。仅文本。/approve <id> <decision>解决 exec 批准提示。/btw <question>在不更改未来会话上下文的情况下提出一个旁支问题。别名:/side。见 BTW。
子代理和 ACP
子代理和 ACP
/subagents list|kill|log|info|send|steer|spawn管理当前会话的子代理运行。/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列出当前会话中绑定到线程的代理。/kill <id|#|all>中止一个或所有正在运行的子代理。/subagents steer <id|#> <message>向正在运行的子代理发送引导。见 Steer。
仅 owner 写入和管理
仅 owner 写入和管理
/config show|get|set|unset读取或写入openclaw.json。仅 owner。需要commands.config: true。/mcp show|get|set|unset读取或写入mcp.servers下由 OpenClaw 管理的 MCP 服务器配置。仅 owner。需要commands.mcp: true。/plugins list|inspect|show|get|install|enable|disable检查或修改插件状态。/plugin是别名。写入仅限 owner。需要commands.plugins: true。/debug show|set|unset|reset管理仅运行时配置覆盖。仅 owner。需要commands.debug: true。/restart在启用时重启 OpenClaw。默认:启用;设置commands.restart: false可禁用它。/send on|off|inherit设置发送策略。仅 owner。
语音、TTS、频道控制
语音、TTS、频道控制
/tts on|off|status|chat|latest|provider|limit|summary|audio|help控制 TTS。见 TTS。/activation mention|always设置群组激活模式。/bash <command>运行主机 shell 命令。仅文本。别名:! <command>。需要commands.bash: true加上tools.elevated允许列表。!poll [sessionId]检查后台 bash 作业。!stop [sessionId]停止后台 bash 作业。
生成的 dock 命令
Dock 命令会将当前会话的回复路由切换到另一个已链接的 频道。有关设置、 示例和故障排除,请参见 频道 docking。 Dock 命令由具有原生命令支持的频道插件生成。当前内置集合:/dock-discord(别名:/dock_discord)/dock-mattermost(别名:/dock_mattermost)/dock-slack(别名:/dock_slack)/dock-telegram(别名:/dock_telegram)
session.identityLinks。源发送者和目标对端必须在同一个身份组中,例如 ["telegram:123", "discord:456"]。如果 id 为 123 的 Telegram 用户发送 /dock_discord,OpenClaw 会在活动会话上存储 lastChannel: "discord" 和 lastTo: "456"。如果发送者没有链接到 Discord 对端,命令会回复一个设置提示,而不是继续落入正常聊天。
Docking 只会改变活动会话路由。它不会创建频道账号、授予访问权限、绕过频道允许列表,也不会把对话历史移动到另一个会话。再次使用 /dock-telegram、/dock-slack、/dock-mattermost 或其他生成的 dock 命令即可重新切换路由。
内置插件命令
内置插件可以添加更多斜杠命令。当前本仓库中的内置命令:/dreaming [on|off|status|help]切换记忆 dreaming。见 Dreaming。/pair [qr|status|pending|approve|cleanup|notify]管理设备配对/设置流程。见 配对。/phone status|arm <camera|screen|writes|all> [duration]|disarm临时启用高风险手机节点命令。/voice status|list [limit]|set <voiceId|name>管理 Talk 语音配置。在 Discord 上,原生命令名为/talkvoice。/card ...发送 LINE 富卡片预设。见 LINE。/codex status|models|threads|resume|compact|review|diagnostics|account|mcp|skills检查并控制内置的 Codex app-server harness。见 Codex harness。- 仅 QQBot 的命令:
/bot-ping/bot-version/bot-help/bot-upgrade/bot-logs
动态技能命令
用户可调用的技能也会作为斜杠命令公开:/skill <name> [input]始终可作为通用入口点使用。- 当技能/插件注册它们时,技能也可能作为直接命令出现,例如
/prose。 - 原生技能命令注册由
commands.nativeSkills和channels.<provider>.commands.nativeSkills控制。 - 命令规范可以为支持本地化描述的原生表面提供
descriptionLocalizations,包括 Discord。
参数和解析器说明
参数和解析器说明
- 命令可在命令和参数之间使用可选的
:(例如/think: high、/send: on、/help:)。 /new <model>可接受模型别名、provider/model或提供方名称(模糊匹配);如果没有匹配,则该文本会被当作消息正文。- 如需完整的提供方使用量拆分,请使用
openclaw status --usage。 /allowlist add|remove需要commands.config=true并遵守频道configWrites。- 在多账号频道中,针对配置的
/allowlist --account <id>和/config set channels.<provider>.accounts.<id>...也会遵守目标账号的configWrites。 /usage控制每条响应的使用量页脚;/usage cost会从 OpenClaw 会话日志中打印本地成本摘要。/restart默认启用;设置commands.restart: false可将其禁用。/plugins install <spec>接受与openclaw plugins install相同的插件规范:本地路径/归档、npm 包、git:<repo>或clawhub:<pkg>,随后会请求 Gateway 重启,因为插件源模块已更改。/plugins enable|disable会更新插件配置并触发 Gateway 插件重新加载,以便新代理轮次生效。
频道特定行为
频道特定行为
- 仅 Discord 的原生命令:
/vc join|leave|status控制语音频道(不支持文本方式)。join需要 guild 以及选定的语音/stage 频道。需要channels.discord.voice和原生命令。 - Discord 线程绑定命令(
/focus、/unfocus、/agents、/session idle、/session max-age)需要启用有效线程绑定(session.threadBindings.enabled和/或channels.discord.threadBindings.enabled)。 - ACP 命令参考和运行时行为:ACP agents。
详细 / trace / 快速 / reasoning 安全性
详细 / trace / 快速 / reasoning 安全性
/verbose主要用于调试和额外可见性;在正常使用中请保持关闭。/trace比/verbose更窄:它只显示插件拥有的 trace/debug 行,并保持普通的详细工具聊天输出关闭。/fast on|off会持久化一个会话覆盖。使用 Sessions UI 的inherit选项可清除它并回退到配置默认值。/fast是提供方相关的:OpenAI/OpenAI Codex 会将其映射为原生 Responses 端点上的service_tier=priority,而直接的公开 Anthropic 请求(包括发送到api.anthropic.com的 OAuth 认证流量)会映射为service_tier=auto或standard_only。见 OpenAI 和 Anthropic。- 相关时仍会显示工具失败摘要,但只有当
/verbose为on或full时才会包含详细失败文本。 /reasoning、/verbose和/trace在群组场景中有风险:它们可能泄露你不打算公开的内部推理、工具输出或插件诊断。建议保持关闭,尤其是在群聊中。
模型切换
模型切换
/model会立即持久化新的会话模型。- 如果代理处于空闲状态,下一次运行会立即使用它。
- 如果运行已经 ակտիվ,OpenClaw 会将实时切换标记为待处理,并且只会在干净的重试点重启到新模型。
- 如果工具活动或回复输出已经开始,待处理切换可能会保持排队,直到稍后的重试机会或下一次用户轮次。
- 在本地 TUI 中,
/crestodian [request]会从普通代理 TUI 返回到 Crestodian。这与消息频道救援模式是分开的,并且不会授予远程配置权限。
快速路径和行内快捷方式
快速路径和行内快捷方式
- 快速路径: 来自允许列表发送者的仅命令消息会被立即处理(绕过队列 + 模型)。
- 群组提及门控: 来自允许列表发送者的仅命令消息会绕过提及要求。
- 行内快捷方式(仅限允许列表发送者): 某些命令嵌入普通消息中时也能工作,并会在模型看到剩余文本之前被移除。
- 示例:
hey /status会触发状态回复,而剩余文本继续通过正常流程。
- 示例:
- 当前:
/help、/commands、/status、/whoami(/id)。 - 未授权的仅命令消息会被静默忽略,行内
/...标记则被当作纯文本处理。
技能命令和原生参数
技能命令和原生参数
- 技能命令:
user-invocable技能会作为斜杠命令公开。名称会被清理为a-z0-9_(最长 32 个字符);冲突会添加数字后缀(例如_2)。/skill <name> [input]按名称运行一个技能(当原生命令限制阻止逐个技能命令时很有用)。- 默认情况下,技能命令会作为普通请求转发给模型。
- 技能可以选择声明
command-dispatch: tool,将命令直接路由给工具(确定性、无模型)。 - 示例:
/prose(OpenProse 插件)——见 OpenProse。
- 原生命令参数: Discord 对动态选项使用自动完成(当你省略必需参数时会显示按钮菜单)。Telegram 和 Slack 在命令支持选项且你省略参数时会显示按钮菜单。动态选项会根据目标会话模型解析,因此像
/think等模型特定选项会遵循该会话的/model覆盖。
/tools
/tools 回答的是运行时问题,而不是配置问题:这个 agent 在当前对话中现在能使用什么。
- 默认的
/tools是紧凑版,经过优化,便于快速扫描。 /tools verbose会添加简短描述。- 支持参数的原生命令界面提供相同的模式切换:
compact|verbose。 - 结果是按会话作用域生效的,因此更换 agent、channel、thread、sender authorization 或 model 都可能改变输出。
/tools包含运行时实际可达的工具,包括核心工具、已连接的插件工具以及由 channel 拥有的工具。
/tools 当作静态目录。
使用界面(什么内容显示在哪里)
- Provider usage/quota(例如:“Claude 80% left”)会在当前模型提供方的
/status中显示,前提是启用了 usage tracking。OpenClaw 会将 provider 窗口统一规范为% left;对于 MiniMax,剩余百分比字段会在显示前取反,而model_remains响应会优先使用 chat-model 条目以及带有模型标签的 plan label。 /status中的 Token/cache 行 在实时会话快照较稀疏时,可以回退到最新的 transcript usage 条目。现有的非零实时值仍然优先,而 transcript 回退也可以在存储的总量缺失或更小时,恢复 active runtime model 标签以及更大的、面向 prompt 的总量。- Execution vs runtime:
/status会为有效的 sandbox 路径报告Execution,并为实际运行会话的主体报告Runtime:OpenClaw Pi Default、OpenAI Codex、一个 CLI backend,或一个 ACP backend。 - 每次响应的 tokens/cost 由
/usage off|tokens|full控制(附加到正常回复)。 /model status关注的是 models/auth/endpoints,不是 usage。
模型选择(/model)
/model 作为一个 directive 实现。
示例:
/model和/model list会显示一个紧凑的、带编号的选择器(模型家族 + 可用 provider)。- 在 Discord 上,
/model和/models会打开一个交互式选择器,包含 provider 和 model 下拉菜单,以及一个 Submit 步骤。 /model <#>会从该选择器中选择(并在可能时优先当前 provider)。/model status会显示详细视图,包括已配置的 provider endpoint(baseUrl)以及可用时的 API 模式(api)。
调试 override
/debug 允许你设置仅运行时的 config override(存在内存中,不写入磁盘)。仅 owner 可用。默认禁用;通过 commands.debug: true 启用。
示例:
Override 会立即应用于新的 config 读取,但不会写入
openclaw.json。使用 /debug reset 清除所有 override,并恢复到磁盘上的 config。插件 trace 输出
/trace 允许你切换会话作用域的插件 trace/debug 行,而无需开启完整的 verbose 模式。
示例:
- 不带参数的
/trace会显示当前会话的 trace 状态。 /trace on会为当前会话启用插件 trace 行。/trace off会再次禁用它们。- 插件 trace 行可以出现在
/status中,也可以作为正常 assistant 回复之后的跟进诊断消息出现。 /trace不会取代/debug;/debug仍然管理仅运行时的 config override。/trace不会取代/verbose;正常的 verbose 工具/status 输出仍然属于/verbose。
配置更新
/config 会写入你的磁盘配置(openclaw.json)。仅 owner 可用。默认禁用;通过 commands.config: true 启用。
示例:
在写入之前会先验证 config;无效更改会被拒绝。
/config 更新会在重启后继续保留。MCP 更新
/mcp 会将 OpenClaw 管理的 MCP server 定义写入 mcp.servers 下。仅 owner 可用。默认禁用;通过 commands.mcp: true 启用。
示例:
/mcp 将 config 存储在 OpenClaw config 中,而不是 Pi 拥有的项目设置中。运行时适配器决定哪些 transport 实际上可以执行。插件更新
/plugins 允许操作者检查已发现的插件,并在 config 中切换启用状态。只读流程可以使用 /plugin 作为别名。默认禁用;通过 commands.plugins: true 启用。
示例:
/plugins list和/plugins show使用针对当前 workspace 以及磁盘上 config 的真实插件发现。/plugins install可从 ClawHub、npm、git、本地目录和归档包进行安装。/plugins enable|disable只更新插件配置;不会安装或卸载插件。- 启用和禁用会为新的 agent 回合热重载 Gateway 插件运行时表面;安装需要重启 Gateway,因为插件源码模块已发生变化。
界面说明
每个界面的会话
每个界面的会话
- 文本命令 在正常 chat session 中运行(DM 共享
main,群组有自己的 session)。 - 原生命令 使用隔离的 session:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(前缀可通过channels.slack.slashCommand.sessionPrefix配置) - Telegram:
telegram:slash:<userId>(通过CommandTargetSessionKey目标指向 chat session)
- Discord:
/stop目标是当前的 chat session,以便中止当前运行。
Slack 细节
Slack 细节
channels.slack.slashCommand 仍然支持单个 /openclaw 风格的命令。如果你启用 commands.native,则必须为每个内置命令创建一个 Slack slash command(名称与 /help 相同)。Slack 的命令参数菜单会以临时的 Block Kit 按钮形式提供。Slack 原生命令例外:请注册 /agentstatus(而不是 /status),因为 Slack 保留了 /status。文本形式的 /status 在 Slack 消息中仍然可用。BTW 附带问题
/btw 是关于当前会话的一个快速附带问题。/side 是别名。
不同于普通聊天:
- 它使用当前会话作为背景上下文,
- 它作为一个独立的、无工具的一次性调用运行,
- 它不会改变未来的会话上下文,
- 它不会写入 transcript 历史,
- 它以实时附带结果的形式返回,而不是普通 assistant 消息。
/btw 在你想要临时澄清一些内容、同时主任务继续进行时非常有用。
示例: