Nodes 导读
Nodes:这只外接小帮手能看见什么
Nodes 这页讲的是接在 OpenClaw 外面的眼睛、耳朵或小手。你先看它能接住什么输入、会吐出什么结果、以及怎样和主会话搭桥。原文最响的一记鼓点,其实是:A **node** is a companion device (macOS/iOS/Android/headless) that connects to the 门口的小…。
先听这页的人话版
Nodes
这一页不是在堆术语,它像把“Nodes”这台小机器搬到桌上,当着你的面拆开给你看。你先不用全记住,先抓住它到底在忙什么:A **node** is a companion device (macOS/iOS/Android/headless) that connects to the 门口的小门卫 **Web…。
如果把这页当成“给普通人看的版本”,你最应该带走的是:它到底在教你一件什么事、什么时候要这样做、以及哪里最容易踩坑。
第 1 站
Start Here
这一节更像安装或配置步骤,重点不是概念,而是“按什么顺序做才不会卡住”。
这一节更像安装或配置步骤,重点不是概念,而是“按什么顺序做才不会卡住”。
很多文档看起来长,其实是在防你漏掉前置条件。
真正照做时,先找前置条件,再找必填项,最后看验证方法。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:A **node** is a companion device (macOS/iOS/Android/headless) that connects to the 门口的小门卫 **WebSocket** (same port as o…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:A **node** is a companion device (macOS/iOS/Android/headless) that connects to the 门口的小门卫 **WebSocket** (same port as o…。
A **node** is a companion device (macOS/iOS/Android/headless) that connects to the Gateway **WebSocket** (same port as operators) with role: "node" and exposes a command surface (e.g. canvas.*, camera.*, device.*, notifications.*, system.*) via node.invoke. Protocol details: Gateway protocol.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Legacy transport: Bridge protocol (TCP JSONL; historical only for current nodes).
Legacy transport: Bridge protocol (TCP JSONL; historical only for current nodes).
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:macOS can also run in **node mode**: the menubar app connects to the 门口的小门卫's WS 大房子服务器 and exposes its local canvas/ca…。
macOS can also run in **node mode**: the menubar app connects to the Gateway's WS server and exposes its local canvas/camera commands as a node (so openclaw nodes … works against this Mac). In remote gateway mode, browser automation is handled by the CLI node host (openclaw node run or the installed node service), not by the native app node.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
Notes:
这一串条目别硬背,把它当成“Start Here”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:Nodes are **peripherals**, not 门口的小门卫s. T…、Telegram/WhatsApp/etc. 小纸条消息s land on the…、Troubleshooting runbook: /nodes/troublesh…。
- Nodes are **peripherals**, not gateways. They don't run the gateway service.
- Telegram/WhatsApp/etc. messages land on the **gateway**, not on nodes.
- Troubleshooting runbook: /nodes/troubleshooting
第 2 站
Pairing + status
这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。
这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。
你理解的是能力边界,不只是功能名字。
如果这节里同时出现命令、配置和例子,优先先看例子,再回头看配置。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:**WS nodes use device pairing.** Nodes present a device identity during connect; the 门口的小门卫 creates a device pairing re…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:**WS nodes use device pairing.** Nodes present a device identity during connect; the 门口的小门卫 creates a device pairing re…。
**WS nodes use device pairing.** Nodes present a device identity during connect; the Gateway creates a device pairing request for role: node. Approve via the devices CLI (or UI).
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Quick CLI:。
Quick CLI:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw devices list”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw devices approve <requestId>”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw devices reject <requestId>”。你可以把它想成一句说出口就要执行的差事。
openclaw devices list
openclaw devices approve <requestId>
openclaw devices reject <requestId>
openclaw nodes status
openclaw nodes describe --node <idOrNameOrIp>
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:If a node retries with changed auth details (role/scopes/public key), the prior pending request is superseded and a new…。
If a node retries with changed auth details (role/scopes/public key), the prior pending request is superseded and a new requestId is created. Re-run openclaw devices list before approving.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
Notes:
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:rotation stays inside that contract; it cannot upgrade a paired node into a different role that pairing approval never…。
rotation stays inside that contract; it cannot upgrade a paired node into a different role that pairing approval never granted.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:node pairing store; it does **not** gate the WS connect handshake.
node pairing store; it does **not** gate the WS connect handshake.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:separate 门口的小门卫-owned node pairing store.
separate gateway-owned node pairing store.
这一串条目别硬背,把它当成“Pairing + status”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:nodes status marks a node as **paired** w…、The device pairing record is the durable…、node.pair.* (CLI: openclaw nodes pending/…、openclaw nodes remove --node <id name ip>…。
nodes statusmarks a node as **paired** when its device pairing role includesnode.- The device pairing record is the durable approved-role contract. Token
node.pair.*(CLI:openclaw nodes pending/approve/reject/remove/rename) is a separate gateway-ownedopenclaw nodes remove --node <id|name|ip>deletes stale entries from that- Approval scope follows the pending request's declared commands:
- commandless request:
operator.pairing - non-exec node commands:
operator.pairing+operator.write system.run/system.run.prepare/system.which:operator.pairing+operator.admin
第 3 站
Remote node host (system.run)
这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。
这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。
你理解的是能力边界,不只是功能名字。
如果这节里同时出现命令、配置和例子,优先先看例子,再回头看配置。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Use a **node host** when your 门口的小门卫 runs on one machine and you want 魔法口令s to execute on another. The 聪明脑袋模型 still tal…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Use a **node host** when your 门口的小门卫 runs on one machine and you want 魔法口令s to execute on another. The 聪明脑袋模型 still tal…。
Use a **node host** when your Gateway runs on one machine and you want commands to execute on another. The model still talks to the **gateway**; the gateway forwards exec calls to the **node host** when host=node is selected.
第 4 站
What runs where
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。
你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Approval note: file operand and denies the run if that file changes before execution. approval-backed execution is deni…。
这一串条目别硬背,把它当成“What runs where”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:**门口的小门卫 host**: receives 小纸条消息s, runs th…、**Node host**: executes system.run/system…、**Approvals**: enforced on the node host…。
- **Gateway host**: receives messages, runs the model, routes tool calls.
- **Node host**: executes
system.run/system.whichon the node machine. - **Approvals**: enforced on the node host via
~/.openclaw/exec-approvals.json.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Approval note:。
Approval note:
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:file operand and denies the run if that file changes before execution.
file operand and denies the run if that file changes before execution.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:approval-backed execution is denied instead of pretending full runtime coverage. Use sandboxing, separate hosts, or an…。
approval-backed execution is denied instead of pretending full runtime coverage. Use sandboxing, separate hosts, or an explicit trusted allowlist/full workflow for broader interpreter semantics.
这一串条目别硬背,把它当成“What runs where”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:Approval-backed node runs bind exact requ…、For direct shell/runtime file executions,…、If OpenClaw cannot identify exactly one c…。
- Approval-backed node runs bind exact request context.
- For direct shell/runtime file executions, OpenClaw also best-effort binds one concrete local
- If OpenClaw cannot identify exactly one concrete local file for an interpreter/runtime command,
第 5 站
Start a node host (foreground)
这一节主要在解释“Start a node host (foreground)”到底是干什么的,以及你什么时候会遇到它。
这一节主要在解释“Start a node host (foreground)”到底是干什么的,以及你什么时候会遇到它。
如果你是第一次接触 OpenClaw,这一节最值得看的不是术语本身,而是它背后的使用场景和限制。
真正动手时,先看它有没有默认值、有没有必须打开的选项、以及会不会影响安全边界。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:On the node machine:。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:On the node machine:。
On the node machine:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw node run --host <gateway-host> --port 18789 --display-name "Build Node"”。你可以把它想成一句说出口就要执行的差事。
openclaw node run --host <gateway-host> --port 18789 --display-name "Build Node"
第 6 站
Remote 门口的小门卫 via SSH tunnel (loopback bind)
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。
你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:If the 门口的小门卫 binds to loopback (门口的小门卫.bind=loopback, default in local mode), remote node hosts cannot connect directl…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:If the 门口的小门卫 binds to loopback (门口的小门卫.bind=loopback, default in local mode), remote node hosts cannot connect directl…。
If the Gateway binds to loopback (gateway.bind=loopback, default in local mode), remote node hosts cannot connect directly. Create an SSH tunnel and point the node host at the local end of the tunnel.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Example (node host -> 门口的小门卫 host):。
Example (node host -> gateway host):
这是一串终端口令,像你站在控制台前,一下下按按钮让机器醒过来。
- 这里在给“# Terminal A (keep running)”挂牌子,告诉系统它该指向“forward local 18790 -> gateway 127.0.0.1:18789”。
- 这里在给“ssh -N -L 18790”挂牌子,告诉系统它该指向“127.0.0.1:18789 user@gateway-host”。
- 这里在给“# Terminal B”挂牌子,告诉系统它该指向“export the gateway token and connect through the tunnel”。
# Terminal A (keep running): forward local 18790 -> gateway 127.0.0.1:18789
ssh -N -L 18790:127.0.0.1:18789 user@gateway-host
# Terminal B: export the gateway token and connect through the tunnel
export OPENCLAW_GATEWAY_TOKEN="<gateway-token>"
openclaw node run --host 127.0.0.1 --port 18790 --display-name "Build Node"
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
Notes:
这一串条目别硬背,把它当成“Remote gateway via SSH tunnel (loopback bind)”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:openclaw node run supports token or 秘密口令…、Env vars are preferred: OPENCLAW_门口的小门卫_T…、设置说明书 fallback is 门口的小门卫.auth.token / 门口的…、In local mode, node host intentionally ig…。
openclaw node runsupports token or password auth.- Env vars are preferred:
OPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD. - Config fallback is
gateway.auth.token/gateway.auth.password. - In local mode, node host intentionally ignores
gateway.remote.token/gateway.remote.password. - In remote mode,
gateway.remote.token/gateway.remote.passwordare eligible per remote precedence rules. - If active local
gateway.auth.*SecretRefs are configured but unresolved, node-host auth fails closed. - Node-host auth resolution only honors
OPENCLAW_GATEWAY_*env vars.
第 7 站
Start a node host (service)
这一节主要在解释“Start a node host (service)”到底是干什么的,以及你什么时候会遇到它。
这一节主要在解释“Start a node host (service)”到底是干什么的,以及你什么时候会遇到它。
如果你是第一次接触 OpenClaw,这一节最值得看的不是术语本身,而是它背后的使用场景和限制。
真正动手时,先看它有没有默认值、有没有必须打开的选项、以及会不会影响安全边界。
这一小段像旁白,在提醒我们镜头已经切到下一站。
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw node install --host <gateway-host> --port 18789 --display-name "Build Node"”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw node start”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw node restart”。你可以把它想成一句说出口就要执行的差事。
openclaw node install --host <gateway-host> --port 18789 --display-name "Build Node"
openclaw node start
openclaw node restart
第 8 站
Pair + name
这一节更像安装或配置步骤,重点不是概念,而是“按什么顺序做才不会卡住”。
这一节更像安装或配置步骤,重点不是概念,而是“按什么顺序做才不会卡住”。
很多文档看起来长,其实是在防你漏掉前置条件。
真正照做时,先找前置条件,再找必填项,最后看验证方法。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:On the 门口的小门卫 host: If the node retries with changed auth details, re-run openclaw devices list and approve the current…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:On the 门口的小门卫 host:。
On the gateway host:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw devices list”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw devices approve <requestId>”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes status”。你可以把它想成一句说出口就要执行的差事。
openclaw devices list
openclaw devices approve <requestId>
openclaw nodes status
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:If the node retries with changed auth details, re-run openclaw devices list and approve the current requestId.
If the node retries with changed auth details, re-run openclaw devices list and approve the current requestId.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Naming options:。
Naming options:
这一串条目别硬背,把它当成“Pair + name”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:--display-name on openclaw node run / ope…、openclaw nodes rename --node <id name ip>…。
--display-nameonopenclaw node run/openclaw node install(persists in~/.openclaw/node.jsonon the node).openclaw nodes rename --node <id|name|ip> --name "Build Node"(gateway override).
第 9 站
Allowlist the 魔法口令s
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。
你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Exec approvals are **per node host**. Add allowlist entries from the 门口的小门卫: Approvals live on the node host at ~/.open…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Exec approvals are **per node host**. Add allowlist entries from the 门口的小门卫:。
Exec approvals are **per node host**. Add allowlist entries from the gateway:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw approvals allowlist add --node <id|name|ip> "/usr/bin/uname"”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw approvals allowlist add --node <id|name|ip> "/usr/bin/sw_vers"”。你可以把它想成一句说出口就要执行的差事。
openclaw approvals allowlist add --node <id|name|ip> "/usr/bin/uname"
openclaw approvals allowlist add --node <id|name|ip> "/usr/bin/sw_vers"
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Approvals live on the node host at ~/.openclaw/exec-approvals.json.
Approvals live on the node host at ~/.openclaw/exec-approvals.json.
第 10 站
Point exec at the node
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。
你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:设置说明书ure defaults (门口的小门卫 设置说明书): Or per session: Once set, any exec call with host=node runs on the node host (subject…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:设置说明书ure defaults (门口的小门卫 设置说明书):。
Configure defaults (gateway config):
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw config set tools.exec.host node”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw config set tools.exec.security allowlist”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw config set tools.exec.node "<id-or-name>"”。你可以把它想成一句说出口就要执行的差事。
openclaw config set tools.exec.host node
openclaw config set tools.exec.security allowlist
openclaw config set tools.exec.node "<id-or-name>"
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Or per session:。
Or per session:
这段像放在桌上的操作卡,谁来照着做,现场就会动起来。
- 这一行“/exec host=node security=allowlist node=<id-or-name>”是在给电脑递一张小纸条,告诉它眼下该做哪一步。
/exec host=node security=allowlist node=<id-or-name>
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Once set, any exec call with host=node runs on the node host (subject to the node allowlist/approvals).
Once set, any exec call with host=node runs on the node host (subject to the node allowlist/approvals).
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:host=auto will not implicitly choose the node on its own, but an explicit per-call host=node request is allowed from au…。
host=auto will not implicitly choose the node on its own, but an explicit per-call host=node request is allowed from auto. If you want node exec to be the default for the session, set tools.exec.host=node or /exec host=node ... explicitly.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Related:。
Related:
这一串条目别硬背,把它当成“Point exec at the node”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:Node host CLI、Exec 工具小帮手、Exec approvals。
第 11 站
Invoking 魔法口令s
这一节主要在解释“Invoking 魔法口令s”到底是干什么的,以及你什么时候会遇到它。
这一节主要在解释“Invoking 魔法口令s”到底是干什么的,以及你什么时候会遇到它。
如果你是第一次接触 OpenClaw,这一节最值得看的不是术语本身,而是它背后的使用场景和限制。
真正动手时,先看它有没有默认值、有没有必须打开的选项、以及会不会影响安全边界。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Low-level (raw RPC): Higher-level helpers exist for the common "give the 机器人朋友 a MEDIA attachment" workflows.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Low-level (raw RPC):。
Low-level (raw RPC):
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这里在给“openclaw nodes invoke --node <idOrNameOrIp> --command canvas.eval --params {javaScript”挂牌子,告诉系统它该指向“location.href}'”。
openclaw nodes invoke --node <idOrNameOrIp> --command canvas.eval --params '{"javaScript":"location.href"}'
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Higher-level helpers exist for the common "give the 机器人朋友 a MEDIA attachment" workflows.
Higher-level helpers exist for the common "give the agent a MEDIA attachment" workflows.
第 12 站
魔法口令 policy
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。
你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Node 魔法口令s must pass two gates before they can be invoked: 1. The node must declare the 魔法口令 in its WebSocket connect.魔…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Node 魔法口令s must pass two gates before they can be invoked:。
Node commands must pass two gates before they can be invoked:
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:1. The node must declare the 魔法口令 in its WebSocket connect.魔法口令s list. 2. The 门口的小门卫's platform policy must allow the d…。
1. The node must declare the command in its WebSocket connect.commands list. 2. The gateway's platform policy must allow the declared command.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Windows and macOS companion nodes allow safe declared 魔法口令s such as canvas.*, camera.list, location.get, and screen.sna…。
Windows and macOS companion nodes allow safe declared commands such as canvas.*, camera.list, location.get, and screen.snapshot by default. Trusted nodes that advertise the talk capability or declare talk.* commands also allow declared push-to-talk commands (talk.ptt.start, talk.ptt.stop, talk.ptt.cancel, talk.ptt.once) by default, independent of platform label. Dangerous or privacy-heavy commands such as camera.snap, camera.clip, and screen.record still require explicit opt-in with gateway.nodes.allowCommands. gateway.nodes.denyCommands always wins over defaults and extra allowlist entries.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:新本领插件-owned node 魔法口令s can add a 门口的小门卫 node-invoke policy. That policy runs after the allowlist check and before forwa…。
Plugin-owned node commands can add a Gateway node-invoke policy. That policy runs after the allowlist check and before forwarding to the node, so raw node.invoke, CLI helpers, and dedicated agent tools share the same plugin permission boundary. Dangerous plugin node commands still require explicit gateway.nodes.allowCommands opt-in.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:After a node changes its declared 魔法口令 list, reject the old device pairing and approve the new request so the 门口的小门卫 st…。
After a node changes its declared command list, reject the old device pairing and approve the new request so the gateway stores the updated command snapshot.
第 13 站
Screenshots (canvas snapshots)
这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。
这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。
你理解的是能力边界,不只是功能名字。
如果这节里同时出现命令、配置和例子,优先先看例子,再回头看配置。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:If the node is showing the Canvas (WebView), canvas.snapshot returns { format, base64 }. CLI helper (writes to a temp f…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:If the node is showing the Canvas (WebView), canvas.snapshot returns { format, base64 }.
If the node is showing the Canvas (WebView), canvas.snapshot returns { format, base64 }.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:CLI helper (writes to a temp file and prints MEDIA:<path>):。
CLI helper (writes to a temp file and prints MEDIA:<path>):
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes canvas snapshot --node <idOrNameOrIp> --format png”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes canvas snapshot --node <idOrNameOrIp> --format jpg --max-width 1200 --quality 0.9”。你可以把它想成一句说出口就要执行的差事。
openclaw nodes canvas snapshot --node <idOrNameOrIp> --format png
openclaw nodes canvas snapshot --node <idOrNameOrIp> --format jpg --max-width 1200 --quality 0.9
第 14 站
Canvas controls
这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。
这一节在讲一类能力是怎么工作的:它能做什么、不能做什么、适合在什么场景下调用。
你理解的是能力边界,不只是功能名字。
如果这节里同时出现命令、配置和例子,优先先看例子,再回头看配置。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这里在给“openclaw nodes canvas present --node <idOrNameOrIp> --target https”挂牌子,告诉系统它该指向“//example.com”。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes canvas hide --node <idOrNameOrIp>”。你可以把它想成一句说出口就要执行的差事。
- 这里在给“openclaw nodes canvas navigate https”挂牌子,告诉系统它该指向“//example.com --node <idOrNameOrIp>”。
openclaw nodes canvas present --node <idOrNameOrIp> --target https://example.com
openclaw nodes canvas hide --node <idOrNameOrIp>
openclaw nodes canvas navigate https://example.com --node <idOrNameOrIp>
openclaw nodes canvas eval --node <idOrNameOrIp> --js "document.title"
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
Notes:
这一串条目别硬背,把它当成“Canvas controls”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:canvas present accepts URLs or local file…、canvas eval accepts inline JS (--js) or a…。
canvas presentaccepts URLs or local file paths (--target), plus optional--x/--y/--width/--heightfor positioning.canvas evalaccepts inline JS (--js) or a positional arg.
第 15 站
A2UI (Canvas)
这一节主要在解释“A2UI (Canvas)”到底是干什么的,以及你什么时候会遇到它。
这一节主要在解释“A2UI (Canvas)”到底是干什么的,以及你什么时候会遇到它。
如果你是第一次接触 OpenClaw,这一节最值得看的不是术语本身,而是它背后的使用场景和限制。
真正动手时,先看它有没有默认值、有没有必须打开的选项、以及会不会影响安全边界。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes canvas a2ui push --node <idOrNameOrIp> --text "Hello"”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes canvas a2ui push --node <idOrNameOrIp> --jsonl ./payload.jsonl”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes canvas a2ui reset --node <idOrNameOrIp>”。你可以把它想成一句说出口就要执行的差事。
openclaw nodes canvas a2ui push --node <idOrNameOrIp> --text "Hello"
openclaw nodes canvas a2ui push --node <idOrNameOrIp> --jsonl ./payload.jsonl
openclaw nodes canvas a2ui reset --node <idOrNameOrIp>
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
Notes:
这一串条目别硬背,把它当成“A2UI (Canvas)”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:Only A2UI v0.8 JSONL is supported (v0.9/c…。
- Only A2UI v0.8 JSONL is supported (v0.9/createSurface is rejected).
第 16 站
Photos + videos (node camera)
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。
你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Photos (jpg): Video clips (mp4): Notes:。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Photos (jpg):。
Photos (jpg):
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes camera list --node <idOrNameOrIp>”。你可以把它想成一句说出口就要执行的差事。
- 这里在给“openclaw nodes camera snap --node <idOrNameOrIp> # default”挂牌子,告诉系统它该指向“both facings (2 MEDIA lines)”。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes camera snap --node <idOrNameOrIp> --facing front”。你可以把它想成一句说出口就要执行的差事。
openclaw nodes camera list --node <idOrNameOrIp>
openclaw nodes camera snap --node <idOrNameOrIp> # default: both facings (2 MEDIA lines)
openclaw nodes camera snap --node <idOrNameOrIp> --facing front
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Video clips (mp4):。
Video clips (mp4):
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes camera clip --node <idOrNameOrIp> --duration 10s”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes camera clip --node <idOrNameOrIp> --duration 3000 --no-audio”。你可以把它想成一句说出口就要执行的差事。
openclaw nodes camera clip --node <idOrNameOrIp> --duration 10s
openclaw nodes camera clip --node <idOrNameOrIp> --duration 3000 --no-audio
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
Notes:
这一串条目别硬背,把它当成“Photos + videos (node camera)”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:The node must be **foregrounded** for can…、Clip duration is clamped (currently <= 60…、Android will prompt for CAMERA/RECORD_AUD…。
- The node must be **foregrounded** for
canvas.*andcamera.*(background calls returnNODE_BACKGROUND_UNAVAILABLE). - Clip duration is clamped (currently
<= 60s) to avoid oversized base64 payloads. - Android will prompt for
CAMERA/RECORD_AUDIOpermissions when possible; denied permissions fail with*_PERMISSION_REQUIRED.
第 17 站
Screen recordings (nodes)
这一节主要在解释“Screen recordings (nodes)”到底是干什么的,以及你什么时候会遇到它。
这一节主要在解释“Screen recordings (nodes)”到底是干什么的,以及你什么时候会遇到它。
如果你是第一次接触 OpenClaw,这一节最值得看的不是术语本身,而是它背后的使用场景和限制。
真正动手时,先看它有没有默认值、有没有必须打开的选项、以及会不会影响安全边界。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Supported nodes expose screen.record (mp4). Example: Notes:。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Supported nodes expose screen.record (mp4). Example:。
Supported nodes expose screen.record (mp4). Example:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes screen record --node <idOrNameOrIp> --duration 10s --fps 10”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes screen record --node <idOrNameOrIp> --duration 10s --fps 10 --no-audio”。你可以把它想成一句说出口就要执行的差事。
openclaw nodes screen record --node <idOrNameOrIp> --duration 10s --fps 10
openclaw nodes screen record --node <idOrNameOrIp> --duration 10s --fps 10 --no-audio
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
Notes:
这一串条目别硬背,把它当成“Screen recordings (nodes)”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:screen.record availability depends on nod…、Screen recordings are clamped to <= 60s.、--no-audio disables microphone capture on…、Use --screen <index> to select a display…。
screen.recordavailability depends on node platform.- Screen recordings are clamped to
<= 60s. --no-audiodisables microphone capture on supported platforms.- Use
--screen <index>to select a display when multiple screens are available.
第 18 站
Location (nodes)
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。
你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Nodes expose location.get when Location is enabled in settings. CLI helper: Notes:。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Nodes expose location.get when Location is enabled in settings.
Nodes expose location.get when Location is enabled in settings.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:CLI helper:。
CLI helper:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes location get --node <idOrNameOrIp>”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000”。你可以把它想成一句说出口就要执行的差事。
openclaw nodes location get --node <idOrNameOrIp>
openclaw nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
Notes:
这一串条目别硬背,把它当成“Location (nodes)”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:Location is **off by default**.、"Always" requires system permission; back…、The response includes lat/lon, accuracy (…。
- Location is **off by default**.
- "Always" requires system permission; background fetch is best-effort.
- The response includes lat/lon, accuracy (meters), and timestamp.
第 19 站
SMS (Android nodes)
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。
你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Android nodes can expose sms.send when the user grants **SMS** permission and the device supports telephony. Low-level…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Android nodes can expose sms.send when the user grants **SMS** permission and the device supports telephony.
Android nodes can expose sms.send when the user grants **SMS** permission and the device supports telephony.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Low-level invoke:。
Low-level invoke:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这里在给“openclaw nodes invoke --node <idOrNameOrIp> --command sms.send --params {to”挂牌子,告诉系统它该指向“+15555550123message:Hello from OpenClaw}'”。
openclaw nodes invoke --node <idOrNameOrIp> --command sms.send --params '{"to":"+15555550123","message":"Hello from OpenClaw"}'
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
Notes:
这一串条目别硬背,把它当成“SMS (Android nodes)”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:The permission prompt must be accepted on…、Wi-Fi-only devices without telephony will…。
- The permission prompt must be accepted on the Android device before the capability is advertised.
- Wi-Fi-only devices without telephony will not advertise
sms.send.
第 20 站
Android device + personal data 魔法口令s
这一节更像安装或配置步骤,重点不是概念,而是“按什么顺序做才不会卡住”。
这一节更像安装或配置步骤,重点不是概念,而是“按什么顺序做才不会卡住”。
很多文档看起来长,其实是在防你漏掉前置条件。
真正照做时,先找前置条件,再找必填项,最后看验证方法。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Android nodes can advertise additional 魔法口令 families when the corresponding capabilities are enabled. Available familie…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Android nodes can advertise additional 魔法口令 families when the corresponding capabilities are enabled.
Android nodes can advertise additional command families when the corresponding capabilities are enabled.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Available families:。
Available families:
这一串条目别硬背,把它当成“Android device + personal data commands”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:device.status, device.info, device.permis…、notifications.list, notifications.actions、photos.latest、contacts.search, contacts.add。
device.status,device.info,device.permissions,device.healthnotifications.list,notifications.actionsphotos.latestcontacts.search,contacts.addcalendar.events,calendar.addcallLog.searchsms.searchmotion.activity,motion.pedometer
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Example invokes:。
Example invokes:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes invoke --node <idOrNameOrIp> --command device.status --params '{}'”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes invoke --node <idOrNameOrIp> --command notifications.list --params '{}'”。你可以把它想成一句说出口就要执行的差事。
- 这里在给“openclaw nodes invoke --node <idOrNameOrIp> --command photos.latest --params {limit”挂牌子,告诉系统它该指向“1}'”。
openclaw nodes invoke --node <idOrNameOrIp> --command device.status --params '{}'
openclaw nodes invoke --node <idOrNameOrIp> --command notifications.list --params '{}'
openclaw nodes invoke --node <idOrNameOrIp> --command photos.latest --params '{"limit":1}'
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
Notes:
这一串条目别硬背,把它当成“Android device + personal data commands”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:Motion 魔法口令s are capability-gated by avai…。
- Motion commands are capability-gated by available sensors.
第 21 站
System 魔法口令s (node host / mac node)
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。
你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:The macOS node exposes system.run, system.notify, and system.execApprovals.get/set. The headless node host exposes syst…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:The macOS node exposes system.run, system.notify, and system.execApprovals.get/set. The headless node host exposes syst…。
The macOS node exposes system.run, system.notify, and system.execApprovals.get/set. The headless node host exposes system.run, system.which, and system.execApprovals.get/set.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Examples:。
Examples:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw nodes notify --node <idOrNameOrIp> --title "Ping" --body "Gateway ready"”。你可以把它想成一句说出口就要执行的差事。
- 这里在给“openclaw nodes invoke --node <idOrNameOrIp> --command system.which --params {name”挂牌子,告诉系统它该指向“git}'”。
openclaw nodes notify --node <idOrNameOrIp> --title "Ping" --body "Gateway ready"
openclaw nodes invoke --node <idOrNameOrIp> --command system.which --params '{"name":"git"}'
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
Notes:
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:approval is granted, the 门口的小门卫 forwards that stored plan, not any later caller-edited 魔法口令/cwd/session fields.
approval is granted, the gateway forwards that stored plan, not any later caller-edited command/cwd/session fields.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Ask/allowlist/full behave the same as the headless node host; denied prompts return SYSTEM_RUN_DENIED.
Ask/allowlist/full behave the same as the headless node host; denied prompts return SYSTEM_RUN_DENIED.
这一串条目别硬背,把它当成“System commands (node host / mac node)”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:system.run returns stdout/stderr/exit cod…、Shell execution now goes through the exec…、nodes invoke does not expose system.run o…、The exec path prepares a canonical system…。
system.runreturns stdout/stderr/exit code in the payload.- Shell execution now goes through the
exectool withhost=node;nodesremains the direct-RPC surface for explicit node commands. nodes invokedoes not exposesystem.runorsystem.run.prepare; those stay on the exec path only.- The exec path prepares a canonical
systemRunPlanbefore approval. Once an system.notifyrespects notification permission state on the macOS app.- Unrecognized node
platform/deviceFamilymetadata uses a conservative default allowlist that excludessystem.runandsystem.which. If you intentionally need those commands for an unknown platform, add them explicitly viagateway.nodes.allowCommands. system.runsupports--cwd,--env KEY=VAL,--command-timeout, and--needs-screen-recording.- For shell wrappers (
bash|sh|zsh ... -c/-lc), request-scoped--envvalues are reduced to an explicit allowlist (TERM,LANG,LC_*,COLORTERM,NO_COLOR,FORCE_COLOR). - For allow-always decisions in allowlist mode, known dispatch wrappers (
env,nice,nohup,stdbuf,timeout) persist inner executable paths instead of wrapper paths. If unwrapping is not safe, no allowlist entry is persisted automatically. - On Windows node hosts in allowlist mode, shell-wrapper runs via
cmd.exe /crequire approval (allowlist entry alone does not auto-allow the wrapper form). system.notifysupports--priority <passive|active|timeSensitive>and--delivery <system|overlay|auto>.- Node hosts ignore
PATHoverrides and strip dangerous startup/shell keys (DYLD_*,LD_*,NODE_OPTIONS,PYTHON*,PERL*,RUBYOPT,SHELLOPTS,PS4). If you need extra PATH entries, configure the node host service environment (or install tools in standard locations) instead of passingPATHvia--env. - On macOS node mode,
system.runis gated by exec approvals in the macOS app (Settings → Exec approvals). - On headless node host,
system.runis gated by exec approvals (~/.openclaw/exec-approvals.json).
第 22 站
Exec node binding
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。
你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:When multiple nodes are available, you can bind exec to a specific node. This sets the default node for exec host=node…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:When multiple nodes are available, you can bind exec to a specific node. This sets the default node for exec host=node…。
When multiple nodes are available, you can bind exec to a specific node. This sets the default node for exec host=node (and can be overridden per agent).
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Global default:。
Global default:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw config set tools.exec.node "node-id-or-name"”。你可以把它想成一句说出口就要执行的差事。
openclaw config set tools.exec.node "node-id-or-name"
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Per-机器人朋友 override:。
Per-agent override:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw config get agents.list”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw config set 'agents.list[0].tools.exec.node' "node-id-or-name"”。你可以把它想成一句说出口就要执行的差事。
openclaw config get agents.list
openclaw config set 'agents.list[0].tools.exec.node' "node-id-or-name"
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Unset to allow any node:。
Unset to allow any node:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw config unset tools.exec.node”。你可以把它想成一句说出口就要执行的差事。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw config unset 'agents.list[0].tools.exec.node'”。你可以把它想成一句说出口就要执行的差事。
openclaw config unset tools.exec.node
openclaw config unset 'agents.list[0].tools.exec.node'
第 23 站
Permissions map
这一节主要在解释“Permissions map”到底是干什么的,以及你什么时候会遇到它。
这一节主要在解释“Permissions map”到底是干什么的,以及你什么时候会遇到它。
如果你是第一次接触 OpenClaw,这一节最值得看的不是术语本身,而是它背后的使用场景和限制。
真正动手时,先看它有没有默认值、有没有必须打开的选项、以及会不会影响安全边界。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Nodes may include a permissions map in node.list / node.describe, keyed by permission name (e.g. screenRecording, acces…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Nodes may include a permissions map in node.list / node.describe, keyed by permission name (e.g. screenRecording, acces…。
Nodes may include a permissions map in node.list / node.describe, keyed by permission name (e.g. screenRecording, accessibility) with boolean values (true = granted).
第 24 站
Headless node host (cross-platform)
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这一节在讲规则和边界:什么默认允许、什么必须显式打开、什么被禁止。
这种内容决定了 OpenClaw 是“能做”还是“现在还不能做”,读懂它比记术语更重要。
你可以把这一节当成权限说明书,真正配置时优先盯住 default、required、allow、deny 这几个词。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:OpenClaw can run a **headless node host** (no UI) that connects to the 门口的小门卫 WebSocket and exposes system.run / system…。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:OpenClaw can run a **headless node host** (no UI) that connects to the 门口的小门卫 WebSocket and exposes system.run / system…。
OpenClaw can run a **headless node host** (no UI) that connects to the Gateway WebSocket and exposes system.run / system.which. This is useful on Linux/Windows or for running a minimal node alongside a server.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Start it:。
Start it:
这是一句直接对 OpenClaw 说的话,像你把任务清清楚楚塞到它手里。
- 这一句是在直接叫 OpenClaw 动起来:“openclaw node run --host <gateway-host> --port 18789”。你可以把它想成一句说出口就要执行的差事。
openclaw node run --host <gateway-host> --port 18789
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:Notes:。
Notes:
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:(see Exec approvals).
(see Exec approvals).
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:OPENCLAW_NODE_EXEC_HOST=app to route system.run through the companion app exec host; add OPENCLAW_NODE_EXEC_FALLBACK=0…。
OPENCLAW_NODE_EXEC_HOST=app to route system.run through the companion app exec host; add OPENCLAW_NODE_EXEC_FALLBACK=0 to require the app host and fail closed if it is unavailable.
这一串条目别硬背,把它当成“Headless node host (cross-platform)”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:Pairing is still required (the 门口的小门卫 wil…、The node host stores its node id, token,…、Exec approvals are enforced locally via ~…、On macOS, the headless node host executes…。
- Pairing is still required (the Gateway will show a device pairing prompt).
- The node host stores its node id, token, display name, and gateway connection info in
~/.openclaw/node.json. - Exec approvals are enforced locally via
~/.openclaw/exec-approvals.json - On macOS, the headless node host executes
system.runlocally by default. Set - Add
--tls/--tls-fingerprintwhen the Gateway WS uses TLS.
第 25 站
Mac node mode
这一节主要在解释“Mac node mode”到底是干什么的,以及你什么时候会遇到它。
这一节主要在解释“Mac node mode”到底是干什么的,以及你什么时候会遇到它。
如果你是第一次接触 OpenClaw,这一节最值得看的不是术语本身,而是它背后的使用场景和限制。
真正动手时,先看它有没有默认值、有没有必须打开的选项、以及会不会影响安全边界。
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:---。
这一串条目别硬背,把它当成“Mac node mode”门口贴出来的几张便签就行。它们在提醒你先备好什么、别漏掉什么、哪里最容易走错:The macOS menubar app connects to the 门口的…、In remote mode, the app opens an SSH tunn…。
- The macOS menubar app connects to the Gateway WS server as a node (so
openclaw nodes …works against this Mac). - In remote mode, the app opens an SSH tunnel for the Gateway port and connects to
localhost.
如果把这一段摆成一个小场景,你会看到几样东西正在互相打招呼、拦路或者传东西。别急着记名词,先抓住它此刻到底在发生什么:---。
---
AdSense 连接验证已经放在页面头部;广告单元等站点审批通过后再启用。
google-adsense-account: ca-pub-3833673520933536