Nodes and media
कैमरा कैप्चर
OpenClaw agent workflows के लिए कैमरा कैप्चर का समर्थन करता है:
- iOS Node (Gateway के जरिए पेयर किया गया):
node.invokeके जरिए फ़ोटो (jpg) या छोटी वीडियो क्लिप (mp4, वैकल्पिक ऑडियो के साथ) कैप्चर करें। - Android Node (Gateway के जरिए पेयर किया गया):
node.invokeके जरिए फ़ोटो (jpg) या छोटी वीडियो क्लिप (mp4, वैकल्पिक ऑडियो के साथ) कैप्चर करें। - macOS ऐप (Gateway के जरिए Node):
node.invokeके जरिए फ़ोटो (jpg) या छोटी वीडियो क्लिप (mp4, वैकल्पिक ऑडियो के साथ) कैप्चर करें।
सभी कैमरा एक्सेस उपयोगकर्ता-नियंत्रित सेटिंग्स के पीछे नियंत्रित है।
iOS Node
उपयोगकर्ता सेटिंग (डिफ़ॉल्ट रूप से चालू)
- iOS Settings टैब → Camera → Allow Camera (
camera.enabled)- डिफ़ॉल्ट: चालू (अनुपस्थित कुंजी को सक्षम माना जाता है)।
- बंद होने पर:
camera.*कमांडCAMERA_DISABLEDलौटाते हैं।
कमांड (Gateway node.invoke के जरिए)
-
camera.list- प्रतिक्रिया payload:
devices:{ id, name, position, deviceType }की array
- प्रतिक्रिया payload:
-
camera.snap- Params:
facing:front|back(डिफ़ॉल्ट:front)maxWidth: number (वैकल्पिक; iOS Node पर डिफ़ॉल्ट1600)quality:0..1(वैकल्पिक; डिफ़ॉल्ट0.9)format: वर्तमान मेंjpgdelayMs: number (वैकल्पिक; डिफ़ॉल्ट0)deviceId: string (वैकल्पिक;camera.listसे)
- प्रतिक्रिया payload:
format: "jpg"base64: "<...>"width,height
- Payload guard: base64 payload को 5 MB से कम रखने के लिए फ़ोटो को फिर से compress किया जाता है।
- Params:
-
camera.clip- Params:
facing:front|back(डिफ़ॉल्ट:front)durationMs: number (डिफ़ॉल्ट3000, अधिकतम60000तक सीमित)includeAudio: boolean (डिफ़ॉल्टtrue)format: वर्तमान मेंmp4deviceId: string (वैकल्पिक;camera.listसे)
- प्रतिक्रिया payload:
format: "mp4"base64: "<...>"durationMshasAudio
- Params:
Foreground आवश्यकता
canvas.* की तरह, iOS Node केवल foreground में camera.* कमांड की अनुमति देता है। Background invocations NODE_BACKGROUND_UNAVAILABLE लौटाते हैं।
CLI helper
मीडिया फ़ाइलें पाने का सबसे आसान तरीका CLI helper है, जो decoded media को temp file में लिखता है और saved path print करता है।
उदाहरण:
openclaw nodes camera snap --node <id> # default: both front + back (2 MEDIA lines)openclaw nodes camera snap --node <id> --facing frontopenclaw nodes camera clip --node <id> --duration 3000openclaw nodes camera clip --node <id> --no-audioनोट्स:
nodes camera snapagent को दोनों views देने के लिए डिफ़ॉल्ट रूप से दोनों facings का उपयोग करता है।- Output files अस्थायी होती हैं (OS temp directory में), जब तक आप अपना wrapper नहीं बनाते।
Android Node
Android उपयोगकर्ता सेटिंग (डिफ़ॉल्ट रूप से चालू)
- Android Settings sheet → Camera → Allow Camera (
camera.enabled)- डिफ़ॉल्ट: चालू (अनुपस्थित कुंजी को सक्षम माना जाता है)।
- बंद होने पर:
camera.*कमांडCAMERA_DISABLEDलौटाते हैं।
अनुमतियां
- Android को runtime permissions चाहिए:
camera.snapऔरcamera.clipदोनों के लिएCAMERA।includeAudio=trueहोने परcamera.clipके लिएRECORD_AUDIO।
यदि permissions अनुपस्थित हैं, तो ऐप संभव होने पर prompt करेगा; यदि denied हो, तो camera.* requests
*_PERMISSION_REQUIRED error के साथ fail होती हैं।
Android foreground आवश्यकता
canvas.* की तरह, Android Node केवल foreground में camera.* कमांड की अनुमति देता है। Background invocations NODE_BACKGROUND_UNAVAILABLE लौटाते हैं।
Android कमांड (Gateway node.invoke के जरिए)
camera.list- प्रतिक्रिया payload:
devices:{ id, name, position, deviceType }की array
- प्रतिक्रिया payload:
Payload guard
base64 payload को 5 MB से कम रखने के लिए फ़ोटो को फिर से compress किया जाता है।
macOS ऐप
उपयोगकर्ता सेटिंग (डिफ़ॉल्ट रूप से बंद)
macOS companion ऐप एक checkbox दिखाता है:
- Settings → General → Allow Camera (
openclaw.cameraEnabled)- डिफ़ॉल्ट: बंद
- बंद होने पर: camera requests "Camera disabled by user" लौटाती हैं।
CLI helper (Node invoke)
macOS Node पर camera commands invoke करने के लिए मुख्य openclaw CLI का उपयोग करें।
उदाहरण:
openclaw nodes camera list --node <id> # list camera idsopenclaw nodes camera snap --node <id> # prints saved pathopenclaw nodes camera snap --node <id> --max-width 1280openclaw nodes camera snap --node <id> --delay-ms 2000openclaw nodes camera snap --node <id> --device-id <id>openclaw nodes camera clip --node <id> --duration 10s # prints saved pathopenclaw nodes camera clip --node <id> --duration-ms 3000 # prints saved path (legacy flag)openclaw nodes camera clip --node <id> --device-id <id>openclaw nodes camera clip --node <id> --no-audioनोट्स:
openclaw nodes camera snapoverride न होने पर डिफ़ॉल्ट रूप सेmaxWidth=1600का उपयोग करता है।- macOS पर,
camera.snapcapture करने से पहले warm-up/exposure settle के बादdelayMs(डिफ़ॉल्ट 2000ms) प्रतीक्षा करता है। - base64 को 5 MB से कम रखने के लिए photo payloads को फिर से compress किया जाता है।
सुरक्षा + व्यावहारिक सीमाएं
- Camera और microphone access सामान्य OS permission prompts trigger करते हैं (और Info.plist में usage strings की आवश्यकता होती है)।
- Video clips को oversized Node payloads (base64 overhead + message limits) से बचने के लिए सीमित किया जाता है (वर्तमान में
<= 60s)।
macOS screen video (OS-level)
camera नहीं, बल्कि screen video के लिए macOS companion का उपयोग करें:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # prints saved pathनोट्स:
- macOS Screen Recording permission (TCC) आवश्यक है।