Skip to main content
आधिकारिक Android ऐप Google Play पर और समर्थित GitHub Releases में हस्ताक्षरित स्टैंडअलोन APK के रूप में उपलब्ध है। यह एक सहायक Node है और इसके लिए चालू OpenClaw Gateway आवश्यक है। स्रोत: apps/android (बिल्ड निर्देश)।

समर्थन का संक्षिप्त विवरण

  • भूमिका: सहायक Node ऐप (Android Gateway को होस्ट नहीं करता)।
  • Gateway आवश्यक: हाँ (इसे macOS, Linux या WSL2 के माध्यम से Windows पर चलाएँ)।
  • इंस्टॉल करें: Google Play या समर्थित GitHub Release से OpenClaw-Android.apk, Gateway के लिए आरंभ करना, फिर पेयरिंग
  • Gateway: रनबुक + कॉन्फ़िगरेशन
  • जब ऑपरेटर कनेक्शन में operator.admin हो और Gateway openclaw.chat का समर्थन करता हो, तब Settings → OpenClaw एक समर्पित Gateway सेटिंग सहायक खोलता है। इसकी सेटअप बातचीत सामान्य Chat से अलग रहती है, गुप्त उत्तरों को स्थानीय रूप से संपादित करती है और आपके Open Chat पर टैप करने के बाद ही Chat में जाती है।
सिस्टम नियंत्रण (launchd/systemd) Gateway होस्ट पर रहता है — Gateway देखें।

एक साथ Gateway सत्र

प्रत्येक Gateway को एक बार पेयर करें, फिर Settings → Gateway खोलें। चेकमार्क फ़ोकस किए गए Gateway को चिह्नित करता है और प्रत्येक स्विच यह नियंत्रित करता है कि किसी गैर-फ़ोकस किए गए Gateway का ऑपरेटर सत्र कनेक्टेड रहे या नहीं। ऐप के अग्रभूमि में रहते समय सक्षम Gateways स्वतंत्र रूप से पुनः कनेक्ट होते हैं, इसलिए फ़ोकस बदलने से अन्य कनेक्शन बंद नहीं होते। केवल फ़ोकस किया गया Gateway ही Android Node सत्र और डिवाइस क्षमताओं का स्वामी होता है; इससे एक साथ जुड़े Gateways को एक ही फ़ोन पर कैमरा, स्थान, स्क्रीन या सूचना कमांड जारी करने से रोका जाता है। ऐप के अग्रभूमि से बाहर जाने के बाद Android द्वितीयक कनेक्शन निलंबित कर सकता है।

Wear OS सहायक

Wear OS सहायक पेयर किए गए Android फ़ोन के प्रमाणीकृत Gateway कनेक्शन का उपयोग करता है; घड़ी कभी भी Gateway क्रेडेंशियल प्राप्त या संग्रहीत नहीं करती। यह एजेंट और सत्र चुन सकता है, सीमित ट्रांसक्रिप्ट पढ़ सकता है, टेक्स्ट या बोलकर दिए गए उत्तर भेज सकता है, सक्रिय रन रोक सकता है, चयनित सत्र में रीयल-टाइम Talk शुरू कर सकता है और पेयर किए गए फ़ोन के Gateway को कनेक्ट या डिस्कनेक्ट कर सकता है। यह स्थानीय उत्तर सूचनाएँ, गहरा या हल्का स्वरूप और उत्तरों के लिए वैकल्पिक स्वचालित वाचन भी प्रदान करता है। फ़ोन और घड़ी के अलग-अलग समय पर होने वाले अपडेट के लिए एजेंट और Gateway नियंत्रणों की क्षमता पर बातचीत की जाती है। रीयल-टाइम Talk माइक्रोफ़ोन और प्लेबैक ऑडियो को अस्थायी Wear OS Data Layer चैनल पर स्ट्रीम करता है और चयनित फ़ोन, Gateway कनेक्शन या ऑडियो चैनल खो जाने पर रुक जाता है।

Google Play के बाहर इंस्टॉल करना

