2026-01-15 06:12:54 +00:00
|
|
|
|
---
|
2026-01-30 03:15:10 +01:00
|
|
|
|
summary: "CLI reference for `openclaw nodes` (list/status/approve/invoke, camera/canvas/screen)"
|
2026-01-15 06:12:54 +00:00
|
|
|
|
read_when:
|
|
|
|
|
|
- You’re managing paired nodes (cameras, screen, canvas)
|
|
|
|
|
|
- You need to approve requests or invoke node commands
|
2026-01-31 16:04:03 -05:00
|
|
|
|
title: "nodes"
|
2026-01-15 06:12:54 +00:00
|
|
|
|
---
|
|
|
|
|
|
|
2026-01-30 03:15:10 +01:00
|
|
|
|
# `openclaw nodes`
|
2026-01-15 06:12:54 +00:00
|
|
|
|
|
|
|
|
|
|
Manage paired nodes (devices) and invoke node capabilities.
|
|
|
|
|
|
|
|
|
|
|
|
Related:
|
2026-01-31 21:13:13 +09:00
|
|
|
|
|
2026-01-15 06:12:54 +00:00
|
|
|
|
- Nodes overview: [Nodes](/nodes)
|
|
|
|
|
|
- Camera: [Camera nodes](/nodes/camera)
|
|
|
|
|
|
- Images: [Image nodes](/nodes/images)
|
|
|
|
|
|
|
2026-01-22 23:07:58 +00:00
|
|
|
|
Common options:
|
2026-01-31 21:13:13 +09:00
|
|
|
|
|
2026-01-22 23:07:58 +00:00
|
|
|
|
- `--url`, `--token`, `--timeout`, `--json`
|
|
|
|
|
|
|
2026-01-15 06:12:54 +00:00
|
|
|
|
## Common commands
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-01-30 03:15:10 +01:00
|
|
|
|
openclaw nodes list
|
|
|
|
|
|
openclaw nodes list --connected
|
|
|
|
|
|
openclaw nodes list --last-connected 24h
|
|
|
|
|
|
openclaw nodes pending
|
|
|
|
|
|
openclaw nodes approve <requestId>
|
|
|
|
|
|
openclaw nodes status
|
|
|
|
|
|
openclaw nodes status --connected
|
|
|
|
|
|
openclaw nodes status --last-connected 24h
|
2026-01-15 06:12:54 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-21 03:02:50 +00:00
|
|
|
|
`nodes list` prints pending/paired tables. Paired rows include the most recent connect age (Last Connect).
|
2026-01-21 04:39:11 +00:00
|
|
|
|
Use `--connected` to only show currently-connected nodes. Use `--last-connected <duration>` to
|
|
|
|
|
|
filter to nodes that connected within a duration (e.g. `24h`, `7d`).
|
2026-01-21 03:02:50 +00:00
|
|
|
|
|
2026-01-15 06:12:54 +00:00
|
|
|
|
## Invoke / run
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-01-30 03:15:10 +01:00
|
|
|
|
openclaw nodes invoke --node <id|name|ip> --command <command> --params <json>
|
|
|
|
|
|
openclaw nodes run --node <id|name|ip> <command...>
|
|
|
|
|
|
openclaw nodes run --raw "git status"
|
|
|
|
|
|
openclaw nodes run --agent main --node <id|name|ip> --raw "git status"
|
2026-01-15 06:12:54 +00:00
|
|
|
|
```
|
2026-01-21 20:24:12 +00:00
|
|
|
|
|
2026-01-22 23:07:58 +00:00
|
|
|
|
Invoke flags:
|
2026-01-31 21:13:13 +09:00
|
|
|
|
|
2026-01-22 23:07:58 +00:00
|
|
|
|
- `--params <json>`: JSON object string (default `{}`).
|
|
|
|
|
|
- `--invoke-timeout <ms>`: node invoke timeout (default `15000`).
|
|
|
|
|
|
- `--idempotency-key <key>`: optional idempotency key.
|
|
|
|
|
|
|
2026-01-21 20:24:12 +00:00
|
|
|
|
### Exec-style defaults
|
|
|
|
|
|
|
|
|
|
|
|
`nodes run` mirrors the model’s exec behavior (defaults + approvals):
|
|
|
|
|
|
|
|
|
|
|
|
- Reads `tools.exec.*` (plus `agents.list[].tools.exec.*` overrides).
|
|
|
|
|
|
- Uses exec approvals (`exec.approval.request`) before invoking `system.run`.
|
|
|
|
|
|
- `--node` can be omitted when `tools.exec.node` is set.
|
2026-01-22 23:07:58 +00:00
|
|
|
|
- Requires a node that advertises `system.run` (macOS companion app or headless node host).
|
2026-01-21 20:24:12 +00:00
|
|
|
|
|
|
|
|
|
|
Flags:
|
2026-01-31 21:13:13 +09:00
|
|
|
|
|
2026-01-22 23:07:58 +00:00
|
|
|
|
- `--cwd <path>`: working directory.
|
2026-02-14 20:44:25 +01:00
|
|
|
|
- `--env <key=val>`: env override (repeatable). Note: node hosts ignore `PATH` overrides (and `tools.exec.pathPrepend` is not applied to node hosts).
|
2026-01-22 23:07:58 +00:00
|
|
|
|
- `--command-timeout <ms>`: command timeout.
|
|
|
|
|
|
- `--invoke-timeout <ms>`: node invoke timeout (default `30000`).
|
|
|
|
|
|
- `--needs-screen-recording`: require screen recording permission.
|
2026-01-21 20:24:12 +00:00
|
|
|
|
- `--raw <command>`: run a shell string (`/bin/sh -lc` or `cmd.exe /c`).
|
|
|
|
|
|
- `--agent <id>`: agent-scoped approvals/allowlists (defaults to configured agent).
|
|
|
|
|
|
- `--ask <off|on-miss|always>`, `--security <deny|allowlist|full>`: overrides.
|