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 )
- [`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-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 )
- [`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-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-01-09 13:38:51 +01:00
Palette source of truth: `src/terminal/palette.ts` (aka “lobster seam”).
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-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
migrate
2026-01-11 10:23:52 +00:00
reset
uninstall
2026-01-10 20:32:19 +01:00
update
2026-01-13 06:16:43 +00:00
channels
2026-01-08 01:10:44 +01:00
list
status
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-01-08 07:20:02 +01:00
skills
list
info
check
2026-01-11 12:11:12 +00:00
plugins
list
info
install
enable
disable
doctor
2026-01-12 11:22:56 +00:00
memory
status
index
search
2026-01-09 13:38:51 +01:00
message
2026-01-07 02:52:28 +01:00
agent
2026-01-07 09:58:54 +01:00
agents
list
add
delete
2026-01-18 08:02:42 +00:00
acp
2026-01-07 02:52:28 +01:00
status
health
sessions
gateway
call
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-01-11 02:24:35 +00:00
auth add|setup-token|paste-token
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-01-20 10:29:13 +00:00
devices
2026-01-18 07:44:28 +00:00
node
2026-01-21 17:45:12 +00:00
run
status
install
uninstall
2026-01-18 07:44:28 +00:00
start
2026-01-21 17:45:12 +00:00
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.
- `openclaw security audit --fix` — tighten safe defaults and chmod state/config.
2026-01-15 04:49:37 +00:00
2026-02-24 16:26:51 -06:00
## Secrets
- `openclaw secrets reload` — re-resolve refs and atomically swap the runtime snapshot.
2026-02-25 20:29:39 -06:00
- `openclaw secrets audit` — scan for plaintext residues, unresolved refs, and precedence drift.
2026-02-25 23:17:31 -06:00
- `openclaw secrets configure` — interactive helper for provider setup + SecretRef mapping + preflight/apply.
2026-02-25 20:29:39 -06:00
- `openclaw secrets apply --from <plan.json>` — apply a previously generated plan (`--dry-run` supported).
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).
- `openclaw plugins info <id>` — show details for a plugin.
- `openclaw plugins install <path|.tgz|npm-spec>` — install a plugin (or add a plugin path to `plugins.load.paths` ).
- `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-01-30 03:15:10 +01:00
- `openclaw memory status` — show index stats.
- `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-01-12 11:22:56 +00:00
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
### `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-01-07 02:52:28 +01:00
- `--wizard` : run the onboarding wizard.
- `--non-interactive` : run wizard without prompts.
- `--mode <local|remote>` : wizard mode.
- `--remote-url <url>` : remote Gateway URL.
- `--remote-token <token>` : remote Gateway token.
2026-01-08 05:29:56 +01:00
Wizard auto-runs when any wizard flags are present (`--non-interactive` , `--mode` , `--remote-url` , `--remote-token` ).
2026-01-07 02:52:28 +01:00
### `onboard`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Interactive wizard to set up gateway, workspace, and skills.
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--workspace <dir>`
2026-02-26 17:35:55 +01:00
- `--reset` (reset config + credentials + sessions before wizard)
- `--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-11 16:31:06 +11:00
- `--auth-choice <setup-token|token|chutes|openai-codex|openai-api-key|openrouter-api-key|ai-gateway-api-key|moonshot-api-key|moonshot-api-key-cn|kimi-code-api-key|synthetic-api-key|venice-api-key|gemini-api-key|zai-api-key|mistral-api-key|apiKey|minimax-api|minimax-api-lightning|opencode-zen|opencode-go|custom-api-key|skip>`
2026-01-09 17:50:34 +01:00
- `--token-provider <id>` (non-interactive; used with `--auth-choice token` )
- `--token <token>` (non-interactive; used with `--auth-choice token` )
- `--token-profile-id <id>` (non-interactive; default: `<provider>:manual` )
- `--token-expires-in <duration>` (non-interactive; e.g. `365d` , `12h` )
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-02-12 03:48:45 +08: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` )
- `--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`
- `--skip-health`
2026-01-11 02:24:35 +00:00
- `--skip-ui`
2026-01-13 07:58:47 +00:00
- `--node-manager <npm|pnpm|bun>` (pnpm recommended; bun not recommended for Gateway runtime)
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-01-16 06:57:16 +00:00
### `config`
2026-01-31 21:13:13 +09:00
2026-03-02 13:45:51 +08:00
Non-interactive config helpers (get/set/unset/file/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).
- `config set <path> <value>` : set a value (JSON5 or raw string).
- `config unset <path>` : remove a value.
2026-03-02 12:33:20 +08:00
- `config file` : print the active config file path.
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-01-07 02:52:28 +01:00
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-01-23 16:45:37 -06:00
Manage chat channel accounts (WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage/MS 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-01-30 03:15:10 +01:00
- `channels status` : check gateway reachability and channel health (`--probe` runs extra checks; use `openclaw health` or `openclaw status --deep` for gateway health probes).
- 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-02-26 04:06:03 -05:00
- When adding a non-default account to a channel still using single-account top-level config, OpenClaw moves account-scoped values into `channels.<channel>.accounts.default` before writing the new account.
- 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-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-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-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-01-08 07:20:02 +01:00
- `skills list` : list skills (default when no subcommand).
- `skills info <name>` : show details for one skill.
- `skills check` : summary of ready vs missing requirements.
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-01-30 21:01:02 +01:00
Tip: use `npx clawhub` to search, install, and sync 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-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-01-17 07:08:04 +00:00
### `webhooks gmail`
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
Gmail Pub/Sub hook setup + runner. See [/automation/gmail-pubsub ](/automation/gmail-pubsub ).
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
### `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-01-07 02:52:28 +01:00
- `--apply` : install/update CoreDNS config (requires sudo; macOS only).
## 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).
Required:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--message <text>`
Options:
2026-01-31 21:13:13 +09:00
2026-01-07 02:52:28 +01:00
- `--to <dest>` (for session key and optional delivery)
- `--session-id <id>`
2026-01-07 17:17:38 -08:00
- `--thinking <off|minimal|low|medium|high|xhigh>` (GPT-5.2 + Codex models only)
2026-01-17 05:33:27 +00:00
- `--verbose <on|full|off>`
2026-01-21 18:40:56 -05:00
- `--channel <whatsapp|telegram|discord|slack|mattermost|signal|imessage|msteams>`
2026-01-07 02:52:28 +01:00
- `--local`
- `--deliver`
- `--json`
- `--timeout <seconds>`
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).
#### `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.
#### `agents bindings`
List routing bindings.
Options:
- `--agent <id>`
- `--json`
#### `agents bind`
Add routing bindings for an agent.
Options:
- `--agent <id>`
- `--bind <channel[:accountId]>` (repeatable)
- `--json`
#### `agents unbind`
Remove routing bindings for an agent.
Options:
- `--agent <id>`
- `--bind <channel[:accountId]>` (repeatable)
- `--all`
- `--json`
2026-01-08 07:49:07 +01:00
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-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.
See [`acp` ](/cli/acp ) for full options and examples.
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-01-13 06:16:43 +00:00
- `--deep` (probe channels)
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-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-01-17 09:33:56 +00:00
- Providers: Anthropic, GitHub Copilot, OpenAI Codex OAuth, plus Gemini CLI/Antigravity when those provider plugins are enabled.
2026-01-07 11:42:41 +01:00
- If no matching credentials exist, usage is hidden.
- 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>`
- `--verbose`
### `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-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-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-01-11 02:24:35 +00:00
- `--claude-cli-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` ).
- `gateway status` supports `--no-probe` , `--deep` , 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-01-21 17:45:12 +00:00
- `gateway status` prints which config path the CLI uses vs which config the service likely uses (service env), plus the resolved probe target URL.
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-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-01-09 13:38:51 +01:00
Notes:
2026-01-31 21:13:13 +09:00
2026-01-09 13:38:51 +01:00
- TTY sessions render a colorized, structured view; non-TTY falls back to plain text.
- `--json` emits line-delimited JSON (one log event per line).
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-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-01-07 02:52:28 +01:00
- `gateway call <method> [--params <json>]`
- `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-01-08 01:29:56 +01:00
Common RPCs:
2026-01-31 21:13:13 +09:00
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-01-07 02:52:28 +01:00
## Models
See [/concepts/models ](/concepts/models ) for fallback behavior and scanning strategy.
2026-03-03 00:02:25 +00:00
Anthropic setup-token (supported):
2026-01-09 15:29:50 +01:00
```bash
claude setup-token
2026-01-30 03:15:10 +01:00
openclaw models auth setup-token --provider anthropic
openclaw models status
2026-01-09 15:29:50 +01:00
```
2026-03-03 00:02:25 +00:00
Policy note: this is technical compatibility. Anthropic has blocked some
subscription usage outside Claude Code in the past; verify current Anthropic
terms before relying on setup-token in production.
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-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-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-01-11 02:24:35 +00:00
### `models auth add|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-01-11 02:24:35 +00:00
- `add` : interactive auth helper
- `setup-token` : `--provider <name>` (default `anthropic` ), `--yes`
- `paste-token` : `--provider <name>` , `--profile-id <id>` , `--expires-in <duration>`
### `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>]`
- `cron run <id> [--force]`
All `cron` commands accept `--url` , `--token` , `--timeout` , `--expect-final` .
2026-01-18 07:44:28 +00:00
## Node host
`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-07 18:28:32 -06:00
- Legacy `CLAWDBOT_GATEWAY_*` env vars are intentionally ignored for node-host auth resolution.
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>]`
2026-01-18 07:44:28 +00:00
- `nodes run --node <id|name|ip> [--cwd <path>] [--env KEY=VAL] [--command-timeout <ms>] [--needs-screen-recording] [--invoke-timeout <ms>] <command...>` (mac node or headless node host)
2026-01-07 02:52:28 +01:00
- `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-01-27 03:23:42 +00:00
- `--url` , `--token` , `--timeout` , `--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`
- `browser create-profile --name <name> [--color <hex>] [--cdp-url <url>]`
- `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>]`
## Docs search
### `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>`