Skip to main content

Noder

En node är en kompanjonenhet (macOS/iOS/Android/headless) som ansluter till Gateway WebSocket (samma port som operatörer) med roll: "node" och exponerar en kommandoyta (e. . canvas.*, camera.*, system.*) via node.invoke. Protocol details: Gateway protocol. Äldre transport: Bridge protocol (TCP JSONL; utfasad/borttagen för nuvarande noder). macOS kan också köras i nodläge: menyradsappen ansluter till Gatewayns WS-server och exponerar sina lokala canvas-/kamerakommandon som en nod (så att openclaw nodes … fungerar mot denna Mac). Noteringar:
  • Noder är kringutrustning, inte gateways. De kör inte gateway service.
  • Telegram/WhatsApp/etc.-meddelanden hamnar på gatewayen, inte på noder.
  • Felsökningsrunbook: /nodes/troubleshooting

Parning + status

WS-noder använder enhets parkoppling. Noder presenterar en enhetsidentitet under connect; Gateway skapar en enhets parkopplingsförfrågan för roll: node. Godkänn via enheterna CLI (eller UI). Snabb CLI:
Noteringar:
  • nodes status markerar en nod som parad när dess enhetsparningsroll inkluderar node.
  • node.pair.* (CLI: openclaw nodes pending/approve/reject) är ett separat gateway-ägt nodparningsregister; det spärrar inte WS-connect-handshaken.

Fjärr-nodvärd (system.run)

Använd en nod värd när din Gateway körs på en maskin och du vill att kommandona ska köras på en annan. Modellen talar fortfarande till gateway; gateway framåt exec anrop till nod värd när host=node är vald.

Vad körs var

  • Gateway-värd: tar emot meddelanden, kör modellen, routar verktygsanrop.
  • Nodvärd: kör system.run/system.which på nodmaskinen.
  • Godkännanden: tillämpas på nodvärden via ~/.openclaw/exec-approvals.json.

Starta en nodvärd (förgrund)

På nodmaskinen:

Fjärr-gateway via SSH-tunnel (loopback-bindning)

Om Gateway binder till loopback (gateway.bind=loopback, standard i lokalt läge), kan fjärrnodvärdar inte ansluta direkt. Skapa en SSH-tunnel och peka nod värd i den lokala änden av tunneln. Exempel (nodvärd -> gateway-värd):
Noteringar:
  • Token är gateway.auth.token från gateway-konfigen (~/.openclaw/openclaw.json på gateway-värden).
  • openclaw node run läser OPENCLAW_GATEWAY_TOKEN för autentisering.

Starta en nodvärd (tjänst)

Para + namnge

På gateway-värden:
Namngivningsalternativ:
  • --display-nameopenclaw node run / openclaw node install (består i ~/.openclaw/node.json på noden).
  • openclaw nodes rename --node <id|name|ip> --name "Build Node" (gateway-override).

Tillåtelselista kommandona

Exec godkännanden är per nod värd. Lägg till tillåtna poster från gateway:
Godkännanden lagras på nodvärden i ~/.openclaw/exec-approvals.json.

Peka exec mot noden

Konfigurera standarder (gateway-konfig):
Eller per session:
När detta är satt körs varje exec-anrop med host=node på nodvärden (med förbehåll för nodens tillåtelselista/godkännanden). Relaterat:

Anropa kommandon

Lågnivå (rå RPC):
Högre nivå-hjälpare finns för de vanliga arbetsflödena ”ge agenten en MEDIA-bilaga”.

Skärmdumpar (canvas-ögonblicksbilder)

Om noden visar Canvas (WebView) returnerar canvas.snapshot { format, base64 }. CLI-hjälpare (skriver till en temporär fil och skriver ut MEDIA:<path>):

Canvas-kontroller

Noteringar:
  • canvas present accepterar URL:er eller lokala filsökvägar (--target), samt valfri --x/--y/--width/--height för positionering.
  • canvas eval accepterar inbäddad JS (--js) eller ett positionsargument.

A2UI (Canvas)

Noteringar:
  • Endast A2UI v0.8 JSONL stöds (v0.9/createSurface avvisas).

Foton + videor (nodkamera)

Foton (jpg):
Videoklipp (mp4):
Noteringar:
  • Noden måste vara i förgrunden för canvas.* och camera.* (bakgrundsanrop returnerar NODE_BACKGROUND_UNAVAILABLE).
  • Klipplängden begränsas (för närvarande <= 60s) för att undvika för stora base64-payloads.
  • Android ber om behörigheter för CAMERA/RECORD_AUDIO när möjligt; nekade behörigheter misslyckas med *_PERMISSION_REQUIRED.

