मुख्य सामग्री पर जाएं

Android ऐप (नोड)

समर्थन स्नैपशॉट

सिस्टम नियंत्रण

System control (launchd/systemd) lives on the Gateway host. See Gateway.

कनेक्शन रनबुक

Android नोड ऐप ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway Android सीधे Gateway WebSocket (डिफ़ॉल्ट ws://<host>:18789) से कनेक्ट होता है और Gateway-स्वामित्व वाले पेयरिंग का उपयोग करता है।

पूर्वापेक्षाएँ

  • आप “मास्टर” मशीन पर Gateway चला सकते हैं।
  • Android डिवाइस/एम्युलेटर Gateway WebSocket तक पहुँच सकता है:
    • mDNS/NSD के साथ वही LAN, या
    • Wide-Area Bonjour / unicast DNS-SD का उपयोग करते हुए वही Tailscale tailnet (नीचे देखें), या
    • मैनुअल Gateway होस्ट/पोर्ट (फ़ॉलबैक)
  • आप Gateway मशीन पर (या SSH के माध्यम से) CLI (openclaw) चला सकते हैं।

1. Gateway प्रारंभ करें

openclaw gateway --port 18789 --verbose
लॉग्स में पुष्टि करें कि आपको कुछ ऐसा दिखे:
  • listening on ws://0.0.0.0:18789
केवल-tailnet सेटअप्स के लिए (Vienna ⇄ London के लिए अनुशंसित), Gateway को tailnet IP पर बाइंड करें:
  • Gateway होस्ट पर ~/.openclaw/openclaw.json में gateway.bind: "tailnet" सेट करें।
  • Gateway / macOS मेनूबार ऐप पुनः प्रारंभ करें।

2. डिस्कवरी सत्यापित करें (वैकल्पिक)

Gateway मशीन से:
dns-sd -B _openclaw-gw._tcp local.
अधिक डिबगिंग नोट्स: Bonjour

unicast DNS-SD के माध्यम से Tailnet (Vienna ⇄ London) डिस्कवरी

Android NSD/mDNS discovery won’t cross networks. If your Android node and the gateway are on different networks but connected via Tailscale, use Wide-Area Bonjour / unicast DNS-SD instead:
  1. Gateway होस्ट पर एक DNS-SD ज़ोन (उदाहरण openclaw.internal.) सेट करें और _openclaw-gw._tcp रिकॉर्ड प्रकाशित करें।
  2. अपने चुने हुए डोमेन के लिए उस DNS सर्वर की ओर इंगित करते हुए Tailscale split DNS कॉन्फ़िगर करें।
विवरण और उदाहरण CoreDNS विन्यास: Bonjour

3. Android से कनेक्ट करें

Android ऐप में:
  • ऐप foreground service (स्थायी नोटिफ़िकेशन) के माध्यम से Gateway कनेक्शन जीवित रखता है।
  • Settings खोलें।
  • Discovered Gateways के अंतर्गत अपना Gateway चुनें और Connect दबाएँ।
  • यदि mDNS ब्लॉक है, तो Advanced → Manual Gateway (होस्ट + पोर्ट) और Connect (Manual) का उपयोग करें।
पहली सफल पेयरिंग के बाद, Android लॉन्च पर स्वतः पुनः कनेक्ट करता है:
  • मैनुअल एंडपॉइंट (यदि सक्षम), अन्यथा
  • अंतिम डिस्कवर्ड Gateway (best-effort)।

4. पेयरिंग अनुमोदित करें (CLI)

Gateway मशीन पर:
openclaw nodes pending
openclaw nodes approve <requestId>
पेयरिंग विवरण: Gateway पेयरिंग

5. नोड कनेक्टेड है या नहीं सत्यापित करें

  • नोड्स स्थिति के माध्यम से:
    openclaw nodes status
    
  • Gateway के माध्यम से:
    openclaw gateway call node.list --params "{}"
    

6. चैट + इतिहास

Android नोड की Chat शीट Gateway की प्राथमिक सत्र कुंजी (main) का उपयोग करती है, इसलिए इतिहास और उत्तर WebChat और अन्य क्लाइंट्स के साथ साझा होते हैं:
  • इतिहास: chat.history
  • भेजें: chat.send
  • पुश अपडेट्स (best-effort): chat.subscribeevent:"chat"

7. Canvas + कैमरा

Gateway Canvas होस्ट (वेब कंटेंट के लिए अनुशंसित)

यदि आप चाहते हैं कि नोड वास्तविक HTML/CSS/JS दिखाए जिसे एजेंट डिस्क पर संपादित कर सके, तो नोड को Gateway canvas होस्ट की ओर इंगित करें। टिप्पणी: नोड्स canvasHost.port पर standalone canvas होस्ट का उपयोग करते हैं (डिफ़ॉल्ट 18793)।
  1. Gateway होस्ट पर ~/.openclaw/workspace/canvas/index.html बनाएँ।
  2. नोड को उस पर नेविगेट करें (LAN):
openclaw nodes invoke --node "<Android Node>" --command canvas.navigate --params '{"url":"http://<gateway-hostname>.local:18793/__openclaw__/canvas/"}'
Tailnet (वैकल्पिक): यदि दोनों डिवाइस Tailscale पर हैं, तो .local के बजाय MagicDNS नाम या tailnet IP का उपयोग करें, उदाहरण के लिए http://<gateway-magicdns>:18793/__openclaw__/canvas/ This server injects a live-reload client into HTML and reloads on file changes. A2UI होस्ट http://<gateway-host>:18789/__openclaw__/a2ui/ पर उपलब्ध है। Canvas कमांड्स (केवल foreground):
  • canvas.eval, canvas.snapshot, canvas.navigate (use {"url":""} or {"url":"/"} to return to the default scaffold). canvas.snapshot returns { format, base64 } (default format="jpeg").
  • A2UI: canvas.a2ui.push, canvas.a2ui.reset (canvas.a2ui.pushJSONL legacy alias)
कैमरा कमांड्स (केवल foreground; अनुमति-नियंत्रित):
  • camera.snap (jpg)
  • camera.clip (mp4)
पैरामीटर और CLI हेल्पर्स के लिए देखें: Camera node