कैमरा कैप्चर (एजेंट)¶
OpenClaw एजेंट वर्कफ़्लो के लिए कैमरा कैप्चर का समर्थन करता है:
- iOS नोड (Gateway के माध्यम से जोड़ा गया):
node.invokeके माध्यम से फ़ोटो (jpg) या छोटा वीडियो क्लिप (mp4, वैकल्पिक ऑडियो के साथ) कैप्चर करें। - Android नोड (Gateway के माध्यम से जोड़ा गया):
node.invokeके माध्यम से फ़ोटो (jpg) या छोटा वीडियो क्लिप (mp4, वैकल्पिक ऑडियो के साथ) कैप्चर करें। - macOS ऐप (Gateway के माध्यम से नोड):
node.invokeके माध्यम से फ़ोटो (jpg) या छोटा वीडियो क्लिप (mp4, वैकल्पिक ऑडियो के साथ) कैप्चर करें।
सभी कैमरा एक्सेस उपयोगकर्ता-नियंत्रित सेटिंग्स के पीछे सीमित हैं।
iOS नोड¶
उपयोगकर्ता सेटिंग (डिफ़ॉल्ट चालू)¶
- iOS Settings टैब → Camera → Allow Camera (
camera.enabled) - डिफ़ॉल्ट: चालू (गुम कुंजी को सक्षम माना जाता है)।
- बंद होने पर:
camera.*कमांडCAMERA_DISABLEDलौटाते हैं।
कमांड (Gateway node.invoke के माध्यम से)¶
camera.list-
प्रतिक्रिया पेलोड:
devices:{ id, name, position, deviceType }की ऐरे
-
camera.snap - पैरामीटर:
facing:front|back(डिफ़ॉल्ट:front)maxWidth: संख्या (वैकल्पिक; iOS नोड पर डिफ़ॉल्ट1600)quality:0..1(वैकल्पिक; डिफ़ॉल्ट0.9)format: वर्तमान मेंjpgdelayMs: संख्या (वैकल्पिक; डिफ़ॉल्ट0)deviceId: स्ट्रिंग (वैकल्पिक;camera.listसे)
- प्रतिक्रिया पेलोड:
format: "jpg"base64: "<...>"width,height
-
पेलोड गार्ड: फ़ोटो को पुनः-संपीड़ित किया जाता है ताकि base64 पेलोड 5 MB से कम रहे।
-
camera.clip - पैरामीटर:
facing:front|back(डिफ़ॉल्ट:front)durationMs: संख्या (डिफ़ॉल्ट3000, अधिकतम60000तक सीमित)includeAudio: बूलियन (डिफ़ॉल्टtrue)format: वर्तमान मेंmp4deviceId: स्ट्रिंग (वैकल्पिक;camera.listसे)
- प्रतिक्रिया पेलोड:
format: "mp4"base64: "<...>"durationMshasAudio
फ़ोरग्राउंड आवश्यकता¶
canvas.* की तरह, iOS node केवल foreground में camera.* कमांड्स की अनुमति देता है। Background invocations NODE_BACKGROUND_UNAVAILABLE लौटाते हैं।
CLI सहायक (अस्थायी फ़ाइलें + MEDIA)¶
अटैचमेंट प्राप्त करने का सबसे आसान तरीका CLI सहायक है, जो डिकोड किए गए मीडिया को एक अस्थायी फ़ाइल में लिखता है और MEDIA:<path> प्रिंट करता है।
उदाहरण:
openclaw nodes camera snap --node <id> # default: both front + back (2 MEDIA lines)
openclaw nodes camera snap --node <id> --facing front
openclaw nodes camera clip --node <id> --duration 3000
openclaw nodes camera clip --node <id> --no-audio
नोट्स:
nodes camera snapडिफ़ॉल्ट रूप से दोनों फ़ेसिंग्स पर सेट होता है ताकि एजेंट को दोनों दृश्य मिलें।- आउटपुट फ़ाइलें अस्थायी होती हैं (OS टेम्प निर्देशिका में) जब तक आप अपना स्वयं का रैपर न बनाएँ।
Android नोड¶
Android उपयोगकर्ता सेटिंग (डिफ़ॉल्ट चालू)¶
- Android Settings शीट → Camera → Allow Camera (
camera.enabled) - डिफ़ॉल्ट: चालू (गुम कुंजी को सक्षम माना जाता है)।
- बंद होने पर:
camera.*कमांडCAMERA_DISABLEDलौटाते हैं।
अनुमतियाँ¶
- Android को रनटाइम अनुमतियाँ आवश्यक हैं:
CAMERAदोनोंcamera.snapऔरcamera.clipके लिए।RECORD_AUDIOcamera.clipके लिए, जबincludeAudio=true।
यदि अनुमतियाँ अनुपस्थित हैं, तो ऐप जहाँ संभव हो प्रॉम्प्ट करेगा; यदि अस्वीकार किया गया, तो camera.* अनुरोध
*_PERMISSION_REQUIRED त्रुटि के साथ विफल हो जाते हैं।
Android फ़ोरग्राउंड आवश्यकता¶
canvas.* की तरह, Android node केवल foreground में camera.* कमांड्स की अनुमति देता है। Background invocations NODE_BACKGROUND_UNAVAILABLE लौटाते हैं।
पेलोड गार्ड¶
फ़ोटो को पुनः-संपीड़ित किया जाता है ताकि base64 पेलोड 5 MB से कम रहे।
macOS ऐप¶
उपयोगकर्ता सेटिंग (डिफ़ॉल्ट बंद)¶
macOS सहचर ऐप एक चेकबॉक्स प्रदान करता है:
- सेटिंग्स → सामान्य → कैमरा की अनुमति दें (
openclaw.cameraEnabled) - डिफ़ॉल्ट: बंद
- बंद होने पर: कैमरा अनुरोध “Camera disabled by user” लौटाते हैं।
CLI सहायक (नोड इन्वोक)¶
macOS नोड पर कैमरा कमांड इन्वोक करने के लिए मुख्य openclaw CLI का उपयोग करें।
उदाहरण:
openclaw nodes camera list --node <id> # list camera ids
openclaw nodes camera snap --node <id> # prints MEDIA:<path>
openclaw nodes camera snap --node <id> --max-width 1280
openclaw nodes camera snap --node <id> --delay-ms 2000
openclaw nodes camera snap --node <id> --device-id <id>
openclaw nodes camera clip --node <id> --duration 10s # prints MEDIA:<path>
openclaw nodes camera clip --node <id> --duration-ms 3000 # prints MEDIA:<path> (legacy flag)
openclaw nodes camera clip --node <id> --device-id <id>
openclaw nodes camera clip --node <id> --no-audio
नोट्स:
openclaw nodes camera snapडिफ़ॉल्ट रूप सेmaxWidth=1600होता है जब तक ओवरराइड न किया जाए।- macOS पर,
camera.snapकैप्चर से पहले वार्म-अप/एक्सपोज़र सेटल होने के बादdelayMs(डिफ़ॉल्ट 2000ms) प्रतीक्षा करता है। - फ़ोटो पेलोड को base64 को 5 MB से कम रखने के लिए पुनः-संपीड़ित किया जाता है।
सुरक्षा + व्यावहारिक सीमाएँ¶
- कैमरा और माइक्रोफ़ोन एक्सेस सामान्य OS अनुमति प्रॉम्प्ट ट्रिगर करते हैं (और Info.plist में उपयोग स्ट्रिंग्स की आवश्यकता होती है)।
- वीडियो क्लिप सीमित हैं (वर्तमान में
<= 60s) ताकि अत्यधिक बड़े नोड पेलोड से बचा जा सके (base64 ओवरहेड + संदेश सीमाएँ)।
macOS स्क्रीन वीडियो (OS-स्तरीय)¶
स्क्रीन वीडियो (कैमरा नहीं) के लिए, macOS सहचर का उपयोग करें:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # prints MEDIA:<path>
नोट्स:
- macOS Screen Recording अनुमति (TCC) आवश्यक है।