Skärminspelningar (noder)

Noder exponerar screen.record (mp4). Exempel:
Noteringar:
  • screen.record kräver att nodappen är i förgrunden.
  • Android visar systemprompten för skärminspelning före inspelning.
  • Skärminspelningar begränsas till <= 60s.
  • --no-audio inaktiverar mikrofoninspelning (stöds på iOS/Android; macOS använder systemets inspelningsljud).
  • Använd --screen <index> för att välja skärm när flera skärmar finns tillgängliga.

Plats (noder)

Noder exponerar location.get när Plats är aktiverat i inställningarna. CLI-hjälpare:
Noteringar:
  • Plats är avstängt som standard.
  • ”Alltid” kräver systembehörighet; bakgrundshämtning är bästa möjliga.
  • Svaret inkluderar lat/long, noggrannhet (meter) och tidsstämpel.

SMS (Android-noder)

Android-noder kan exponera sms.send när användaren beviljar SMS-behörighet och enheten stöder telefoni. Lågnivåanrop:
Noteringar:
  • Behörighetsprompten måste godkännas på Android-enheten innan funktionen annonseras.
  • Enheter utan telefoni som endast har Wi‑Fi annonserar inte sms.send.

Systemkommandon (nodvärd / mac-nod)

macOS noden exponerar system.run, system.notify, och system.execApprovals.get/set. Den huvudlösa nodvärden exponerar system.run, system.which, och system.execApprovals.get/set. Exempel:
Noteringar:
  • system.run returnerar stdout/stderr/exitkod i payloaden.
  • system.notify respekterar notifieringsbehörighetsstatus i macOS-appen.
  • system.run stöder --cwd, --env KEY=VAL, --command-timeout och --needs-screen-recording.
  • system.notify stöder --priority <passive|active|timeSensitive> och --delivery <system|overlay|auto>.
  • Node-värdar ignorerar PATH-överskrivningar. Om du behöver extra PATH-poster, konfigurera node-värdtjänstens miljö (eller installera verktyg på standardplatser) istället för att skicka PATH via --env.
  • På macOS node-läge är system.run gated av exec godkännanden i macOS appen (inställningar → Exec godkännanden). Från/allowlist/full beter sig som den huvudlösa noden värden; nekade uppmaningar tillbaka SYSTEM_RUN_DENIED.
  • På headless nodvärd är system.run spärrat av exec-godkännanden (~/.openclaw/exec-approvals.json).

Exec-nodbinding

När flera noder är tillgängliga kan du binda exec till en specifik nod. Detta sätter standardnoden för exec host=node (och kan åsidosättas per agent). Global standard:
Åsidosättning per agent:
Avaktivera för att tillåta vilken nod som helst:

Behörighetskarta

Noder kan inkludera en permissions karta i node.list / node.describe, tangentad med behörighetsnamn (t.ex. screenRecording, accessibility) med booleska värden (true = beviljad).

Headless nodvärd (plattformsoavhängig)

OpenClaw kan köra en huvudlös nodvärd (inget UI) som ansluter till Gateway WebSocket och exponerar system.run / system.which. Detta är användbart på Linux/Windows eller för att köra en minimal nod tillsammans med en server. Starta den:
Noteringar:
  • Parning krävs fortfarande (Gatewayn visar en nodgodkännandeprompt).
  • Nodvärden lagrar sitt nod-id, token, visningsnamn och gateway-anslutningsinfo i ~/.openclaw/node.json.
  • Exec-godkännanden tillämpas lokalt via ~/.openclaw/exec-approvals.json (se Exec approvals).
  • På macOS, huvudlös nod värd föredrar följeslagare app exec värd när nås och faller tillbaka till lokal körning om appen inte är tillgänglig. Ställ in OPENCLAW_NODE_EXEC_HOST=app för att kräva appen, eller OPENCLAW_NODE_EXEC_FALLBACK=0 för att inaktivera reserven.
  • Lägg till --tls / --tls-fingerprint när Gateway WS använder TLS.

Mac nodläge

  • macOS-menyradsappen ansluter till Gatewayns WS-server som en nod (så att openclaw nodes … fungerar mot denna Mac).
  • I fjärrläge öppnar appen en SSH-tunnel för Gateway-porten och ansluter till localhost.