mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 04:15:48 -06:00
a95486cefc
* feat(protocol): add session companion schemas * feat(gateway): add session companion service * feat(gateway): expose session companion rpc * fix(gateway): harden companion runtime limits * test(gateway): fix companion type assertions * test(gateway): align companion test target * feat(ui): replace observer HUD and side chat with session rail * docs: session rail companion for control ui * test(ui): align session rail client mock * fix(ui): drop stale chat search import * fix: satisfy session companion lint contracts * refactor(gateway): isolate companion state contract * fix(ui): keep session rail reachable while idle * fix(agents): clamp derived openai prompt cache keys at boundary * fix(ai): clamp chatgpt responses session_id affinity header * fix(ci): align session companion branch gates * fix(ui): require run id for sessionless terminal chat events * fix(agents): scope internal run events to transcript * chore: revert changelog edit (release generation owns changelog)
25 KiB
25 KiB
title, sidebarTitle, summary, read_when
| title | sidebarTitle | summary | read_when | |||
|---|---|---|---|---|---|---|
| Slash commands | Slash commands | All available slash commands, directives, and inline shortcuts — configuration, routing, and per-surface behavior. |
|
The Gateway handles commands sent as standalone messages starting with /.
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
Standalone `/...` messages handled by the Gateway. Must be sent as the only content in the message. `/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. `/help`, `/commands`, `/status`, `/whoami` — run immediately and are stripped before the model sees the remaining text. Authorized senders only. - 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.allowFrom` is set, it is the only allowlist used; otherwise authorization comes from channel allowlists, pairing, and always-on access-group enforcement. Unauthorized senders see directives treated as plain text.Configuration
{
commands: {
native: "auto",
nativeSkills: "auto",
text: true,
bash: false,
bashForegroundMs: 2000,
config: false,
mcp: false,
plugins: false,
debug: false,
restart: true,
ownerAllowFrom: ["discord:123456789012345678"],
ownerDisplay: "raw",
ownerDisplaySecret: "${OWNER_ID_HASH_SECRET}",
allowFrom: {
"*": ["user1"],
discord: ["user:123"],
},
useAccessGroups: true,
},
}
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
Availability depends on config flags, channel surface, and installed/enabled plugins.