2026-01-07 02:52:28 +01:00
---
2026-01-30 03:15:10 +01:00
summary: "OpenClaw CLI reference for `openclaw` commands, subcommands, and options"
2026-01-07 02:52:28 +01:00
read_when:
- Adding or modifying CLI commands or options
- Documenting new command surfaces
2026-01-31 16:04:03 -05:00
title: "CLI Reference"
2026-01-07 02:52:28 +01:00
---
# CLI reference
2026-01-09 13:38:51 +01:00
This page describes the current CLI behavior. If commands change, update this doc.
2026-01-07 02:52:28 +01:00
2026-01-15 06:12:54 +00:00
## Command pages
- [`setup` ](/cli/setup )
2026-03-16 05:50:48 +00:00
- [`onboard` ](/cli/onboard )
2026-01-16 06:57:16 +00:00
- [`configure` ](/cli/configure )
- [`config` ](/cli/config )
2026-02-22 20:04:08 +01:00
- [`completion` ](/cli/completion )
2026-01-15 06:12:54 +00:00
- [`doctor` ](/cli/doctor )
- [`dashboard` ](/cli/dashboard )
2026-03-09 04:21:20 +08:00
- [`backup` ](/cli/backup )
2026-01-15 06:12:54 +00:00
- [`reset` ](/cli/reset )
- [`uninstall` ](/cli/uninstall )
- [`update` ](/cli/update )
- [`message` ](/cli/message )
- [`agent` ](/cli/agent )
- [`agents` ](/cli/agents )
2026-01-18 08:02:42 +00:00
- [`acp` ](/cli/acp )
2026-03-28 02:41:06 +00:00
- [`mcp` ](/cli/mcp )
2026-01-15 06:12:54 +00:00
- [`status` ](/cli/status )
- [`health` ](/cli/health )
- [`sessions` ](/cli/sessions )
- [`gateway` ](/cli/gateway )
- [`logs` ](/cli/logs )
2026-01-24 04:01:45 +00:00
- [`system` ](/cli/system )
2026-01-15 06:12:54 +00:00
- [`models` ](/cli/models )
- [`memory` ](/cli/memory )
2026-02-22 20:04:08 +01:00
- [`directory` ](/cli/directory )
2026-01-15 06:12:54 +00:00
- [`nodes` ](/cli/nodes )
2026-01-20 10:29:13 +00:00
- [`devices` ](/cli/devices )
2026-01-18 07:44:28 +00:00
- [`node` ](/cli/node )
2026-01-18 15:23:36 +00:00
- [`approvals` ](/cli/approvals )
2026-01-15 06:12:54 +00:00
- [`sandbox` ](/cli/sandbox )
- [`tui` ](/cli/tui )
- [`browser` ](/cli/browser )
- [`cron` ](/cli/cron )
2026-04-01 08:44:31 -04:00
- [`tasks` ](/cli/index#tasks )
2026-04-04 07:22:57 +01:00
- [`flows` ](/cli/flows )
2026-01-15 06:12:54 +00:00
- [`dns` ](/cli/dns )
- [`docs` ](/cli/docs )
- [`hooks` ](/cli/hooks )
2026-01-17 07:08:04 +00:00
- [`webhooks` ](/cli/webhooks )
2026-01-15 06:12:54 +00:00
- [`pairing` ](/cli/pairing )
2026-02-22 20:04:08 +01:00
- [`qr` ](/cli/qr )
2026-01-15 06:12:54 +00:00
- [`plugins` ](/cli/plugins ) (plugin commands)
- [`channels` ](/cli/channels )
- [`security` ](/cli/security )
2026-02-24 16:26:51 -06:00
- [`secrets` ](/cli/secrets )
2026-01-15 06:12:54 +00:00
- [`skills` ](/cli/skills )
2026-02-22 20:04:08 +01:00
- [`daemon` ](/cli/daemon ) (legacy alias for gateway service commands)
- [`clawbot` ](/cli/clawbot ) (legacy alias namespace)
2026-01-15 06:12:54 +00:00
- [`voicecall` ](/cli/voicecall ) (plugin; if installed)
2026-01-07 02:52:28 +01:00
## Global flags
2026-01-30 03:15:10 +01:00
- `--dev` : isolate state under `~/.openclaw-dev` and shift default ports.
- `--profile <name>` : isolate state under `~/.openclaw-<name>` .
2026-03-30 10:04:57 +09:00
- `--container <name>` : target a named container for execution.
2026-01-09 13:38:51 +01:00
- `--no-color` : disable ANSI colors.
2026-01-30 03:15:10 +01:00
- `--update` : shorthand for `openclaw update` (source installs only).
2026-01-07 02:52:28 +01:00
- `-V` , `--version` , `-v` : print version and exit.
2026-01-08 05:19:57 +01:00
## Output styling
- ANSI colors and progress indicators only render in TTY sessions.
2026-01-08 07:20:02 +01:00
- OSC-8 hyperlinks render as clickable links in supported terminals; otherwise we fall back to plain URLs.
2026-01-08 05:19:57 +01:00
- `--json` (and `--plain` where supported) disables styling for clean output.
2026-01-09 13:38:51 +01:00
- `--no-color` disables ANSI styling; `NO_COLOR=1` is also respected.
2026-01-08 05:19:57 +01:00
- Long-running commands show a progress indicator (OSC 9;4 when supported).
2026-01-08 05:29:56 +01:00
## Color palette
2026-01-30 03:15:10 +01:00
OpenClaw uses a lobster palette for CLI output.
2026-01-08 05:29:56 +01:00
2026-01-13 07:15:57 +00:00
- `accent` (#FF5A2D ): headings, labels, primary highlights.
2026-01-08 05:29:56 +01:00
- `accentBright` (#FF7A3D ): command names, emphasis.
- `accentDim` (#D14A22 ): secondary highlight text.
- `info` (#FF8A5B ): informational values.
- `success` (#2FBF71 ): success states.
- `warn` (#FFB020 ): warnings, fallbacks, attention.
- `error` (#E23D2D ): errors, failures.
- `muted` (#8B7F77 ): de-emphasis, metadata.
2026-03-18 00:19:56 -07:00
Palette source of truth: `src/terminal/palette.ts` (the “lobster palette”).
2026-01-09 13:38:51 +01:00
2026-01-07 02:52:28 +01:00
## Command tree
```
2026-01-30 03:15:10 +01:00
openclaw [--dev] [--profile <name>] <command>
2026-01-07 02:52:28 +01:00
setup
onboard
2026-01-16 06:57:16 +00:00
configure
config
get
set
unset
2026-03-17 18:15:49 -05:00
file
2026-04-04 07:22:57 +01:00
schema
2026-03-17 18:15:49 -05:00
validate
2026-02-22 20:04:08 +01:00
completion
2026-01-07 02:52:28 +01:00
doctor
2026-02-22 20:04:08 +01:00
dashboard
2026-03-09 04:21:20 +08:00
backup
create
verify
2026-01-15 04:49:37 +00:00
security
audit
2026-02-24 16:26:51 -06:00
secrets
reload
2026-03-23 10:38:31 -07:00
audit
configure
apply
2026-01-11 10:23:52 +00:00
reset
uninstall
2026-01-10 20:32:19 +01:00
update
2026-04-04 07:22:57 +01:00
wizard
status
2026-01-13 06:16:43 +00:00
channels
2026-01-08 01:10:44 +01:00
list
status
2026-04-04 07:14:19 +01:00
capabilities
resolve
2026-01-11 02:24:35 +00:00
logs
2026-01-08 01:10:44 +01:00
add
remove
2026-01-08 07:40:08 +01:00
login
logout
2026-02-22 20:04:08 +01:00
directory
2026-04-04 07:22:57 +01:00
self
peers list
groups list|members
2026-01-08 07:20:02 +01:00
skills
2026-04-04 07:14:19 +01:00
search
install
update
2026-01-08 07:20:02 +01:00
list
info
check
2026-01-11 12:11:12 +00:00
plugins
list
2026-03-23 10:38:31 -07:00
inspect
2026-01-11 12:11:12 +00:00
install
2026-03-23 10:38:31 -07:00
uninstall
update
2026-01-11 12:11:12 +00:00
enable
disable
doctor
2026-03-23 10:38:31 -07:00
marketplace list
2026-01-12 11:22:56 +00:00
memory
status
index
search
2026-01-09 13:38:51 +01:00
message
2026-03-23 10:38:31 -07:00
send
broadcast
2026-04-04 07:22:57 +01:00
poll
react
reactions
read
edit
delete
pin
unpin
pins
permissions
search
thread create|list|reply
emoji list|upload
sticker send|upload
role info|add|remove
channel info|list
member info
voice status
event list|create
timeout
kick
ban
2026-01-07 02:52:28 +01:00
agent
2026-01-07 09:58:54 +01:00
agents
list
add
delete
2026-03-30 09:51:17 +09:00
bindings
bind
unbind
set-identity
2026-01-18 08:02:42 +00:00
acp
2026-03-28 02:41:06 +00:00
mcp
2026-04-04 07:22:57 +01:00
serve
list
show
set
unset
2026-01-07 02:52:28 +01:00
status
health
sessions
2026-03-30 09:51:17 +09:00
cleanup
2026-03-30 09:45:06 +09:00
tasks
list
2026-04-04 07:22:57 +01:00
audit
maintenance
2026-03-30 09:45:06 +09:00
show
notify
cancel
2026-04-03 03:03:00 +09:00
flow list|show|cancel
2026-01-07 02:52:28 +01:00
gateway
call
2026-04-04 07:22:57 +01:00
usage-cost
2026-01-07 02:52:28 +01:00
health
status
2026-01-21 17:45:12 +00:00
probe
2026-01-09 13:38:51 +01:00
discover
2026-01-11 02:24:35 +00:00
install
uninstall
start
stop
restart
2026-01-21 17:45:12 +00:00
run
2026-02-22 20:04:08 +01:00
daemon
status
install
uninstall
start
stop
restart
2026-01-11 02:24:35 +00:00
logs
2026-01-24 04:01:45 +00:00
system
event
heartbeat last|enable|disable
presence
2026-01-07 02:52:28 +01:00
models
list
status
set
set-image
aliases list|add|remove
fallbacks list|add|remove|clear
image-fallbacks list|add|remove|clear
scan
2026-03-30 09:51:17 +09:00
auth add|login|login-github-copilot|setup-token|paste-token
2026-01-11 02:24:35 +00:00
auth order get|set|clear
sandbox
list
recreate
explain
2026-01-07 02:52:28 +01:00
cron
status
list
add
edit
rm
enable
disable
runs
run
nodes
2026-04-04 07:22:57 +01:00
status
describe
list
pending
approve
reject
rename
invoke
notify
push
canvas snapshot|present|hide|navigate|eval
canvas a2ui push|reset
camera list|snap|clip
screen record
location get
2026-01-20 10:29:13 +00:00
devices
2026-04-04 07:22:57 +01:00
list
remove
clear
approve
reject
rotate
revoke
2026-01-18 07:44:28 +00:00
node
2026-01-21 17:45:12 +00:00
run
status
install
uninstall
stop
restart
2026-01-18 15:23:36 +00:00
approvals
get
set
allowlist add|remove
2026-01-07 02:52:28 +01:00
browser
status
start
stop
reset-profile
tabs
open
focus
close
profiles
create-profile
delete-profile
screenshot
snapshot
navigate
resize
click
type
press
hover
drag
select
upload
fill
dialog
wait
evaluate
console
pdf
hooks
2026-01-17 07:08:04 +00:00
list
info
check
enable
disable
install
update
webhooks
2026-01-07 02:52:28 +01:00
gmail setup|run
pairing
list
approve
2026-02-22 20:04:08 +01:00
qr
clawbot
qr
2026-01-07 02:52:28 +01:00
docs
dns
setup
tui
```
2026-01-30 03:15:10 +01:00
Note: plugins can add additional top-level commands (for example `openclaw voicecall` ).
2026-01-11 12:11:12 +00:00
2026-01-15 04:49:37 +00:00
## Security
2026-01-30 03:15:10 +01:00
- `openclaw security audit` — audit config + local state for common security foot-guns.
- `openclaw security audit --deep` — best-effort live Gateway probe.
2026-04-04 13:42:35 +01:00
- `openclaw security audit --fix` — tighten safe defaults and state/config permissions.
2026-01-15 04:49:37 +00:00
2026-02-24 16:26:51 -06:00
## Secrets
2026-04-04 08:33:41 +01:00
### `secrets`
Manage SecretRefs and related runtime/config hygiene.
Subcommands:
- `secrets reload`
- `secrets audit`
- `secrets configure`
- `secrets apply --from <path>`
`secrets reload` options:
- `--url` , `--token` , `--timeout` , `--expect-final` , `--json`
`secrets audit` options:
- `--check`
- `--allow-exec`
- `--json`
`secrets configure` options:
- `--apply`
- `--yes`
- `--providers-only`
- `--skip-provider-setup`
- `--agent <id>`
- `--allow-exec`
- `--plan-out <path>`
- `--json`
`secrets apply --from <path>` options:
- `--dry-run`
- `--allow-exec`
- `--json`
Notes:
- `reload` is a Gateway RPC and keeps the last-known-good runtime snapshot when resolution fails.
- `audit --check` returns non-zero on findings; unresolved refs use a higher-priority non-zero exit code.
- Dry-run exec checks are skipped by default; use `--allow-exec` to opt in.
2026-02-24 16:26:51 -06:00
2026-01-11 12:11:12 +00:00
## Plugins
Manage extensions and their config:
2026-01-30 03:15:10 +01:00
- `openclaw plugins list` — discover plugins (use `--json` for machine output).
2026-03-17 15:32:58 -07:00
- `openclaw plugins inspect <id>` — show details for a plugin (`info` is an alias).
2026-04-03 18:09:14 -04:00
- `openclaw plugins install <path|.tgz|npm-spec|plugin@marketplace>` — install a plugin (or add a plugin path to `plugins.load.paths` ; use `--force` to overwrite an existing install target).
2026-03-16 02:02:39 -07:00
- `openclaw plugins marketplace list <marketplace>` — list marketplace entries before install.
2026-01-30 03:15:10 +01:00
- `openclaw plugins enable <id>` / `disable <id>` — toggle `plugins.entries.<id>.enabled` .
- `openclaw plugins doctor` — report plugin load errors.
2026-01-11 12:11:12 +00:00
2026-02-07 15:40:35 -05:00
Most plugin changes require a gateway restart. See [/plugin ](/tools/plugin ).
2026-01-11 12:11:12 +00:00
2026-01-12 11:22:56 +00:00
## Memory
Vector search over `MEMORY.md` + `memory/*.md` :
2026-04-04 21:13:49 +01:00
- `openclaw memory status` — show index stats; use `--deep` for vector + embedding readiness checks or `--fix` to repair stale recall/promotion artifacts.
2026-01-30 03:15:10 +01:00
- `openclaw memory index` — reindex memory files.
2026-02-25 02:40:05 +00:00
- `openclaw memory search "<query>"` (or `--query "<query>"` ) — semantic search over memory.
2026-04-04 08:52:33 +01:00
- `openclaw memory promote` — rank short-term recalls and optionally append top entries into `MEMORY.md` .
2026-01-12 11:22:56 +00:00
2026-04-04 08:54:10 +01:00
## Sandbox
Manage sandbox runtimes for isolated agent execution. See [/cli/sandbox ](/cli/sandbox ).
Subcommands:
- `sandbox list [--browser] [--json]`
- `sandbox recreate [--all] [--session <key>] [--agent <id>] [--browser] [--force]`
- `sandbox explain [--session <key>] [--agent <id>] [--json]`
Notes:
- `sandbox recreate` removes existing runtimes so the next use seeds them again with current config.
- For `ssh` and OpenShell `remote` backends, recreate deletes the canonical remote workspace for the selected scope.
2026-01-09 16:38:52 +01:00
## Chat slash commands
Chat messages support `/...` commands (text and native). See [/tools/slash-commands ](/tools/slash-commands ).
Highlights:
2026-01-31 21:13:13 +09:00
2026-01-09 16:38:52 +01:00
- `/status` for quick diagnostics.
2026-01-10 03:00:24 +01:00
- `/config` for persisted config changes.
2026-01-11 02:17:10 +01:00
- `/debug` for runtime-only config overrides (memory, not disk; requires `commands.debug: true` ).
2026-01-09 16:38:52 +01:00
2026-01-07 02:52:28 +01:00
## Setup + onboarding
2026-04-04 08:56:23 +01:00
### `completion`
Generate shell-completion scripts and optionally install them into your shell profile.
Options:
- `-s, --shell <zsh|bash|powershell|fish>`
- `-i, --install`
- `--write-state`
- `-y, --yes`
Notes:
- Without `--install` or `--write-state` , `completion` prints the script to stdout.
- `--install` writes an `OpenClaw Completion` block into your shell profile and points it at the cached script under the OpenClaw state directory.
2026-01-07 02:52:28 +01:00
### `setup`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Initialize config + workspace.
Options:
2026-01-31 21:13:13 +09:00
2026-01-30 03:15:10 +01:00
- `--workspace <dir>` : agent workspace path (default `~/.openclaw/workspace` ).
2026-03-16 19:50:31 -05:00
- `--wizard` : run onboarding.
- `--non-interactive` : run onboarding without prompts.
- `--mode <local|remote>` : onboard mode.
2026-01-07 02:52:28 +01:00
- `--remote-url <url>` : remote Gateway URL.
- `--remote-token <token>` : remote Gateway token.
2026-03-16 19:50:31 -05:00
Onboarding auto-runs when any onboarding flags are present (`--non-interactive` , `--mode` , `--remote-url` , `--remote-token` ).
2026-01-08 05:29:56 +01:00
2026-01-07 02:52:28 +01:00
### `onboard`
2026-01-31 21:13:13 +09:00
2026-03-16 19:50:31 -05:00
Interactive onboarding for gateway, workspace, and skills.
2026-01-07 02:52:28 +01:00
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--workspace <dir>`
2026-03-16 19:50:31 -05:00
- `--reset` (reset config + credentials + sessions before onboarding)
2026-02-26 17:35:55 +01:00
- `--reset-scope <config|config+creds+sessions|full>` (default `config+creds+sessions` ; use `full` to also remove workspace)
2026-01-07 02:52:28 +01:00
- `--non-interactive`
- `--mode <local|remote>`
2026-01-22 23:07:58 +00:00
- `--flow <quickstart|advanced|manual>` (manual is an alias for advanced)
2026-03-30 09:45:06 +09:00
- `--auth-choice <choice>` where `<choice>` is one of:
2026-04-04 15:46:13 +09:00
`chutes` , `deepseek-api-key` , `openai-codex` , `openai-api-key` ,
2026-03-30 09:45:06 +09:00
`openrouter-api-key` , `kilocode-api-key` , `litellm-api-key` , `ai-gateway-api-key` ,
`cloudflare-ai-gateway-api-key` , `moonshot-api-key` , `moonshot-api-key-cn` ,
`kimi-code-api-key` , `synthetic-api-key` , `venice-api-key` , `together-api-key` ,
2026-04-06 12:18:18 +01:00
`huggingface-api-key` , `apiKey` , `gemini-api-key` , `google-gemini-cli` , `zai-api-key` ,
2026-03-30 09:45:06 +09:00
`zai-coding-global` , `zai-coding-cn` , `zai-global` , `zai-cn` , `xiaomi-api-key` ,
`minimax-global-oauth` , `minimax-global-api` , `minimax-cn-oauth` , `minimax-cn-api` ,
`opencode-zen` , `opencode-go` , `github-copilot` , `copilot-proxy` , `xai-api-key` ,
`mistral-api-key` , `volcengine-api-key` , `byteplus-api-key` , `qianfan-api-key` ,
2026-04-04 17:48:38 +01:00
`qwen-standard-api-key-cn` , `qwen-standard-api-key` , `qwen-api-key-cn` , `qwen-api-key` ,
2026-03-30 09:45:06 +09:00
`modelstudio-standard-api-key-cn` , `modelstudio-standard-api-key` ,
`modelstudio-api-key-cn` , `modelstudio-api-key` , `custom-api-key` , `skip`
2026-04-04 20:40:31 +01:00
- Qwen note: `qwen-*` is the canonical auth-choice family. `modelstudio-*`
ids remain accepted as legacy compatibility aliases only.
2026-02-24 16:26:51 -06:00
- `--secret-input-mode <plaintext|ref>` (default `plaintext` ; use `ref` to store provider default env refs instead of plaintext keys)
2026-01-07 02:52:28 +01:00
- `--anthropic-api-key <key>`
2026-01-09 09:59:58 +01:00
- `--openai-api-key <key>`
2026-02-22 19:03:56 -05:00
- `--mistral-api-key <key>`
2026-01-12 06:47:57 +00:00
- `--openrouter-api-key <key>`
2026-01-16 14:40:56 +01:00
- `--ai-gateway-api-key <key>`
2026-01-12 06:47:57 +00:00
- `--moonshot-api-key <key>`
2026-01-17 11:46:37 +02:00
- `--kimi-code-api-key <key>`
2026-01-08 14:44:40 +01:00
- `--gemini-api-key <key>`
2026-01-10 16:32:21 +01:00
- `--zai-api-key <key>`
2026-01-08 15:10:18 +01:00
- `--minimax-api-key <key>`
2026-01-10 01:07:56 +01:00
- `--opencode-zen-api-key <key>`
2026-03-11 16:31:06 +11:00
- `--opencode-go-api-key <key>`
2026-03-30 09:45:06 +09:00
- `--custom-base-url <url>` (non-interactive; used with `--auth-choice custom-api-key` )
- `--custom-model-id <id>` (non-interactive; used with `--auth-choice custom-api-key` )
2026-02-12 03:48:45 +08:00
- `--custom-api-key <key>` (non-interactive; optional; used with `--auth-choice custom-api-key` ; falls back to `CUSTOM_API_KEY` when omitted)
- `--custom-provider-id <id>` (non-interactive; optional custom provider id)
- `--custom-compatibility <openai|anthropic>` (non-interactive; optional; default `openai` )
2026-01-07 02:52:28 +01:00
- `--gateway-port <port>`
2026-01-21 20:35:39 +00:00
- `--gateway-bind <loopback|lan|tailnet|auto|custom>`
2026-01-26 17:44:13 +00:00
- `--gateway-auth <token|password>`
2026-01-07 02:52:28 +01:00
- `--gateway-token <token>`
2026-03-05 12:53:56 -06:00
- `--gateway-token-ref-env <name>` (non-interactive; store `gateway.auth.token` as an env SecretRef; requires that env var to be set; cannot be combined with `--gateway-token` )
2026-01-07 02:52:28 +01:00
- `--gateway-password <password>`
- `--remote-url <url>`
- `--remote-token <token>`
- `--tailscale <off|serve|funnel>`
- `--tailscale-reset-on-exit`
- `--install-daemon`
2026-01-11 02:24:35 +00:00
- `--no-install-daemon` (alias: `--skip-daemon` )
2026-01-13 06:16:43 +00:00
- `--daemon-runtime <node|bun>`
- `--skip-channels`
2026-01-07 02:52:28 +01:00
- `--skip-skills`
2026-03-30 10:04:57 +09:00
- `--skip-search`
2026-01-07 02:52:28 +01:00
- `--skip-health`
2026-01-11 02:24:35 +00:00
- `--skip-ui`
2026-03-30 10:04:57 +09:00
- `--cloudflare-ai-gateway-account-id <id>`
- `--cloudflare-ai-gateway-gateway-id <id>`
2026-04-04 13:34:02 +01:00
- `--node-manager <npm|pnpm|bun>` (setup/onboarding node manager for skills; pnpm recommended, bun also supported)
2026-01-07 02:52:28 +01:00
- `--json`
2026-01-16 06:57:16 +00:00
### `configure`
2026-01-31 21:13:13 +09:00
2026-01-13 06:16:43 +00:00
Interactive configuration wizard (models, channels, skills, gateway).
2026-01-07 02:52:28 +01:00
2026-04-04 08:31:36 +01:00
Options:
- `--section <section>` (repeatable; limit the wizard to specific sections)
2026-01-16 06:57:16 +00:00
### `config`
2026-01-31 21:13:13 +09:00
2026-03-26 06:30:32 +07:00
Non-interactive config helpers (get/set/unset/file/schema/validate). Running `openclaw config` with no
2026-01-16 06:57:16 +00:00
subcommand launches the wizard.
Subcommands:
2026-01-31 21:13:13 +09:00
2026-01-16 06:57:16 +00:00
- `config get <path>` : print a config value (dot/bracket path).
2026-03-17 18:15:49 -05:00
- `config set` : supports four assignment modes:
- value mode: `config set <path> <value>` (JSON5-or-string parsing)
- SecretRef builder mode: `config set <path> --ref-provider <provider> --ref-source <source> --ref-id <id>`
- provider builder mode: `config set secrets.providers.<alias> --provider-source <env|file|exec> ...`
- batch mode: `config set --batch-json '<json>'` or `config set --batch-file <path>`
2026-03-17 20:20:11 -05:00
- `config set --dry-run` : validate assignments without writing `openclaw.json` (exec SecretRef checks are skipped by default).
- `config set --allow-exec --dry-run` : opt in to exec SecretRef dry-run checks (may execute provider commands).
- `config set --dry-run --json` : emit machine-readable dry-run output (checks + completeness signal, operations, refs checked/skipped, errors).
2026-03-17 18:15:49 -05:00
- `config set --strict-json` : require JSON5 parsing for path/value input. `--json` remains a legacy alias for strict parsing outside dry-run output mode.
2026-01-16 06:57:16 +00:00
- `config unset <path>` : remove a value.
2026-03-02 12:33:20 +08:00
- `config file` : print the active config file path.
2026-04-04 21:43:09 +01:00
- `config schema` : print the generated JSON schema for `openclaw.json` , including propagated field `title` / `description` docs metadata across nested object, wildcard, array-item, and composition branches, plus best-effort live plugin/channel schema metadata.
2026-03-02 13:45:51 +08:00
- `config validate` : validate the current config against the schema without starting the gateway.
- `config validate --json` : emit machine-readable JSON output.
2026-01-16 06:57:16 +00:00
2026-01-07 02:52:28 +01:00
### `doctor`
2026-01-31 21:13:13 +09:00
2026-01-07 22:31:08 +01:00
Health checks + quick fixes (config + gateway + legacy services).
2026-01-07 02:52:28 +01:00
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--no-workspace-suggestions` : disable workspace memory hints.
2026-01-07 22:31:08 +01:00
- `--yes` : accept defaults without prompting (headless).
- `--non-interactive` : skip prompts; apply safe migrations only.
- `--deep` : scan system services for extra gateway installs.
2026-03-30 09:51:17 +09:00
- `--repair` (alias: `--fix` ): attempt automatic repairs for detected issues.
- `--force` : force repairs even when not strictly needed.
- `--generate-gateway-token` : generate a new gateway auth token.
2026-01-07 02:52:28 +01:00
2026-04-04 08:31:36 +01:00
### `dashboard`
Open the Control UI with your current token.
Options:
- `--no-open` : print the URL but do not launch a browser
Notes:
- For SecretRef-managed gateway tokens, `dashboard` prints or opens a non-tokenized URL instead of exposing the secret in terminal output or browser launch arguments.
2026-04-04 08:52:33 +01:00
### `update`
Update the installed CLI.
Root options:
- `--json`
- `--no-restart`
- `--dry-run`
- `--channel <stable|beta|dev>`
- `--tag <dist-tag|version|spec>`
- `--timeout <seconds>`
- `--yes`
Subcommands:
- `update status`
- `update wizard`
`update status` options:
- `--json`
- `--timeout <seconds>`
`update wizard` options:
- `--timeout <seconds>`
Notes:
- `openclaw --update` rewrites to `openclaw update` .
2026-04-04 08:31:36 +01:00
### `backup`
Create and verify local backup archives for OpenClaw state.
Subcommands:
- `backup create`
- `backup verify <archive>`
`backup create` options:
- `--output <path>`
- `--json`
- `--dry-run`
- `--verify`
- `--only-config`
- `--no-include-workspace`
`backup verify <archive>` options:
- `--json`
2026-01-13 06:16:43 +00:00
## Channel helpers
2026-01-07 02:52:28 +01:00
2026-01-13 06:16:43 +00:00
### `channels`
2026-01-31 21:13:13 +09:00
2026-03-20 12:24:47 +05:30
Manage chat channel accounts (WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage/Microsoft Teams).
2026-01-08 01:10:44 +01:00
Subcommands:
2026-01-31 21:13:13 +09:00
2026-01-26 19:04:46 +00:00
- `channels list` : show configured channels and auth profiles.
2026-04-04 18:52:01 +01:00
- `channels status` : check gateway reachability and channel health (`--probe` runs live per-account probe/audit checks when the gateway is reachable; if not, it falls back to config-only channel summaries. Use `openclaw health` or `openclaw status --deep` for broader gateway health probes).
2026-01-30 03:15:10 +01:00
- Tip: `channels status` prints warnings with suggested fixes when it can detect common misconfigurations (then points you to `openclaw doctor` ).
2026-01-13 06:16:43 +00:00
- `channels logs` : show recent channel logs from the gateway log file.
- `channels add` : wizard-style setup when no flags are passed; flags switch to non-interactive mode.
2026-04-04 15:43:34 +01:00
- When adding a non-default account to a channel still using single-account top-level config, OpenClaw promotes account-scoped values into the channel account map before writing the new account. Most channels use `accounts.default` ; Matrix can preserve an existing matching named/default target instead.
2026-02-26 04:06:03 -05:00
- Non-interactive `channels add` does not auto-create/upgrade bindings; channel-only bindings continue to match the default account.
2026-01-13 06:16:43 +00:00
- `channels remove` : disable by default; pass `--delete` to remove config entries without prompts.
- `channels login` : interactive channel login (WhatsApp Web only).
- `channels logout` : log out of a channel session (if supported).
2026-01-08 01:10:44 +01:00
Common options:
2026-01-31 21:13:13 +09:00
2026-01-23 16:45:37 -06:00
- `--channel <name>` : `whatsapp|telegram|discord|googlechat|slack|mattermost|signal|imessage|msteams`
2026-01-13 06:16:43 +00:00
- `--account <id>` : channel account id (default `default` )
2026-01-08 01:10:44 +01:00
- `--name <label>` : display name for the account
2026-01-13 06:16:43 +00:00
`channels login` options:
2026-01-31 21:13:13 +09:00
2026-01-13 06:16:43 +00:00
- `--channel <channel>` (default `whatsapp` ; supports `whatsapp` /`web` )
2026-01-08 07:40:08 +01:00
- `--account <id>`
- `--verbose`
2026-01-13 06:16:43 +00:00
`channels logout` options:
2026-01-31 21:13:13 +09:00
2026-01-13 06:16:43 +00:00
- `--channel <channel>` (default `whatsapp` )
2026-01-08 07:40:08 +01:00
- `--account <id>`
2026-01-13 06:16:43 +00:00
`channels list` options:
2026-01-31 21:13:13 +09:00
2026-01-13 06:16:43 +00:00
- `--no-usage` : skip model provider usage/quota snapshots (OAuth/API-backed only).
2026-01-08 02:49:29 +01:00
- `--json` : output JSON (includes usage unless `--no-usage` is set).
2026-01-08 02:48:51 +01:00
2026-04-04 08:38:51 +01:00
`channels status` options:
- `--probe`
- `--timeout <ms>`
- `--json`
`channels capabilities` options:
- `--channel <name>`
- `--account <id>` (only with `--channel` )
- `--target <dest>`
- `--timeout <ms>`
- `--json`
`channels resolve` options:
- `<entries...>`
- `--channel <name>`
- `--account <id>`
- `--kind <auto|user|group>`
- `--json`
2026-01-13 06:16:43 +00:00
`channels logs` options:
2026-01-31 21:13:13 +09:00
2026-01-13 06:16:43 +00:00
- `--channel <name|all>` (default `all` )
2026-01-11 02:24:35 +00:00
- `--lines <n>` (default `200` )
- `--json`
2026-04-04 08:38:51 +01:00
Notes:
- `channels login` supports `--verbose` .
- `channels capabilities --account` only applies when `--channel` is set.
2026-04-04 18:52:01 +01:00
- `channels status --probe` can show transport state plus probe/audit results such as `works` , `probe failed` , `audit ok` , or `audit failed` , depending on channel support.
2026-04-04 08:38:51 +01:00
2026-01-08 09:29:29 +01:00
More detail: [/concepts/oauth ](/concepts/oauth )
2026-01-08 04:05:10 +01:00
Examples:
2026-01-31 21:13:13 +09:00
2026-01-08 04:05:10 +01:00
``` bash
2026-01-30 03:15:10 +01:00
openclaw channels add --channel telegram --account alerts --name "Alerts Bot" --token $TELEGRAM_BOT_TOKEN
openclaw channels add --channel discord --account work --name "Work Bot" --token $DISCORD_BOT_TOKEN
openclaw channels remove --channel discord --account work --delete
openclaw channels status --probe
openclaw status --deep
2026-01-08 04:05:10 +01:00
```
2026-04-04 08:56:23 +01:00
### `directory`
Look up self, peer, and group IDs for channels that expose a directory surface. See [`openclaw directory` ](/cli/directory ).
Common options:
- `--channel <name>`
- `--account <id>`
- `--json`
Subcommands:
- `directory self`
- `directory peers list [--query <text>] [--limit <n>]`
- `directory groups list [--query <text>] [--limit <n>]`
- `directory groups members --group-id <id> [--limit <n>]`
2026-01-08 07:20:02 +01:00
### `skills`
2026-01-31 21:13:13 +09:00
2026-01-08 07:20:02 +01:00
List and inspect available skills plus readiness info.
Subcommands:
2026-01-31 21:13:13 +09:00
2026-03-22 17:03:32 +00:00
- `skills search [query...]` : search ClawHub skills.
2026-04-04 13:31:13 +01:00
- `skills search --limit <n> --json` : cap search results or emit machine-readable output.
2026-03-22 17:03:32 +00:00
- `skills install <slug>` : install a skill from ClawHub into the active workspace.
2026-04-04 13:31:13 +01:00
- `skills install <slug> --version <version>` : install a specific ClawHub version.
- `skills install <slug> --force` : overwrite an existing workspace skill folder.
2026-03-22 17:03:32 +00:00
- `skills update <slug|--all>` : update tracked ClawHub skills.
2026-01-08 07:20:02 +01:00
- `skills list` : list skills (default when no subcommand).
2026-04-04 16:19:34 +01:00
- `skills list --json` : emit machine-readable skill inventory on stdout.
2026-04-04 13:31:13 +01:00
- `skills list --verbose` : include missing requirements in the table.
2026-01-08 07:20:02 +01:00
- `skills info <name>` : show details for one skill.
2026-04-04 16:19:34 +01:00
- `skills info <name> --json` : emit machine-readable details on stdout.
2026-01-08 07:20:02 +01:00
- `skills check` : summary of ready vs missing requirements.
2026-04-04 16:19:34 +01:00
- `skills check --json` : emit machine-readable readiness output on stdout.
2026-01-08 07:20:02 +01:00
Options:
2026-01-31 21:13:13 +09:00
2026-01-08 07:20:02 +01:00
- `--eligible` : show only ready skills.
- `--json` : output JSON (no styling).
- `-v` , `--verbose` : include missing requirements detail.
2026-03-22 17:03:32 +00:00
Tip: use `openclaw skills search` , `openclaw skills install` , and `openclaw skills update` for ClawHub-backed skills.
2026-01-08 07:20:02 +01:00
2026-01-07 02:52:28 +01:00
### `pairing`
2026-01-31 21:13:13 +09:00
2026-01-13 06:16:43 +00:00
Approve DM pairing requests across channels.
2026-01-07 02:52:28 +01:00
Subcommands:
2026-01-31 21:13:13 +09:00
2026-02-25 02:40:05 +00:00
- `pairing list [channel] [--channel <channel>] [--account <id>] [--json]`
- `pairing approve <channel> <code> [--account <id>] [--notify]`
- `pairing approve --channel <channel> [--account <id>] <code> [--notify]`
2026-01-07 02:52:28 +01:00
2026-04-04 08:36:27 +01:00
Notes:
- If exactly one pairing-capable channel is configured, `pairing approve <code>` is also allowed.
- `list` and `approve` both support `--account <id>` for multi-account channels.
2026-02-25 02:41:13 +00:00
### `devices`
Manage gateway device pairing entries and per-role device tokens.
Subcommands:
- `devices list [--json]`
- `devices approve [requestId] [--latest]`
- `devices reject <requestId>`
- `devices remove <deviceId>`
- `devices clear --yes [--pending]`
- `devices rotate --device <id> --role <role> [--scope <scope...>]`
- `devices revoke --device <id> --role <role>`
2026-04-04 08:36:27 +01:00
Notes:
- `devices list` and `devices approve` can fall back to local pairing files on local loopback when direct pairing scope is unavailable.
- `devices approve` auto-selects the newest pending request when no `requestId` is passed or `--latest` is set.
2026-04-04 14:25:47 +01:00
- Stored-token reconnects reuse the token's cached approved scopes; explicit
`devices rotate --scope ...` updates that stored scope set for future
cached-token reconnects.
2026-04-04 08:36:27 +01:00
- `devices rotate` and `devices revoke` return JSON payloads.
2026-04-04 08:56:23 +01:00
### `qr`
Generate a mobile pairing QR and setup code from the current Gateway config. See [`openclaw qr` ](/cli/qr ).
Options:
- `--remote`
- `--url <url>`
- `--public-url <url>`
- `--token <token>`
- `--password <password>`
- `--setup-code-only`
- `--no-ascii`
- `--json`
Notes:
- `--token` and `--password` are mutually exclusive.
- The setup code carries a short-lived bootstrap token, not the shared gateway token/password.
2026-04-04 14:32:32 +01:00
- Built-in bootstrap handoff keeps the primary node token at `scopes: []` .
- Any handed-off operator bootstrap token stays bounded to `operator.approvals` , `operator.read` , `operator.talk.secrets` , and `operator.write` .
2026-04-04 18:48:26 +01:00
- Bootstrap scope checks are role-prefixed, so that operator allowlist only satisfies operator requests; non-operator roles still need scopes under their own role prefix.
2026-04-04 14:17:47 +01:00
- `--remote` can use `gateway.remote.url` or the active Tailscale Serve/Funnel URL.
2026-04-04 08:56:23 +01:00
- After scanning, approve the request with `openclaw devices list` / `openclaw devices approve <requestId>` .
### `clawbot`
Legacy alias namespace. Currently supports `openclaw clawbot qr` , which maps to [`openclaw qr` ](/cli/qr ).
2026-04-04 08:33:41 +01:00
### `hooks`
Manage internal agent hooks.
Subcommands:
- `hooks list`
- `hooks info <name>`
- `hooks check`
- `hooks enable <name>`
- `hooks disable <name>`
- `hooks install <path-or-spec>` (deprecated alias for `openclaw plugins install` )
- `hooks update [id]` (deprecated alias for `openclaw plugins update` )
Common options:
- `--json`
- `--eligible`
- `-v` , `--verbose`
Notes:
- Plugin-managed hooks cannot be enabled or disabled through `openclaw hooks` ; enable or disable the owning plugin instead.
- `hooks install` and `hooks update` still work as compatibility aliases, but they print deprecation warnings and forward to the plugin commands.
2026-04-04 08:56:23 +01:00
### `webhooks`
Webhook helpers. Current built-in surface is Gmail Pub/Sub setup + runner:
- `webhooks gmail setup`
- `webhooks gmail run`
2026-01-17 07:08:04 +00:00
### `webhooks gmail`
2026-01-31 21:13:13 +09:00
2026-04-03 03:16:41 +09:00
Gmail Pub/Sub hook setup + runner. See [Gmail Pub/Sub ](/automation/cron-jobs#gmail-pubsub-integration ).
2026-01-07 02:52:28 +01:00
Subcommands:
2026-01-31 21:13:13 +09:00
2026-01-17 07:08:04 +00:00
- `webhooks gmail setup` (requires `--account <email>` ; supports `--project` , `--topic` , `--subscription` , `--label` , `--hook-url` , `--hook-token` , `--push-token` , `--bind` , `--port` , `--path` , `--include-body` , `--max-bytes` , `--renew-minutes` , `--tailscale` , `--tailscale-path` , `--tailscale-target` , `--push-endpoint` , `--json` )
- `webhooks gmail run` (runtime overrides for the same flags)
2026-01-07 02:52:28 +01:00
2026-04-04 08:33:41 +01:00
Notes:
- `setup` configures the Gmail watch plus the OpenClaw-facing push path.
- `run` starts the local Gmail watcher/renew loop with optional runtime overrides.
2026-04-04 08:56:23 +01:00
### `dns`
Wide-area discovery DNS helpers (CoreDNS + Tailscale). Current built-in surface:
- `dns setup [--domain <domain>] [--apply]`
2026-01-07 02:52:28 +01:00
### `dns setup`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Wide-area discovery DNS helper (CoreDNS + Tailscale). See [/gateway/discovery ](/gateway/discovery ).
Options:
2026-01-31 21:13:13 +09:00
2026-04-04 08:36:27 +01:00
- `--domain <domain>`
2026-01-07 02:52:28 +01:00
- `--apply` : install/update CoreDNS config (requires sudo; macOS only).
2026-04-04 08:36:27 +01:00
Notes:
- Without `--apply` , this is a planning helper that prints the recommended OpenClaw + Tailscale DNS config.
- `--apply` currently supports macOS with Homebrew CoreDNS only.
2026-01-07 02:52:28 +01:00
## Messaging + agent
2026-01-09 13:38:51 +01:00
### `message`
2026-01-31 21:13:13 +09:00
2026-01-13 06:16:43 +00:00
Unified outbound messaging + channel actions.
2026-01-09 09:08:46 +01:00
2026-01-09 13:38:51 +01:00
See: [/cli/message ](/cli/message )
2026-01-08 15:10:18 +01:00
2026-01-09 13:38:51 +01:00
Subcommands:
2026-01-31 21:13:13 +09:00
2026-01-09 13:38:51 +01:00
- `message send|poll|react|reactions|read|edit|delete|pin|unpin|pins|permissions|search|timeout|kick|ban`
- `message thread <create|list|reply>`
- `message emoji <list|upload>`
- `message sticker <send|upload>`
- `message role <info|add|remove>`
- `message channel <info|list>`
- `message member info`
- `message voice status`
- `message event <list|create>`
2026-01-08 15:10:18 +01:00
2026-01-09 13:38:51 +01:00
Examples:
2026-01-31 21:13:13 +09:00
2026-01-30 03:15:10 +01:00
- `openclaw message send --target +15555550123 --message "Hi"`
- `openclaw message poll --channel discord --target channel:123 --poll-question "Snack?" --poll-option Pizza --poll-option Sushi`
2026-01-09 09:14:31 +01:00
2026-01-07 02:52:28 +01:00
### `agent`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Run one agent turn via the Gateway (or `--local` embedded).
2026-04-04 08:42:43 +01:00
Pass at least one session selector: `--to` , `--session-id` , or `--agent` .
2026-01-07 02:52:28 +01:00
Required:
2026-01-31 21:13:13 +09:00
2026-03-30 09:45:06 +09:00
- `-m, --message <text>`
2026-01-07 02:52:28 +01:00
Options:
2026-01-31 21:13:13 +09:00
2026-03-30 09:45:06 +09:00
- `-t, --to <dest>` (for session key and optional delivery)
2026-01-07 02:52:28 +01:00
- `--session-id <id>`
2026-03-30 09:45:06 +09:00
- `--agent <id>` (agent id; overrides routing bindings)
- `--thinking <off|minimal|low|medium|high|xhigh>` (provider support varies; not model-gated at CLI level)
- `--verbose <on|off>`
- `--channel <channel>` (delivery channel; omit to use the main session channel)
- `--reply-to <target>` (delivery target override, separate from session routing)
- `--reply-channel <channel>` (delivery channel override)
- `--reply-account <id>` (delivery account id override)
2026-04-04 09:04:11 +01:00
- `--local` (embedded run; plugin registry still preloads first)
2026-01-07 02:52:28 +01:00
- `--deliver`
- `--json`
- `--timeout <seconds>`
2026-04-04 08:42:43 +01:00
Notes:
- Gateway mode falls back to the embedded agent when the Gateway request fails.
2026-04-04 09:04:11 +01:00
- `--local` still preloads the plugin registry, so plugin-provided providers, tools, and channels remain available during embedded runs.
2026-04-04 08:42:43 +01:00
- `--channel` , `--reply-channel` , and `--reply-account` affect reply delivery, not routing.
2026-01-07 09:58:54 +01:00
### `agents`
2026-01-31 21:13:13 +09:00
2026-01-07 09:58:54 +01:00
Manage isolated agents (workspaces + auth + routing).
2026-04-04 08:42:43 +01:00
Running `openclaw agents` with no subcommand is equivalent to `openclaw agents list` .
2026-01-07 09:58:54 +01:00
#### `agents list`
2026-01-31 21:13:13 +09:00
2026-01-07 09:58:54 +01:00
List configured agents.
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 09:58:54 +01:00
- `--json`
2026-01-08 07:49:07 +01:00
- `--bindings`
2026-01-07 09:58:54 +01:00
#### `agents add [name]`
2026-01-31 21:13:13 +09:00
2026-01-08 07:49:07 +01:00
Add a new isolated agent. Runs the guided wizard unless flags (or `--non-interactive` ) are passed; `--workspace` is required in non-interactive mode.
2026-01-07 09:58:54 +01:00
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 09:58:54 +01:00
- `--workspace <dir>`
2026-01-08 07:49:07 +01:00
- `--model <id>`
- `--agent-dir <dir>`
2026-01-13 06:16:43 +00:00
- `--bind <channel[:accountId]>` (repeatable)
2026-01-08 07:49:07 +01:00
- `--non-interactive`
2026-01-07 09:58:54 +01:00
- `--json`
2026-02-26 02:36:56 -05:00
Binding specs use `channel[:accountId]` . When `accountId` is omitted, OpenClaw may resolve account scope via channel defaults/plugin hooks; otherwise it is a channel binding without explicit account scope.
2026-04-04 08:42:43 +01:00
Passing any explicit add flags switches the command into the non-interactive path. `main` is reserved and cannot be used as the new agent id.
2026-02-26 02:36:56 -05:00
#### `agents bindings`
List routing bindings.
Options:
- `--agent <id>`
- `--json`
#### `agents bind`
Add routing bindings for an agent.
Options:
2026-04-04 08:42:43 +01:00
- `--agent <id>` (defaults to the current default agent)
2026-02-26 02:36:56 -05:00
- `--bind <channel[:accountId]>` (repeatable)
- `--json`
#### `agents unbind`
Remove routing bindings for an agent.
Options:
2026-04-04 08:42:43 +01:00
- `--agent <id>` (defaults to the current default agent)
2026-02-26 02:36:56 -05:00
- `--bind <channel[:accountId]>` (repeatable)
- `--all`
- `--json`
2026-01-08 07:49:07 +01:00
2026-04-04 08:42:43 +01:00
Use either `--all` or `--bind` , not both.
2026-01-07 09:58:54 +01:00
#### `agents delete <id>`
2026-01-31 21:13:13 +09:00
2026-01-07 09:58:54 +01:00
Delete an agent and prune its workspace + state.
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 09:58:54 +01:00
- `--force`
- `--json`
2026-04-04 08:42:43 +01:00
Notes:
- `main` cannot be deleted.
- Without `--force` , interactive confirmation is required.
2026-04-04 08:20:20 +01:00
#### `agents set-identity`
Update an agent identity (name/theme/emoji/avatar).
Options:
- `--agent <id>`
- `--workspace <dir>`
- `--identity-file <path>`
- `--from-identity`
- `--name <name>`
- `--theme <theme>`
- `--emoji <emoji>`
- `--avatar <value>`
- `--json`
2026-04-04 08:42:43 +01:00
Notes:
- `--agent` or `--workspace` can be used to select the target agent.
- When no explicit identity fields are provided, the command reads `IDENTITY.md` .
2026-01-18 08:02:42 +00:00
### `acp`
2026-01-31 21:13:13 +09:00
2026-01-18 08:02:42 +00:00
Run the ACP bridge that connects IDEs to the Gateway.
2026-04-04 08:20:20 +01:00
Root options:
- `--url <url>`
- `--token <token>`
- `--token-file <path>`
- `--password <password>`
- `--password-file <path>`
- `--session <key>`
- `--session-label <label>`
- `--require-existing`
- `--reset-session`
- `--no-prefix-cwd`
- `--provenance <off|meta|meta+receipt>`
- `--verbose`
#### `acp client`
Interactive ACP client for bridge debugging.
Options:
- `--cwd <dir>`
- `--server <command>`
- `--server-args <args...>`
- `--server-verbose`
- `--verbose`
See [`acp` ](/cli/acp ) for full behavior, security notes, and examples.
2026-04-04 08:46:24 +01:00
### `mcp`
Manage saved MCP server definitions and expose OpenClaw channels over MCP stdio.
#### `mcp serve`
Expose routed OpenClaw channel conversations over MCP stdio.
Options:
- `--url <url>`
- `--token <token>`
- `--token-file <path>`
- `--password <password>`
- `--password-file <path>`
- `--claude-channel-mode <auto|on|off>`
- `--verbose`
#### `mcp list`
List saved MCP server definitions.
Options:
- `--json`
#### `mcp show [name]`
Show one saved MCP server definition or the full saved MCP server object.
Options:
- `--json`
#### `mcp set <name> <value>`
Save one MCP server definition from a JSON object.
#### `mcp unset <name>`
Remove one saved MCP server definition.
2026-04-04 08:20:20 +01:00
### `approvals`
Manage exec approvals. Alias: `exec-approvals` .
#### `approvals get`
Fetch the exec approvals snapshot and effective policy.
Options:
- `--node <node>`
- `--gateway`
- `--json`
- node RPC options from `openclaw nodes`
#### `approvals set`
Replace exec approvals with JSON from a file or stdin.
Options:
- `--node <node>`
- `--gateway`
- `--file <path>`
- `--stdin`
- `--json`
- node RPC options from `openclaw nodes`
#### `approvals allowlist add|remove`
Edit the per-agent exec allowlist.
Options:
- `--node <node>`
- `--gateway`
- `--agent <id>` (defaults to `*` )
- `--json`
- node RPC options from `openclaw nodes`
2026-01-18 08:02:42 +00:00
2026-01-07 02:52:28 +01:00
### `status`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Show linked session health and recent recipients.
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--json`
2026-01-11 02:24:35 +00:00
- `--all` (full diagnosis; read-only, pasteable)
2026-04-04 18:54:04 +01:00
- `--deep` (ask the gateway for a live health probe, including channel probes when supported)
2026-01-13 06:51:20 +00:00
- `--usage` (show model provider usage/quota)
2026-01-07 02:52:28 +01:00
- `--timeout <ms>`
- `--verbose`
2026-01-11 02:24:35 +00:00
- `--debug` (alias for `--verbose` )
2026-01-07 02:52:28 +01:00
2026-01-18 15:23:36 +00:00
Notes:
2026-01-31 21:13:13 +09:00
2026-01-21 16:48:31 +00:00
- Overview includes Gateway + node host service status when available.
2026-04-04 11:25:39 +01:00
- `--usage` prints normalized provider usage windows as `X% left` .
2026-01-18 15:23:36 +00:00
2026-01-07 11:42:41 +01:00
### Usage tracking
2026-01-31 21:13:13 +09:00
2026-01-30 03:15:10 +01:00
OpenClaw can surface provider usage/quota when OAuth/API creds are available.
2026-01-07 11:42:41 +01:00
Surfaces:
2026-01-31 21:13:13 +09:00
2026-01-18 05:35:22 +00:00
- `/status` (adds a short provider usage line when available)
2026-01-30 03:15:10 +01:00
- `openclaw status --usage` (prints full provider breakdown)
2026-01-07 11:42:41 +01:00
- macOS menu bar (Usage section under Context)
Notes:
2026-01-31 21:13:13 +09:00
2026-01-07 11:42:41 +01:00
- Data comes directly from provider usage endpoints (no estimates).
2026-04-04 11:25:39 +01:00
- Human-readable output is normalized to `X% left` across providers.
2026-04-04 12:40:55 +01:00
- Providers with current usage windows: Anthropic, GitHub Copilot, Gemini CLI, OpenAI Codex, MiniMax, Xiaomi, and z.ai.
2026-04-04 12:35:59 +01:00
- MiniMax note: raw `usage_percent` / `usagePercent` means remaining quota, so OpenClaw inverts it before display; count-based fields still win when present. `model_remains` responses prefer the chat-model entry, derive the window label from timestamps when needed, and include the model name in the plan label.
2026-04-04 12:40:55 +01:00
- Usage auth comes from provider-specific hooks when available; otherwise OpenClaw falls back to matching OAuth/API-key credentials from auth profiles, env, or config. If none resolve, usage is hidden.
2026-01-07 11:42:41 +01:00
- Details: see [Usage tracking ](/concepts/usage-tracking ).
2026-01-07 02:52:28 +01:00
### `health`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Fetch health from the running Gateway.
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--json`
- `--timeout <ms>`
2026-04-04 18:54:04 +01:00
- `--verbose` (force a live probe and print gateway connection details)
2026-04-04 08:28:41 +01:00
- `--debug` (alias for `--verbose` )
2026-01-07 02:52:28 +01:00
2026-04-04 18:54:04 +01:00
Notes:
- Default `health` can return a fresh cached gateway snapshot.
- `health --verbose` forces a live probe and expands human-readable output across all configured accounts and agents.
2026-01-07 02:52:28 +01:00
### `sessions`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
List stored conversation sessions.
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--json`
- `--verbose`
- `--store <path>`
- `--active <minutes>`
2026-03-30 09:51:17 +09:00
- `--agent <id>` (filter sessions by agent)
- `--all-agents` (show sessions across all agents)
Subcommands:
- `sessions cleanup` — remove expired or orphaned sessions
2026-01-07 02:52:28 +01:00
2026-04-04 08:28:41 +01:00
Notes:
- `sessions cleanup` also supports `--fix-missing` to prune entries whose transcript files are gone.
2026-01-11 10:23:52 +00:00
## Reset / Uninstall
### `reset`
2026-01-31 21:13:13 +09:00
2026-01-11 10:23:52 +00:00
Reset local config/state (keeps the CLI installed).
Options:
2026-01-31 21:13:13 +09:00
2026-01-11 10:23:52 +00:00
- `--scope <config|config+creds+sessions|full>`
- `--yes`
- `--non-interactive`
- `--dry-run`
Notes:
2026-01-31 21:13:13 +09:00
2026-01-11 10:23:52 +00:00
- `--non-interactive` requires `--scope` and `--yes` .
### `uninstall`
2026-01-31 21:13:13 +09:00
2026-01-11 10:23:52 +00:00
Uninstall the gateway service + local data (CLI remains).
Options:
2026-01-31 21:13:13 +09:00
2026-01-11 10:23:52 +00:00
- `--service`
- `--state`
- `--workspace`
- `--app`
- `--all`
- `--yes`
- `--non-interactive`
- `--dry-run`
Notes:
2026-01-31 21:13:13 +09:00
2026-01-11 10:23:52 +00:00
- `--non-interactive` requires `--yes` and explicit scopes (or `--all` ).
2026-04-04 08:30:16 +01:00
- `--all` removes service, state, workspace, and app together.
2026-01-11 10:23:52 +00:00
2026-03-30 09:45:06 +09:00
### `tasks`
2026-03-30 16:42:47 +09:00
List and manage [background task ](/automation/tasks ) runs across agents.
2026-03-30 09:45:06 +09:00
- `tasks list` — show active and recent task runs
- `tasks show <id>` — show details for a specific task run
2026-03-30 16:42:47 +09:00
- `tasks notify <id>` — change notification policy for a task run
2026-03-30 09:45:06 +09:00
- `tasks cancel <id>` — cancel a running task
2026-03-30 16:42:47 +09:00
- `tasks audit` — surface operational issues (stale, lost, delivery failures)
2026-04-05 09:30:31 +01:00
- `tasks maintenance [--apply] [--json]` — preview or apply tasks and TaskFlow cleanup/reconciliation (ACP/subagent child sessions, active cron jobs, live CLI runs)
2026-04-03 03:22:01 +09:00
- `tasks flow list` — list active and recent Task Flow flows
2026-04-03 03:03:00 +09:00
- `tasks flow show <lookup>` — inspect a flow by id or lookup key
- `tasks flow cancel <lookup>` — cancel a running flow and its active tasks
2026-03-30 09:45:06 +09:00
2026-04-04 08:57:20 +01:00
### `flows`
Legacy docs shortcut. Flow commands live under `openclaw tasks flow` :
- `tasks flow list [--json]`
- `tasks flow show <lookup>`
- `tasks flow cancel <lookup>`
2026-01-07 02:52:28 +01:00
## Gateway
### `gateway`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Run the WebSocket Gateway.
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--port <port>`
2026-01-21 20:35:39 +00:00
- `--bind <loopback|tailnet|lan|auto|custom>`
2026-01-07 02:52:28 +01:00
- `--token <token>`
- `--auth <token|password>`
- `--password <password>`
2026-03-07 21:20:17 -05:00
- `--password-file <path>`
2026-01-07 02:52:28 +01:00
- `--tailscale <off|serve|funnel>`
- `--tailscale-reset-on-exit`
- `--allow-unconfigured`
2026-01-09 13:38:51 +01:00
- `--dev`
2026-01-09 15:11:32 +01:00
- `--reset` (reset dev config + credentials + sessions + workspace)
2026-01-07 02:52:28 +01:00
- `--force` (kill existing listener on port)
- `--verbose`
2026-04-06 12:18:18 +01:00
- `--cli-backend-logs`
2026-01-07 02:52:28 +01:00
- `--ws-log <auto|full|compact>`
- `--compact` (alias for `--ws-log compact` )
2026-01-11 02:24:35 +00:00
- `--raw-stream`
- `--raw-stream-path <path>`
2026-01-07 02:52:28 +01:00
2026-01-21 17:45:12 +00:00
### `gateway service`
2026-01-31 21:13:13 +09:00
2026-01-07 21:37:05 +01:00
Manage the Gateway service (launchd/systemd/schtasks).
Subcommands:
2026-01-31 21:13:13 +09:00
2026-01-21 17:45:12 +00:00
- `gateway status` (probes the Gateway RPC by default)
- `gateway install` (service install)
- `gateway uninstall`
- `gateway start`
- `gateway stop`
- `gateway restart`
2026-01-07 21:37:05 +01:00
Notes:
2026-01-31 21:13:13 +09:00
2026-01-21 17:45:12 +00:00
- `gateway status` probes the Gateway RPC by default using the service’ s resolved port/config (override with `--url/--token/--password` ).
2026-03-14 10:20:44 -07:00
- `gateway status` supports `--no-probe` , `--deep` , `--require-rpc` , and `--json` for scripting.
2026-01-30 03:15:10 +01:00
- `gateway status` also surfaces legacy or extra gateway services when it can detect them (`--deep` adds system-level scans). Profile-named OpenClaw services are treated as first-class and aren't flagged as "extra".
2026-04-04 09:05:08 +01:00
- `gateway status` stays available for diagnostics even when the local CLI config is missing or invalid.
- `gateway status` prints the resolved file log path, the CLI-vs-service config paths/validity snapshot, and the resolved probe target URL.
2026-03-15 21:55:24 -05:00
- If gateway auth SecretRefs are unresolved in the current command path, `gateway status --json` reports `rpc.authWarning` only when probe connectivity/auth fails (warnings are suppressed when probe succeeds).
2026-03-07 18:28:32 -06:00
- On Linux systemd installs, status token-drift checks include both `Environment=` and `EnvironmentFile=` unit sources.
2026-01-21 17:45:12 +00:00
- `gateway install|uninstall|start|stop|restart` support `--json` for scripting (default output stays human-friendly).
- `gateway install` defaults to Node runtime; bun is **not recommended ** (WhatsApp/Telegram bugs).
- `gateway install` options: `--port` , `--runtime` , `--token` , `--force` , `--json` .
2026-01-07 21:37:05 +01:00
2026-04-04 08:54:10 +01:00
### `daemon`
Legacy alias for the Gateway service-management commands. See [/cli/daemon ](/cli/daemon ).
Subcommands:
- `daemon status`
- `daemon install`
- `daemon uninstall`
- `daemon start`
- `daemon stop`
- `daemon restart`
Common options:
- `status` : `--url` , `--token` , `--password` , `--timeout` , `--no-probe` , `--require-rpc` , `--deep` , `--json`
- `install` : `--port` , `--runtime <node|bun>` , `--token` , `--force` , `--json`
- `uninstall|start|stop|restart` : `--json`
2026-01-08 06:48:28 +00:00
### `logs`
2026-01-31 21:13:13 +09:00
2026-01-08 06:48:28 +00:00
Tail Gateway file logs via RPC.
2026-03-30 10:04:57 +09:00
Options:
2026-01-31 21:13:13 +09:00
2026-03-30 10:04:57 +09:00
- `--limit <n>` : maximum number of log lines to return
- `--max-bytes <n>` : maximum bytes to read from the log file
- `--follow` : follow the log file (tail -f style)
- `--interval <ms>` : polling interval in ms when following
- `--local-time` : display timestamps in local time
- `--json` : emit line-delimited JSON
- `--plain` : disable structured formatting
- `--no-color` : disable ANSI colors
2026-04-04 08:27:04 +01:00
- `--url <url>` : explicit Gateway WebSocket URL
- `--token <token>` : Gateway token
- `--timeout <ms>` : Gateway RPC timeout
- `--expect-final` : wait for a final response when needed
2026-01-09 13:38:51 +01:00
2026-01-08 06:48:28 +00:00
Examples:
2026-01-31 21:13:13 +09:00
2026-01-08 06:48:28 +00:00
``` bash
2026-01-30 03:15:10 +01:00
openclaw logs --follow
openclaw logs --limit 200
openclaw logs --plain
openclaw logs --json
openclaw logs --no-color
2026-01-08 06:48:28 +00:00
```
2026-04-04 08:27:04 +01:00
Notes:
- If you pass `--url` , the CLI does not auto-apply config or environment credentials.
- Local loopback pairing failures fall back to the configured local log file; explicit `--url` targets do not.
2026-01-07 02:52:28 +01:00
### `gateway <subcommand>`
2026-01-31 21:13:13 +09:00
2026-01-21 17:45:12 +00:00
Gateway CLI helpers (use `--url` , `--token` , `--password` , `--timeout` , `--expect-final` for RPC subcommands).
2026-02-04 18:59:44 -05:00
When you pass `--url` , the CLI does not auto-apply config or environment credentials.
Include `--token` or `--password` explicitly. Missing explicit credentials is an error.
2026-01-07 02:52:28 +01:00
Subcommands:
2026-01-31 21:13:13 +09:00
2026-04-04 08:52:33 +01:00
- `gateway call <method> [--params <json>] [--url <url>] [--token <token>] [--password <password>] [--timeout <ms>] [--expect-final] [--json]`
2026-01-07 02:52:28 +01:00
- `gateway health`
- `gateway status`
2026-01-21 17:45:12 +00:00
- `gateway probe`
2026-01-11 02:24:35 +00:00
- `gateway discover`
2026-01-21 17:45:12 +00:00
- `gateway install|uninstall|start|stop|restart`
- `gateway run`
2026-01-07 02:52:28 +01:00
2026-04-04 19:06:30 +01:00
Notes:
- `gateway status --deep` adds a system-level service scan. Use `gateway probe` ,
`health --verbose` , or top-level `status --deep` for deeper runtime probe detail.
2026-01-08 01:29:56 +01:00
Common RPCs:
2026-01-31 21:13:13 +09:00
2026-04-04 20:45:46 +01:00
- `config.schema.lookup` (inspect one config subtree with a shallow schema node, matched hint metadata, and immediate child summaries)
2026-04-04 20:32:28 +01:00
- `config.get` (read current config snapshot + hash)
2026-03-30 23:55:03 -05:00
- `config.set` (validate + write full config; use `baseHash` for optimistic concurrency)
2026-01-08 01:29:56 +01:00
- `config.apply` (validate + write config + restart + wake)
2026-01-24 23:33:13 +00:00
- `config.patch` (merge a partial update + restart + wake)
2026-01-08 01:29:56 +01:00
- `update.run` (run update + restart + wake)
2026-01-15 04:05:01 +00:00
Tip: when calling `config.set` /`config.apply` /`config.patch` directly, pass `baseHash` from
`config.get` if a config already exists.
2026-04-04 20:32:28 +01:00
Tip: for partial edits, inspect with `config.schema.lookup` first and prefer `config.patch` .
2026-03-30 23:55:03 -05:00
Tip: these config write RPCs preflight active SecretRef resolution for refs in the submitted config payload and reject writes when an effectively active submitted ref is unresolved.
2026-04-04 21:43:09 +01:00
Tip: the owner-only `gateway` runtime tool still refuses to rewrite `tools.exec.ask` or `tools.exec.security` ; legacy `tools.bash.*` aliases normalize to the same protected exec paths.
2026-01-15 04:05:01 +00:00
2026-01-07 02:52:28 +01:00
## Models
See [/concepts/models ](/concepts/models ) for fallback behavior and scanning strategy.
2026-04-06 14:20:51 +01:00
Anthropic note: Anthropic staff told us OpenClaw-style Claude CLI usage is
allowed again, so OpenClaw treats Claude CLI reuse and `claude -p` usage as
sanctioned for this integration unless Anthropic publishes a new policy. For
production, prefer an Anthropic API key or another supported
subscription-style provider such as OpenAI Codex, Alibaba Cloud Model Studio
Coding Plan, MiniMax Coding Plan, or Z.AI / GLM Coding Plan.
2026-04-05 18:04:36 +01:00
2026-04-06 15:30:49 +01:00
Anthropic setup-token remains available as a supported token-auth path, but OpenClaw now prefers Claude CLI reuse and `claude -p` when available.
2026-03-30 09:45:06 +09:00
2026-01-07 02:52:28 +01:00
### `models` (root)
2026-01-31 21:13:13 +09:00
2026-01-30 03:15:10 +01:00
`openclaw models` is an alias for `models status` .
2026-01-07 02:52:28 +01:00
2026-01-11 02:24:35 +00:00
Root options:
2026-01-31 21:13:13 +09:00
2026-01-11 02:24:35 +00:00
- `--status-json` (alias for `models status --json` )
- `--status-plain` (alias for `models status --plain` )
2026-01-07 02:52:28 +01:00
### `models list`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--all`
- `--local`
- `--provider <name>`
- `--json`
- `--plain`
### `models status`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--json`
- `--plain`
2026-01-09 13:38:51 +01:00
- `--check` (exit 1=expired/missing, 2=expiring)
2026-01-23 19:25:58 +00:00
- `--probe` (live probe of configured auth profiles)
- `--probe-provider <name>`
- `--probe-profile <id>` (repeat or comma-separated)
- `--probe-timeout <ms>`
- `--probe-concurrency <n>`
- `--probe-max-tokens <n>`
2026-04-04 20:51:43 +01:00
- `--agent <id>`
2026-01-09 13:38:51 +01:00
Always includes the auth overview and OAuth expiry status for profiles in the auth store.
2026-01-23 19:25:58 +00:00
`--probe` runs live requests (may consume tokens and trigger rate limits).
2026-04-04 20:51:43 +01:00
Probe rows can come from auth profiles, env credentials, or `models.json` .
Expect probe statuses like `ok` , `auth` , `rate_limit` , `billing` , `timeout` ,
`format` , `unknown` , and `no_model` .
When an explicit `auth.order.<provider>` omits a stored profile, probe reports
`excluded_by_auth_order` instead of silently trying that profile.
2026-01-07 02:52:28 +01:00
### `models set <model>`
2026-01-31 21:13:13 +09:00
2026-01-09 12:44:23 +00:00
Set `agents.defaults.model.primary` .
2026-01-07 02:52:28 +01:00
### `models set-image <model>`
2026-01-31 21:13:13 +09:00
2026-01-09 12:44:23 +00:00
Set `agents.defaults.imageModel.primary` .
2026-01-07 02:52:28 +01:00
### `models aliases list|add|remove`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `list` : `--json` , `--plain`
- `add <alias> <model>`
- `remove <alias>`
### `models fallbacks list|add|remove|clear`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `list` : `--json` , `--plain`
- `add <model>`
- `remove <model>`
- `clear`
### `models image-fallbacks list|add|remove|clear`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `list` : `--json` , `--plain`
- `add <model>`
- `remove <model>`
- `clear`
### `models scan`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--min-params <b>`
- `--max-age-days <days>`
- `--provider <name>`
- `--max-candidates <n>`
- `--timeout <ms>`
- `--concurrency <n>`
2026-01-11 02:24:35 +00:00
- `--no-probe`
2026-01-07 02:52:28 +01:00
- `--yes`
- `--no-input`
- `--set-default`
- `--set-image`
- `--json`
2026-03-30 09:51:17 +09:00
### `models auth add|login|login-github-copilot|setup-token|paste-token`
2026-01-31 21:13:13 +09:00
2026-01-11 02:24:35 +00:00
Options:
2026-01-31 21:13:13 +09:00
2026-04-04 08:10:18 +01:00
- `add` : interactive auth helper (provider auth flow or token paste)
2026-03-30 09:51:17 +09:00
- `login` : `--provider <name>` , `--method <method>` , `--set-default`
2026-04-04 08:10:18 +01:00
- `login-github-copilot` : GitHub Copilot OAuth login flow (`--yes` )
2026-04-04 15:46:13 +09:00
- `setup-token` : `--provider <name>` , `--yes`
2026-01-11 02:24:35 +00:00
- `paste-token` : `--provider <name>` , `--profile-id <id>` , `--expires-in <duration>`
2026-04-04 07:50:13 +01:00
Notes:
- `setup-token` and `paste-token` are generic token commands for providers that expose token auth methods.
2026-04-04 22:05:05 +01:00
- `setup-token` requires an interactive TTY and runs the provider's token-auth method.
- `paste-token` prompts for the token value and defaults to auth profile id `<provider>:manual` when `--profile-id` is omitted.
2026-04-06 15:30:49 +01:00
- Anthropic `setup-token` / `paste-token` remain available as a supported OpenClaw token path, but OpenClaw now prefers Claude CLI reuse and `claude -p` when available.
2026-04-04 07:50:13 +01:00
2026-01-11 02:24:35 +00:00
### `models auth order get|set|clear`
2026-01-31 21:13:13 +09:00
2026-01-11 02:24:35 +00:00
Options:
2026-01-31 21:13:13 +09:00
2026-01-11 02:24:35 +00:00
- `get` : `--provider <name>` , `--agent <id>` , `--json`
- `set` : `--provider <name>` , `--agent <id>` , `<profileIds...>`
- `clear` : `--provider <name>` , `--agent <id>`
2026-01-24 04:01:45 +00:00
## System
2026-01-07 02:52:28 +01:00
2026-01-24 04:01:45 +00:00
### `system event`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Enqueue a system event and optionally trigger a heartbeat (Gateway RPC).
Required:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--text <text>`
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--mode <now|next-heartbeat>`
- `--json`
- `--url` , `--token` , `--timeout` , `--expect-final`
2026-01-24 04:01:45 +00:00
### `system heartbeat last|enable|disable`
2026-01-31 21:13:13 +09:00
2026-01-24 04:01:45 +00:00
Heartbeat controls (Gateway RPC).
Options:
2026-01-31 21:13:13 +09:00
2026-01-24 04:01:45 +00:00
- `--json`
- `--url` , `--token` , `--timeout` , `--expect-final`
### `system presence`
2026-01-31 21:13:13 +09:00
2026-01-24 04:01:45 +00:00
List system presence entries (Gateway RPC).
Options:
2026-01-31 21:13:13 +09:00
2026-01-24 04:01:45 +00:00
- `--json`
- `--url` , `--token` , `--timeout` , `--expect-final`
## Cron
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Manage scheduled jobs (Gateway RPC). See [/automation/cron-jobs ](/automation/cron-jobs ).
Subcommands:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `cron status [--json]`
2026-01-08 01:16:50 +01:00
- `cron list [--all] [--json]` (table output by default; use `--json` for raw)
2026-01-08 01:10:44 +01:00
- `cron add` (alias: `create` ; requires `--name` and exactly one of `--at` | `--every` | `--cron` , and exactly one payload of `--system-event` | `--message` )
2026-01-07 02:52:28 +01:00
- `cron edit <id>` (patch fields)
2026-01-08 01:10:44 +01:00
- `cron rm <id>` (aliases: `remove` , `delete` )
2026-01-07 02:52:28 +01:00
- `cron enable <id>`
- `cron disable <id>`
- `cron runs --id <id> [--limit <n>]`
2026-04-04 08:22:24 +01:00
- `cron run <id> [--due]`
2026-01-07 02:52:28 +01:00
All `cron` commands accept `--url` , `--token` , `--timeout` , `--expect-final` .
2026-04-04 14:26:46 +01:00
`cron add|edit --model ...` uses that selected allowed model for the job. If
the model is not allowed, cron warns and falls back to the job's agent/default
model selection instead. Configured fallback chains still apply, but a plain
model override with no explicit per-job fallback list no longer appends the
agent primary as a hidden extra retry target.
2026-01-18 07:44:28 +00:00
## Node host
2026-04-04 08:57:20 +01:00
### `node`
2026-01-18 07:44:28 +00:00
`node` runs a **headless node host ** or manages it as a background service. See
2026-01-30 03:15:10 +01:00
[`openclaw node` ](/cli/node ).
2026-01-18 07:44:28 +00:00
Subcommands:
2026-01-31 21:13:13 +09:00
2026-01-22 23:07:58 +00:00
- `node run --host <gateway-host> --port 18789`
2026-01-21 16:48:31 +00:00
- `node status`
- `node install [--host <gateway-host>] [--port <port>] [--tls] [--tls-fingerprint <sha256>] [--node-id <id>] [--display-name <name>] [--runtime <node|bun>] [--force]`
- `node uninstall`
- `node stop`
- `node restart`
2026-01-18 07:44:28 +00:00
2026-03-07 18:28:32 -06:00
Auth notes:
2026-03-10 21:41:56 -05:00
- `node` resolves gateway auth from env/config (no `--token` /`--password` flags): `OPENCLAW_GATEWAY_TOKEN` / `OPENCLAW_GATEWAY_PASSWORD` , then `gateway.auth.*` . In local mode, node host intentionally ignores `gateway.remote.*` ; in `gateway.mode=remote` , `gateway.remote.*` participates per remote precedence rules.
2026-03-22 22:13:01 -07:00
- Node-host auth resolution only honors `OPENCLAW_GATEWAY_*` env vars.
2026-03-07 18:28:32 -06:00
2026-01-07 02:52:28 +01:00
## Nodes
`nodes` talks to the Gateway and targets paired nodes. See [/nodes ](/nodes ).
Common options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--url` , `--token` , `--timeout` , `--json`
Subcommands:
2026-01-31 21:13:13 +09:00
2026-01-21 04:52:51 +00:00
- `nodes status [--connected] [--last-connected <duration>]`
2026-01-07 02:52:28 +01:00
- `nodes describe --node <id|name|ip>`
2026-01-21 04:52:51 +00:00
- `nodes list [--connected] [--last-connected <duration>]`
2026-01-07 02:52:28 +01:00
- `nodes pending`
- `nodes approve <requestId>`
- `nodes reject <requestId>`
- `nodes rename --node <id|name|ip> --name <displayName>`
- `nodes invoke --node <id|name|ip> --command <command> [--params <json>] [--invoke-timeout <ms>] [--idempotency-key <key>]`
- `nodes notify --node <id|name|ip> [--title <text>] [--body <text>] [--sound <name>] [--priority <passive|active|timeSensitive>] [--delivery <system|overlay|auto>] [--invoke-timeout <ms>]` (mac only)
Camera:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `nodes camera list --node <id|name|ip>`
- `nodes camera snap --node <id|name|ip> [--facing front|back|both] [--device-id <id>] [--max-width <px>] [--quality <0-1>] [--delay-ms <ms>] [--invoke-timeout <ms>]`
- `nodes camera clip --node <id|name|ip> [--facing front|back] [--device-id <id>] [--duration <ms|10s|1m>] [--no-audio] [--invoke-timeout <ms>]`
Canvas + screen:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `nodes canvas snapshot --node <id|name|ip> [--format png|jpg|jpeg] [--max-width <px>] [--quality <0-1>] [--invoke-timeout <ms>]`
2026-01-08 07:16:05 +01:00
- `nodes canvas present --node <id|name|ip> [--target <urlOrPath>] [--x <px>] [--y <px>] [--width <px>] [--height <px>] [--invoke-timeout <ms>]`
- `nodes canvas hide --node <id|name|ip> [--invoke-timeout <ms>]`
- `nodes canvas navigate <url> --node <id|name|ip> [--invoke-timeout <ms>]`
- `nodes canvas eval [<js>] --node <id|name|ip> [--js <code>] [--invoke-timeout <ms>]`
- `nodes canvas a2ui push --node <id|name|ip> (--jsonl <path> | --text <text>) [--invoke-timeout <ms>]`
- `nodes canvas a2ui reset --node <id|name|ip> [--invoke-timeout <ms>]`
2026-01-07 02:52:28 +01:00
- `nodes screen record --node <id|name|ip> [--screen <index>] [--duration <ms|10s>] [--fps <n>] [--no-audio] [--out <path>] [--invoke-timeout <ms>]`
Location:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `nodes location get --node <id|name|ip> [--max-age <ms>] [--accuracy <coarse|balanced|precise>] [--location-timeout <ms>] [--invoke-timeout <ms>]`
## Browser
2026-01-30 03:15:10 +01:00
Browser control CLI (dedicated Chrome/Brave/Edge/Chromium). See [`openclaw browser` ](/cli/browser ) and the [Browser tool ](/tools/browser ).
2026-01-07 02:52:28 +01:00
Common options:
2026-01-31 21:13:13 +09:00
2026-04-04 08:18:14 +01:00
- `--url` , `--token` , `--timeout` , `--expect-final` , `--json`
2026-01-07 02:52:28 +01:00
- `--browser-profile <name>`
Manage:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `browser status`
- `browser start`
- `browser stop`
- `browser reset-profile`
- `browser tabs`
- `browser open <url>`
- `browser focus <targetId>`
- `browser close [targetId]`
- `browser profiles`
2026-04-04 08:18:14 +01:00
- `browser create-profile --name <name> [--color <hex>] [--cdp-url <url>] [--driver existing-session] [--user-data-dir <path>]`
2026-01-07 02:52:28 +01:00
- `browser delete-profile --name <name>`
Inspect:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `browser screenshot [targetId] [--full-page] [--ref <ref>] [--element <selector>] [--type png|jpeg]`
2026-01-12 08:36:23 +00:00
- `browser snapshot [--format aria|ai] [--target-id <id>] [--limit <n>] [--interactive] [--compact] [--depth <n>] [--selector <sel>] [--out <path>]`
2026-01-07 02:52:28 +01:00
Actions:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `browser navigate <url> [--target-id <id>]`
- `browser resize <width> <height> [--target-id <id>]`
- `browser click <ref> [--double] [--button <left|right|middle>] [--modifiers <csv>] [--target-id <id>]`
- `browser type <ref> <text> [--submit] [--slowly] [--target-id <id>]`
- `browser press <key> [--target-id <id>]`
- `browser hover <ref> [--target-id <id>]`
- `browser drag <startRef> <endRef> [--target-id <id>]`
- `browser select <ref> <values...> [--target-id <id>]`
- `browser upload <paths...> [--ref <ref>] [--input-ref <ref>] [--element <selector>] [--target-id <id>] [--timeout-ms <ms>]`
- `browser fill [--fields <json>] [--fields-file <path>] [--target-id <id>]`
- `browser dialog --accept|--dismiss [--prompt <text>] [--target-id <id>] [--timeout-ms <ms>]`
- `browser wait [--time <ms>] [--text <value>] [--text-gone <value>] [--target-id <id>]`
- `browser evaluate --fn <code> [--ref <ref>] [--target-id <id>]`
- `browser console [--level <error|warn|info>] [--target-id <id>]`
- `browser pdf [--target-id <id>]`
2026-04-04 08:56:23 +01:00
## Voice call
### `voicecall`
Plugin-provided voice-call utilities. Only appears when the voice-call plugin is installed and enabled. See [`openclaw voicecall` ](/cli/voicecall ).
Common commands:
- `voicecall call --to <phone> --message <text> [--mode notify|conversation]`
- `voicecall start --to <phone> [--message <text>] [--mode notify|conversation]`
- `voicecall continue --call-id <id> --message <text>`
- `voicecall speak --call-id <id> --message <text>`
- `voicecall end --call-id <id>`
- `voicecall status --call-id <id>`
- `voicecall tail [--file <path>] [--since <n>] [--poll <ms>]`
- `voicecall latency [--file <path>] [--last <n>]`
- `voicecall expose [--mode off|serve|funnel] [--path <path>] [--port <port>] [--serve-path <path>]`
2026-01-07 02:52:28 +01:00
## Docs search
2026-04-04 08:57:20 +01:00
### `docs`
Search the live OpenClaw docs index.
2026-01-07 02:52:28 +01:00
### `docs [query...]`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Search the live docs index.
## TUI
### `tui`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Open the terminal UI connected to the Gateway.
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--url <url>`
- `--token <token>`
- `--password <password>`
- `--session <key>`
- `--deliver`
- `--thinking <level>`
2026-01-09 16:25:11 +01:00
- `--message <text>`
2026-01-09 21:22:41 +01:00
- `--timeout-ms <ms>` (defaults to `agents.defaults.timeoutSeconds` )
2026-01-07 02:52:28 +01:00
- `--history-limit <n>`