नियमित अंतिम और सुधारात्मक GitHub Releases में एक सार्वभौमिक OpenClaw-Android.apk और OpenClaw-Android-SHA256SUMS.txt शामिल होते हैं। APK रिलीज़ टैग से बनाया जाता है, OpenClaw Android रिलीज़ कुंजी से हस्ताक्षरित होता है और इसमें GitHub Actions उद्गम प्रमाण होता है। ऐसी रिलीज़ चुनें जिसमें दोनों एसेट सूचीबद्ध हों, फिर साइडलोड करने से पहले उसी टैग को डाउनलोड और सत्यापित करें:
Google Play और स्टैंडअलोन APK इंस्टॉल अलग-अलग अपडेट चैनलों का उपयोग करते हैं और उनकी हस्ताक्षर पहचान अलग हो सकती है। चैनल बदलने से पहले Android को मौजूदा ऐप अनइंस्टॉल करने की आवश्यकता हो सकती है, जिससे उसका स्थानीय ऐप डेटा हट जाता है। सामान्य अपडेट के लिए एक ही चैनल पर बने रहें।

दूरस्थ Mac से Android को मिरर और नियंत्रित करना

scrcpy Android स्क्रीन को macOS विंडो में मिरर करता है और Android Debug Bridge (ADB) के माध्यम से कीबोर्ड और पॉइंटर इनपुट अग्रेषित करता है। यह ऑपरेटर-पक्ष का वर्कफ़्लो है, जो OpenClaw Node कनेक्शन से अलग है। यह तब उपयोगी होता है जब Android डिवाइस और Mac अलग-अलग स्थानों पर हों, लेकिन एक निजी Tailscale नेटवर्क साझा करते हों।

शुरू करने से पहले

  • Android डिवाइस और Mac पर Tailscale इंस्टॉल करें और दोनों को एक ही tailnet से कनेक्ट करें।
  • Android पर Developer options और USB debugging सक्षम करें। Android 16 में Wireless debugging, Settings > System > Developer options के अंतर्गत होता है। Android developer options देखें।
  • Mac पर scrcpy और ADB इंस्टॉल करें:
  • पहले कनेक्शन के लिए Android डिवाइस को उपलब्ध रखें। किसी Mac द्वारा डिवाइस नियंत्रित किए जाने से पहले Android को उस Mac की ADB कुंजी को स्वीकृत करना होगा।

TCP पर ADB सक्षम करें

आरंभिक सेटअप के लिए Android डिवाइस को USB द्वारा किसी विश्वसनीय कंप्यूटर से कनेक्ट करें और उसके डीबगिंग संकेत को स्वीकृत करें। फिर चलाएँ:
अब आप USB डिस्कनेक्ट कर सकते हैं। यदि डिवाइस रीबूट या डीबगिंग रीसेट के बाद पोर्ट 5555 सुनना बंद कर दे, तो यह स्थानीय सेटअप चरण दोहराएँ। Android 11 और बाद के संस्करण Wireless debugging > Pair device with pairing code और adb pair से भी आरंभिक विश्वास स्थापित कर सकते हैं।

केवल नियंत्रक Mac को अनुमति दें

प्रतिबंधात्मक अनुदान वाले tailnets को Android डिवाइस के TCP पोर्ट 5555 तक पहुँचने के लिए नियंत्रक Mac को स्पष्ट रूप से अनुमति देनी होगी। tailnet नीति में एक सीमित नियम जोड़ें और उदाहरण पतों को दोनों डिवाइसों के स्थिर Tailscale IP से बदलें:
होस्ट उपनामों और अन्य चयनकर्ताओं के लिए Tailscale grants देखें। इस पोर्ट की अनुमति सार्वजनिक इंटरनेट को न दें और इसे Funnel के साथ उजागर न करें: अधिकृत ADB क्लाइंट के पास डिवाइस का व्यापक नियंत्रण होता है।

कनेक्ट करके मिररिंग शुरू करें

