नोड्स
Nodes peripherals होते हैं, gateways नहीं। वे gateway service नहीं चलाते। लीगेसी ट्रांसपोर्ट: Bridge protocol (TCP JSONL; अप्रचलित/वर्तमान नोड्स के लिए हटाया गया)। macOS node mode में भी चल सकता है: मेन्यूबार ऐप Gateway के WS सर्वर से कनेक्ट होता है और अपने स्थानीय canvas/camera कमांड्स को एक नोड के रूप में एक्सपोज़ करता है (ताकिopenclaw nodes … इस Mac के विरुद्ध काम करे)।
नोट्स:
- WS nodes device pairing का उपयोग करते हैं। Nodes
connectके दौरान एक device identity प्रस्तुत करते हैं; Gatewayrole: nodeके लिए एक device pairing request बनाता है। devices CLI (या UI) के माध्यम से approve करें। - Telegram/WhatsApp आदि संदेश gateway पर आते हैं, नोड्स पर नहीं।
- समस्या-निवारण रनबुक: /nodes/troubleshooting
पेयरिंग + स्थिति
जब आपका Gateway एक मशीन पर चलता हो और आप चाहते हों कि कमांड्स किसी दूसरी मशीन पर execute हों, तब node host का उपयोग करें। Approve via the devices CLI (or UI). त्वरित CLI:nodes statusकिसी नोड को paired के रूप में चिह्नित करता है जब उसकी डिवाइस पेयरिंग भूमिका मेंnodeशामिल हो।node.pair.*(CLI:openclaw nodes pending/approve/reject) एक अलग gateway-स्वामित्व वाला नोड पेयरिंग स्टोर है; यह WSconnectहैंडशेक को गेट नहीं करता।
रिमोट नोड होस्ट (system.run)
Use a node host when your Gateway runs on one machine and you want commands to execute on another. यदि Gateway लूपबैक से बाइंड करता है (gateway.bind=loopback, लोकल मोड में डिफ़ॉल्ट), तो रिमोट node hosts सीधे कनेक्ट नहीं कर सकते।
क्या कहाँ चलता है
- Gateway होस्ट: संदेश प्राप्त करता है, मॉडल चलाता है, टूल कॉल्स रूट करता है।
- Node host: नोड मशीन पर
system.run/system.whichनिष्पादित करता है। - Approvals:
~/.openclaw/exec-approvals.jsonके माध्यम से node host पर लागू होते हैं।
नोड होस्ट शुरू करें (foreground)
नोड मशीन पर:SSH टनल के माध्यम से रिमोट gateway (loopback bind)
एक SSH टनल बनाएँ और node host को टनल के लोकल सिरे की ओर पॉइंट करें। Exec अनुमोदन प्रति node host होते हैं। उदाहरण (node host -> gateway host):- टोकन gateway config से
gateway.auth.tokenहै (gateway होस्ट पर~/.openclaw/openclaw.json)। openclaw node runप्रमाणीकरण के लिएOPENCLAW_GATEWAY_TOKENपढ़ता है।
नोड होस्ट शुरू करें (service)
पेयर + नाम
gateway होस्ट पर:openclaw node run/openclaw node installपर--display-name(नोड पर~/.openclaw/node.jsonमें स्थायी रहता है)।openclaw nodes rename --node <id|name|ip> --name "Build Node"(gateway ओवरराइड)।
कमांड्स को allowlist करें
gateway से allowlist एंट्रीज़ जोड़ें: Nodesscreen.record (mp4) एक्सपोज़ करते हैं।
~/.openclaw/exec-approvals.json में रहती हैं।
exec को नोड की ओर इंगित करें
डिफ़ॉल्ट्स कॉन्फ़िगर करें (gateway config):exec कॉल में host=node के साथ निष्पादन node host पर होता है (node allowlist/approvals के अधीन)।
संबंधित:
कमांड्स का आह्वान
लो-लेवल (raw RPC):स्क्रीनशॉट्स (canvas snapshots)
यदि नोड Canvas (WebView) दिखा रहा है, तोcanvas.snapshot { format, base64 } लौटाता है।
CLI हेल्पर (एक temp फ़ाइल में लिखता है और MEDIA:<path> प्रिंट करता है):
Canvas नियंत्रण
canvas presentURLs या लोकल फ़ाइल पाथ्स (--target) स्वीकार करता है, साथ ही पोज़िशनिंग के लिए वैकल्पिक--x/--y/--width/--height।canvas evalinline JS (--js) या एक positional arg स्वीकार करता है।
A2UI (Canvas)
- केवल A2UI v0.8 JSONL समर्थित है (v0.9/createSurface अस्वीकार किया जाता है)।
फ़ोटो + वीडियो (नोड कैमरा)
फ़ोटो (jpg):
mp4):
canvas.*औरcamera.*के लिए नोड का foregrounded होना आवश्यक है (background कॉल्सNODE_BACKGROUND_UNAVAILABLEलौटाते हैं)।- बेस64 payloads के अत्यधिक बड़े होने से बचाने के लिए क्लिप अवधि सीमित है (वर्तमान में
<= 60s)। - Android जहाँ संभव हो
CAMERA/RECORD_AUDIOअनुमतियों के लिए प्रॉम्प्ट करेगा; अस्वीकृत अनुमतियाँ*_PERMISSION_REQUIREDके साथ विफल होंगी।
स्क्रीन रिकॉर्डिंग्स (नोड्स)
macOS nodesystem.run, system.notify, और system.execApprovals.get/set एक्सपोज़ करता है। उदाहरण:
screen.recordके लिए नोड ऐप का foregrounded होना आवश्यक है।- Android रिकॉर्डिंग से पहले सिस्टम स्क्रीन-कैप्चर प्रॉम्प्ट दिखाएगा।
- स्क्रीन रिकॉर्डिंग्स
<= 60sतक सीमित होती हैं। --no-audioमाइक्रोफ़ोन कैप्चर को अक्षम करता है (iOS/Android पर समर्थित; macOS सिस्टम कैप्चर ऑडियो का उपयोग करता है)।- कई स्क्रीन उपलब्ध होने पर डिस्प्ले चुनने के लिए
--screen <index>का उपयोग करें।
लोकेशन (नोड्स)
सेटिंग्स में Location सक्षम होने पर नोड्सlocation.get एक्सपोज़ करते हैं।
CLI हेल्पर:
- Location डिफ़ॉल्ट रूप से बंद रहती है।
- “Always” के लिए सिस्टम अनुमति आवश्यक है; background fetch best-effort होता है।
- प्रतिक्रिया में lat/lon, accuracy (मीटर), और timestamp शामिल होते हैं।
SMS (Android नोड्स)
Android नोड्स तबsms.send एक्सपोज़ कर सकते हैं जब उपयोगकर्ता SMS अनुमति देता है और डिवाइस टेलीफ़ोनी का समर्थन करता है।
लो-लेवल invoke:
- क्षमता विज्ञापित होने से पहले Android डिवाइस पर अनुमति प्रॉम्प्ट स्वीकार करना आवश्यक है।
- टेलीफ़ोनी के बिना Wi‑Fi‑only डिवाइस
sms.sendविज्ञापित नहीं करेंगे।
सिस्टम कमांड्स (node host / mac node)
headless node hostsystem.run, system.which, और system.execApprovals.get/set एक्सपोज़ करता है।
macOS node मोड में, system.run macOS ऐप में exec approvals द्वारा नियंत्रित होता है (Settings → Exec approvals)।
उदाहरण:
system.runpayload में stdout/stderr/exit code लौटाता है।system.notifymacOS ऐप में notification permission स्थिति का सम्मान करता है।system.run--cwd,--env KEY=VAL,--command-timeout, और--needs-screen-recordingका समर्थन करता है।system.notify--priority <passive|active|timeSensitive>और--delivery <system|overlay|auto>का समर्थन करता है।- Node होस्ट
PATHओवरराइड को अनदेखा करते हैं। यदि आपको अतिरिक्त PATH एंट्री की आवश्यकता है, तो--envके माध्यम सेPATHपास करने के बजाय node host सेवा के environment को कॉन्फ़िगर करें (या टूल्स को मानक स्थानों पर इंस्टॉल करें)। - Ask/allowlist/full का व्यवहार headless node host जैसा ही है; अस्वीकृत प्रॉम्प्ट्स
SYSTEM_RUN_DENIEDलौटाते हैं। जब कई nodes उपलब्ध हों, आप exec को किसी विशिष्ट node से बाँध सकते हैं। - headless node host पर,
system.runexec approvals (~/.openclaw/exec-approvals.json) द्वारा gated होता है।
Exec नोड बाइंडिंग
यहexec host=node के लिए डिफ़ॉल्ट node सेट करता है (और प्रति agent ओवरराइड किया जा सकता है)।
OpenClaw एक headless node host (कोई UI नहीं) चला सकता है जो Gateway WebSocket से कनेक्ट होता है और system.run / system.which एक्सपोज़ करता है।
ग्लोबल डिफ़ॉल्ट:
अनुमतियाँ मानचित्र
नोड्सnode.list / node.describe में एक permissions मानचित्र शामिल कर सकते हैं, जो अनुमति नाम (जैसे screenRecording, accessibility) द्वारा keyed होता है और boolean मान (true = granted) रखता है।
Headless node host (क्रॉस-प्लैटफ़ॉर्म)
यह Linux/Windows पर या किसी सर्वर के साथ एक न्यूनतम node चलाने के लिए उपयोगी है। macOS पर, headless node host जब उपलब्ध हो तो companion app exec host को प्राथमिकता देता है और ऐप अनुपलब्ध होने पर लोकल execution पर वापस चला जाता है। इसे शुरू करें:- पेयरिंग अभी भी आवश्यक है (Gateway एक नोड अनुमोदन प्रॉम्प्ट दिखाएगा)।
- node host अपना node id, token, display name, और gateway कनेक्शन जानकारी
~/.openclaw/node.jsonमें संग्रहीत करता है। - Exec approvals स्थानीय रूप से
~/.openclaw/exec-approvals.jsonके माध्यम से लागू होते हैं (देखें Exec approvals)। - ऐप की आवश्यकता के लिए
OPENCLAW_NODE_EXEC_HOST=appसेट करें, या fallback अक्षम करने के लिएOPENCLAW_NODE_EXEC_FALLBACK=0सेट करें। OS अनुमतियाँ बहु‑स्तरीय होती हैं। - जब Gateway WS TLS का उपयोग करता हो, तब
--tls/--tls-fingerprintजोड़ें।
Mac node mode
- macOS मेन्यूबार ऐप Gateway WS सर्वर से एक नोड के रूप में कनेक्ट होता है (ताकि
openclaw nodes …इस Mac के विरुद्ध काम करे)। - रिमोट मोड में, ऐप Gateway पोर्ट के लिए एक SSH टनल खोलता है और
localhostसे कनेक्ट होता है।