दूरस्थ Mac पर:
इस Mac से पहला adb connect Android पर प्राधिकरण संवाद दिखाता है। डिवाइस अनलॉक करें, कुंजी फ़िंगरप्रिंट की पुष्टि करें और केवल Mac विश्वसनीय होने पर Always allow from this computer चुनें। सफल adb devices प्रविष्टि के अंत में device होता है; unauthorized का अर्थ है कि डिवाइस पर दिखाई गई स्वीकृति अभी मंज़ूर नहीं हुई है। scrcpy विंडो खुलने के बाद उसे सीधे उपयोग करें या Peekaboo जैसे macOS स्क्रीन-ऑटोमेशन टूल से लक्षित करें। scrcpy डिस्प्ले और इनपुट वहन करता है; Tailscale केवल निजी नेटवर्क पथ प्रदान करता है।

समस्या निवारण

  • Connection timed out: TCP 5555 के लिए tailnet अनुदान सत्यापित करें। सफल tailscale ping पीयर तक पहुँच सिद्ध करता है, यह नहीं कि नीति इस TCP पोर्ट की अनुमति देती है। Mac से nc -vz <android-tailnet-ip> 5555 द्वारा परीक्षण करें।
  • unauthorized: Android अनलॉक करें और दूरस्थ Mac की ADB कुंजी स्वीकृत करें, या Wireless debugging > Paired devices के अंतर्गत पुराने वर्कस्टेशन को हटाकर उसे फिर से पेयर करें।
  • Connection refused: स्थानीय रूप से पुनः कनेक्ट करें और adb tcpip 5555 फिर से चलाएँ।
  • एक से अधिक डिवाइस सूचीबद्ध हैं: स्पष्ट --serial <android-tailnet-ip>:5555 तर्क बनाए रखें।
काम पूरा होने पर scrcpy बंद करें और ADB डिस्कनेक्ट करें:

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

Android Node ऐप ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway Android सीधे Gateway WebSocket से कनेक्ट होता है और डिवाइस पेयरिंग (role: node) का उपयोग करता है। Tailscale या सार्वजनिक होस्ट के लिए Android को सुरक्षित एंडपॉइंट चाहिए:
  • वरीय: https://<magicdns> / wss://<magicdns> के साथ Tailscale Serve / Funnel
  • यह भी समर्थित है: वास्तविक TLS एंडपॉइंट वाला कोई अन्य wss:// Gateway URL
  • स्पष्ट-पाठ ws:// निजी LAN पतों / .local होस्ट, साथ ही localhost, 127.0.0.1 और Android एम्युलेटर ब्रिज (10.0.2.2) पर समर्थित रहता है; गैर-लूपबैक सेटअप स्वचालित रूप से सीमित ऑपरेटर पहुँच का उपयोग करता है

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

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

1. Gateway शुरू करें

पुष्टि करें कि लॉग में ऐसा कुछ दिखाई देता है:
  • listening on ws://0.0.0.0:18789
Tailscale पर दूरस्थ Android पहुँच के लिए अपरिष्कृत tailnet बाइंड के बजाय Serve/Funnel को प्राथमिकता दें:
यह Android को एक सुरक्षित wss:// / https:// एंडपॉइंट देता है। जब तक आप अलग से TLS समाप्ति भी न करें, केवल gateway.bind: "tailnet" सेटअप पहली बार की दूरस्थ Android पेयरिंग के लिए पर्याप्त नहीं है।

2. खोज सत्यापित करें (वैकल्पिक)

Gateway मशीन से:
अधिक डीबगिंग टिप्पणियाँ: Bonjour यदि आपने विस्तृत-क्षेत्र खोज डोमेन भी कॉन्फ़िगर किया है, तो इससे तुलना करें:
यह केवल TXT संकेतों के बजाय समाधान किए गए सेवा एंडपॉइंट का उपयोग करके एक ही बार में local. और कॉन्फ़िगर किया गया विस्तृत-क्षेत्र डोमेन दिखाता है।

यूनिकास्ट DNS-SD द्वारा क्रॉस-नेटवर्क खोज

Android NSD/mDNS खोज नेटवर्क सीमाओं को पार नहीं करती। यदि Android Node और Gateway अलग-अलग नेटवर्क पर हैं, लेकिन Tailscale के माध्यम से जुड़े हैं, तो इसके बजाय Wide-Area Bonjour / यूनिकास्ट DNS-SD का उपयोग करें। केवल खोज tailnet/सार्वजनिक Android पेयरिंग के लिए पर्याप्त नहीं है — खोजे गए मार्ग को फिर भी सुरक्षित एंडपॉइंट (wss:// या Tailscale Serve) चाहिए:
  1. Gateway होस्ट पर DNS-SD ज़ोन (उदाहरण openclaw.internal.) सेट करें और _openclaw-gw._tcp रिकॉर्ड प्रकाशित करें।
  2. अपने चुने हुए डोमेन के लिए उस DNS सर्वर की ओर इंगित करने वाला Tailscale स्प्लिट DNS कॉन्फ़िगर करें।
विवरण और उदाहरण CoreDNS कॉन्फ़िगरेशन: Bonjour

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

Android ऐप में:
  • ऐप एक foreground service (स्थायी सूचना) द्वारा अपना Gateway कनेक्शन सक्रिय रखता है।
  • Connect टैब खोलें।
  • Setup Code या Manual मोड का उपयोग करें।
  • यदि खोज अवरुद्ध है, तो Advanced controls में मैन्युअल होस्ट/पोर्ट का उपयोग करें। निजी LAN होस्ट के लिए ws:// अब भी काम करता है। Tailscale/सार्वजनिक होस्ट के लिए TLS चालू करें और wss:// / Tailscale Serve एंडपॉइंट का उपयोग करें।
पहली सफल पेयरिंग के बाद Android लॉन्च होने पर सक्रिय पेयर किए गए Gateway से स्वचालित रूप से पुनः कनेक्ट होता है (खोजे गए Gateways के लिए यथासंभव, जिन्हें नेटवर्क पर दिखाई देना आवश्यक है)। आधिकारिक सेटअप कोड Android को Node के रूप में कनेक्ट करते हैं और डिफ़ॉल्ट रूप से wss:// के माध्यम से पूर्ण Gateway ऑपरेटर पहुँच प्रदान करते हैं। प्लेनटेक्स्ट नॉन-लूपबैक ws:// सेटअप बेयरर-टोकन सुरक्षा के लिए स्वचालित रूप से सीमित पहुँच का उपयोग करता है। Settings → Gateway में Full या Limited पहुँच दिखाई जाती है। सीमित कनेक्शन के लिए, wss:// या Tailscale Serve कॉन्फ़िगर करें, Control UI में या openclaw qr से नया पूर्ण-पहुँच कोड जनरेट करें, फिर उस पृष्ठ पर उसे स्कैन या पेस्ट करके दोबारा कनेक्ट करें। जो ऑपरेटर कम अधिकारों वाली प्रोफ़ाइल चाहते हैं, वे Control UI में Limited access चुन सकते हैं या openclaw qr --limited चला सकते हैं।

युग्मित Gateway प्रबंधित करें

ऐप अपने साथ युग्मित प्रत्येक Gateway की रजिस्ट्री रखता है, ताकि आप ऑपरेटर सत्रों को कनेक्ट रख सकें और दोबारा युग्मित किए बिना फ़ोकस बदल सकें:
  • Settings → Gateway में युग्मित Gateway सूचीबद्ध होते हैं और फ़ोकस किए गए Gateway को चिह्नित किया जाता है। किसी प्रविष्टि पर टैप करके उस पर फ़ोकस करें; अन्य सक्षम ऑपरेटर सत्र कनेक्ट रहते हैं।
  • प्रत्येक स्विच नियंत्रित करता है कि ऐप के फ़ोरग्राउंड में रहने के दौरान वह गैर-फ़ोकस Gateway कनेक्ट रहे या नहीं। फ़ोकस किया गया Gateway सक्षम रहता है और फ़ोन के Node कनेक्शन तथा डिवाइस क्षमताओं का स्वामी होता है।
  • एक से अधिक Gateway युग्मित होने पर Connect टैब एक त्वरित स्विचर दिखाता है।
  • क्रेडेंशियल, डिवाइस टोकन, TLS ट्रस्ट, चैट इतिहास और कतारबद्ध ऑफ़लाइन संदेश प्रत्येक Gateway के लिए अलग-अलग संग्रहीत होते हैं। फ़ोकस बदलने से Gateway के बीच स्थिति कभी नहीं मिलती, और ऑफ़लाइन रहते हुए कतारबद्ध संदेश केवल उसी Gateway को भेजे जाते हैं जिसके लिए वे लिखे गए थे।
  • Forget किसी Gateway की रजिस्ट्री प्रविष्टि को उसके क्रेडेंशियल, डिवाइस टोकन, TLS पिन और कैश किए गए चैट सहित हटा देता है।

उपस्थिति सक्रियता बीकन

प्रमाणीकृत Node सत्र कनेक्ट होने के बाद, और फ़ोरग्राउंड सेवा के कनेक्ट रहते हुए ऐप के बैकग्राउंड में जाने पर, Android event: "node.presence.alive" के साथ node.event को कॉल करता है। प्रमाणीकृत Node डिवाइस पहचान ज्ञात होने के बाद ही Gateway इसे युग्मित Node/डिवाइस मेटाडेटा पर lastSeenAtMs/lastSeenReason के रूप में दर्ज करता है। ऐप बीकन को सफलतापूर्वक दर्ज हुआ केवल तभी मानता है, जब Gateway प्रतिक्रिया में handled: true शामिल हो। पुराने Gateway { "ok": true } के साथ node.event को स्वीकार कर सकते हैं; वह प्रतिक्रिया संगत है, लेकिन उसे स्थायी अंतिम-दर्शन अपडेट नहीं माना जाता।

4. युग्मन स्वीकृत करें (CLI)

Gateway मशीन पर:
युग्मन विवरण: युग्मन वैकल्पिक: यदि Android Node हमेशा कड़ाई से नियंत्रित सबनेट से कनेक्ट होता है, तो आप स्पष्ट CIDR या सटीक IP के साथ पहली बार के Node स्वचालित-अनुमोदन को सक्षम कर सकते हैं:
यह डिफ़ॉल्ट रूप से अक्षम है। यह बिना अनुरोधित स्कोप वाले नए role: node युग्मन पर ही लागू होता है। ऑपरेटर/ब्राउज़र युग्मन और भूमिका, स्कोप, मेटाडेटा या सार्वजनिक-कुंजी में किसी भी बदलाव के लिए अब भी मैन्युअल अनुमोदन आवश्यक है।

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

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

Android चैट टैब सत्र चयन का समर्थन करता है (डिफ़ॉल्ट main, साथ ही अन्य मौजूदा सत्र):
  • इतिहास: chat.history (प्रदर्शन के लिए सामान्यीकृत — इनलाइन डायरेक्टिव टैग, प्लेन-टेक्स्ट टूल-कॉल XML पेलोड (<tool_call>, <function_call>, <tool_calls>, <function_calls> और उनके संक्षिप्त किए गए प्रकार), तथा लीक हुए ASCII/पूर्ण-चौड़ाई मॉडल नियंत्रण टोकन हटा दिए जाते हैं; सटीक NO_REPLY / no_reply जैसी मूक-टोकन सहायक पंक्तियाँ छोड़ दी जाती हैं; बहुत बड़ी पंक्तियों को प्लेसहोल्डर से बदला जा सकता है)
  • भेजें: chat.send
  • स्थायी प्रेषण: प्रत्येक प्रेषण (टेक्स्ट, चुनी हुई छवियाँ और वॉइस नोट) किसी भी नेटवर्क प्रयास से पहले प्रत्येक Gateway के लिए डिवाइस पर मौजूद आउटबॉक्स में दर्ज किया जाता है, इसलिए ऐप बंद होने पर सबमिट किया गया इनपुट नष्ट नहीं हो सकता। ऑफ़लाइन रहते हुए कतारबद्ध प्रेषण दोबारा कनेक्ट होने पर स्थिर आइडेम्पोटेंसी कुंजियों के साथ क्रम से डिलीवर होते हैं, और कोई प्रेषण केवल तभी हटाया जाता है जब वह टर्न कैनोनिकल chat.history में दिखाई दे — केवल अभिस्वीकृति को डिलीवरी का प्रमाण नहीं माना जाता। अस्पष्ट परिणाम (अभिस्वीकृति खोना, प्रेषण के बीच ऐप बंद होना, ट्रांसक्रिप्ट लिखे जाने से पहले Gateway पुनः आरंभ होना) स्वचालित रूप से दोबारा भेजने के बजाय स्पष्ट Retry/Delete वाली दृश्यमान पंक्तियों के रूप में दिखते हैं। स्लैश कमांड दोबारा कनेक्ट होने के बाद कभी स्वचालित रूप से पुनः नहीं चलाए जाते; उन्हें स्पष्ट पुनः प्रयास के लिए रोक दिया जाता है। कतार सीमित है (प्रत्येक Gateway के लिए 50 संदेश और 48 MB अटैचमेंट बाइट), और न भेजी गई पंक्तियाँ 48 घंटे बाद समाप्त हो जाती हैं। कभी सबमिट न किए गए कंपोज़र ड्राफ़्ट प्रक्रिया-स्थायी नहीं होते।
  • पुश अपडेट (सर्वोत्तम प्रयास): chat.subscribe -> event:"chat"
  • सुनें: किसी सहायक संदेश को देर तक दबाएँ और उसे सुनने के लिए Listen चुनें; ऑडियो कॉन्फ़िगर की गई TTS प्रदाता शृंखला के साथ Gateway tts.speak के माध्यम से रेंडर होता है, और Gateway द्वारा ऑडियो रेंडर न कर पाने पर डिवाइस की सिस्टम TTS का उपयोग किया जाता है। सत्र बदलने, नई चैट शुरू करने, ऐप के बैकग्राउंड में जाने या चैट बंद होने पर प्लेबैक रुक जाता है।

7. कैनवास + कैमरा

Gateway कैनवास होस्ट (वेब सामग्री के लिए अनुशंसित)

Node को वास्तविक HTML/CSS/JS दिखाने के लिए, जिसे एजेंट डिस्क पर संपादित कर सके, Node को Gateway कैनवास होस्ट पर निर्देशित करें।
Node, Gateway HTTP सर्वर से कैनवास लोड करते हैं (gateway.port के समान पोर्ट, डिफ़ॉल्ट 18789)।
  1. Gateway होस्ट पर ~/.openclaw/workspace/canvas/index.html बनाएँ।
  2. Node को वहाँ ले जाएँ (LAN):
Tailnet (वैकल्पिक): यदि दोनों डिवाइस Tailscale पर हैं, तो .local के बजाय MagicDNS नाम या tailnet IP का उपयोग करें, जैसे http://<gateway-magicdns>:18789/__openclaw__/canvas/ यह सर्वर HTML में लाइव-रीलोड क्लाइंट इंजेक्ट करता है और फ़ाइल बदलने पर पुनः लोड करता है। Gateway /__openclaw__/a2ui/ भी सर्व करता है, लेकिन Android ऐप दूरस्थ A2UI पृष्ठों को केवल रेंडर करने योग्य मानता है। क्रिया-सक्षम A2UI कमांड ऐप के स्वामित्व वाले बंडल किए गए A2UI पृष्ठ का उपयोग करते हैं। कैनवास कमांड (केवल फ़ोरग्राउंड में):
  • canvas.eval, canvas.snapshot, canvas.navigate (डिफ़ॉल्ट स्कैफ़ोल्ड पर लौटने के लिए {"url":""} या {"url":"/"} का उपयोग करें)। canvas.snapshot, { format, base64 } लौटाता है (डिफ़ॉल्ट format="jpeg")।
  • A2UI: canvas.a2ui.push, canvas.a2ui.reset (canvas.a2ui.pushJSONL पुराना उपनाम)। ये क्रिया-सक्षम रेंडरिंग के लिए ऐप के स्वामित्व वाले बंडल किए गए A2UI पृष्ठ का उपयोग करते हैं।
कैमरा कमांड (केवल फ़ोरग्राउंड में; अनुमति-नियंत्रित): camera.snap (jpg), camera.clip (mp4)। पैरामीटर और CLI सहायकों के लिए कैमरा Node देखें।

8. आवाज़ + विस्तारित Android कमांड सतह

  • Android का शेल नेविगेशन Home, Chat और Settings है। ध्वनि इनपुट चैट कंपोज़र में होता है; अलग Voice टैब नहीं है।
  • डिवाइस पर वाक् पहचान से ड्राफ़्ट में ट्रांसक्रिप्ट डालने के लिए कंपोज़र माइक्रोफ़ोन पर टैप करें। वॉइस-नोट अटैचमेंट रिकॉर्ड करने के लिए माइक्रोफ़ोन को देर तक दबाएँ। प्रयास को चुपचाप छोड़ने के बजाय UI अनुपलब्ध पहचान, अनुपस्थित अनुमति, व्यस्तता/नेटवर्क विफलताओं और वाक् न मिलने के परिणामों की सूचना देता है।
  • चैट वेवफ़ॉर्म से निरंतर Talk शुरू करें। डिक्टेशन, वॉइस-नोट रिकॉर्डिंग और Talk परस्पर अनन्य माइक्रोफ़ोन पथ हैं।
  • Talk Mode कैप्चर शुरू होने से पहले मौजूदा फ़ोरग्राउंड सेवा को connectedDevice से connectedDevice|microphone में पदोन्नत करता है, फिर Talk Mode रुकने पर उसे अवनत कर देता है। Node सेवा CHANGE_NETWORK_STATE के साथ FOREGROUND_SERVICE_CONNECTED_DEVICE घोषित करती है; Android 14+ के लिए FOREGROUND_SERVICE_MICROPHONE घोषणा, RECORD_AUDIO रनटाइम अनुदान और रनटाइम पर माइक्रोफ़ोन सेवा प्रकार भी आवश्यक हैं।
  • डिफ़ॉल्ट रूप से Android Talk, कॉन्फ़िगर किए गए Gateway Talk प्रदाता के माध्यम से मूल वाक् पहचान, Gateway चैट और talk.speak का उपयोग करता है। स्थानीय सिस्टम TTS का उपयोग केवल तब किया जाता है जब talk.speak अनुपलब्ध हो।
  • Android Talk रीयलटाइम Gateway रिले का उपयोग केवल तब करता है जब talk.realtime.mode, realtime हो और talk.realtime.transport, gateway-relay हो।
  • Android voiceWake क्षमता का विज्ञापन नहीं करता। ध्वनि इनपुट के लिए चैट डिक्टेशन, वॉइस नोट या Talk का उपयोग करें।
  • अतिरिक्त Android कमांड परिवार (उपलब्धता डिवाइस, अनुमतियों और उपयोगकर्ता सेटिंग्स पर निर्भर करती है):
    • device.status, device.info, device.permissions, device.health
    • device.apps केवल तब, जब Settings > Phone Capabilities > Installed Apps सक्षम हो; यह डिफ़ॉल्ट रूप से लॉन्चर में दिखाई देने वाले ऐप सूचीबद्ध करता है (पूरी सूची के लिए includeNonLaunchable पास करें)।
    • notifications.list, notifications.actions (नीचे सूचना अग्रेषण देखें)
    • photos.latest
    • contacts.search, contacts.add
    • calendar.events, calendar.add
    • callLog.search
    • sms.search
    • motion.activity, motion.pedometer

9. कार्यस्थान फ़ाइलें (केवल-पढ़ने योग्य)

Home अवलोकन में एक Files कार्ड शामिल है, जो केवल-पढ़ने योग्य agents.workspace.list / agents.workspace.get Gateway RPC के माध्यम से सक्रिय एजेंट के कार्यस्थान को ब्राउज़ करता है: डायरेक्टरी में अंदर जाना, टेक्स्ट और छवि पूर्वावलोकन तथा Android शेयर शीट के माध्यम से निर्यात। कोई लेखन क्रिया नहीं है, और पूर्वावलोकन का आकार Gateway द्वारा सीमित किया जाता है।

कमांड अनुमोदनों की समीक्षा करें

operator.admin वाला ऑपरेटर कनेक्शन, या Gateway द्वारा स्पष्ट रूप से लक्षित युग्मित operator.approvals कनेक्शन, Settings -> Approvals के अंतर्गत लंबित निष्पादन अनुरोधों की समीक्षा कर सकता है। ऐप अपने बटन सक्षम करने से पहले Gateway का सैनिटाइज़ किया गया अनुमोदन रिकॉर्ड लोड करता है, उस अनुरोध द्वारा दिए गए सभी सुरक्षा चेतावनी और सटीक निर्णय दिखाता है, तथा अनुमोदन ID और स्वामी प्रकार Gateway को वापस सबमिट करता है। अनुमोदन स्थिति Control UI और समर्थित चैट सतहों के साथ साझा की जाती है। पहला प्रतिबद्ध उत्तर मान्य होता है; किसी अन्य सतह द्वारा पहले उत्तर दिए जाने पर भी Android वही कैनोनिकल परिणाम दिखाता है। यदि समाधान प्रतिक्रिया खो जाती है या Gateway डिस्कनेक्ट हो जाता है, तो ऐप कार्रवाई को लॉक रखता है और दूसरा निर्णय देने से पहले अनुमोदन को दोबारा पढ़ता है। एकीकृत अनुमोदन विधियों से पुराने Gateway, जारी किए गए निष्पादन-विशिष्ट तरीकों पर वापस चले जाते हैं। लंबित समीक्षा फिर भी काम करती है, लेकिन सुरक्षित रखी गई टर्मिनल स्थिति और अधिक समृद्ध क्रॉस-सतह परिणाम के लिए अपडेट किया हुआ Gateway आवश्यक है।

एजेंट के प्रश्नों का उत्तर दें

चैट, operator.questions (या operator.admin) वाले ऑपरेटर कनेक्शन के लिए लंबित Gateway प्रश्नों को मूल कार्ड के रूप में दिखाता है। कार्ड एकल और बहु-चयन विकल्पों, विकल्प विवरणों, मुक्त-टेक्स्ट Other उत्तरों और समाप्ति उलटी गिनती का समर्थन करते हैं। दोबारा कनेक्ट होने पर लंबित प्रश्न Gateway से पुनः लोड होते हैं। जब यह डिवाइस उत्तर देता है, कोई अन्य सतह पहले उत्तर देती है, या प्रश्न समाप्त अथवा रद्द हो जाता है, तो कार्ड लॉक हो जाता है।

सहायक प्रवेश-बिंदु

Android सिस्टम सहायक ट्रिगर (Google Assistant) से OpenClaw लॉन्च करने का समर्थन करता है। होम बटन को दबाए रखने पर (या किसी अन्य ACTION_ASSIST ट्रिगर से) ऐप खुलता है; “Hey Google, ask OpenClaw <prompt>” कहने पर ऐप का घोषित App Actions क्वेरी पैटर्न मेल खाता है और प्रॉम्प्ट को स्वचालित रूप से भेजे बिना चैट कंपोज़र में डाल देता है। यह ऐप मेनिफ़ेस्ट में घोषित Android App Actions (shortcuts.xml क्षमता) का उपयोग करता है। Gateway की ओर किसी कॉन्फ़िगरेशन की आवश्यकता नहीं है — सहायक इंटेंट पूरी तरह Android ऐप द्वारा संभाला जाता है।
App Actions की उपलब्धता डिवाइस, Google Play Services संस्करण और इस बात पर निर्भर करती है कि उपयोगकर्ता ने OpenClaw को डिफ़ॉल्ट सहायक ऐप के रूप में सेट किया है या नहीं।

सूचना अग्रेषण

Android डिवाइस सूचनाओं को node.event आइटम के रूप में Gateway को अग्रेषित कर सकता है। इसे ऐप की Settings शीट में डिवाइस पर कॉन्फ़िगर किया जाता है — Gateway/openclaw.json कॉन्फ़िगरेशन में नहीं।
सूचना अग्रेषण के लिए Android Notification Listener अनुमति आवश्यक है। ऐप सेटअप के दौरान इसके लिए संकेत देता है।
WhatsApp, WhatsApp Business, Telegram, Telegram X, Discord और Signal की सूचनाएँ हमेशा बाहर रखी जाती हैं। उनके संदेश पहले से ही मूल OpenClaw चैनल सत्रों के स्वामित्व में होते हैं; Android सूचना को अलग Node ईवेंट के रूप में अग्रेषित करने से उत्तर गलत वार्तालाप के माध्यम से रूट हो सकता है।

संबंधित