Kamerainspelning (agent)¶
OpenClaw stöder kamerainspelning för agentarbetsflöden:
- iOS-nod (parad via Gateway): ta ett foto (
jpg) eller ett kort videoklipp (mp4, med valfritt ljud) vianode.invoke. - Android-nod (parad via Gateway): ta ett foto (
jpg) eller ett kort videoklipp (mp4, med valfritt ljud) vianode.invoke. - macOS-app (nod via Gateway): ta ett foto (
jpg) eller ett kort videoklipp (mp4, med valfritt ljud) vianode.invoke.
All kameratillgång är spärrad bakom användarkontrollerade inställningar.
iOS-nod¶
Användarinställning (standard på)¶
- iOS-inställningsfliken → Kamera → Tillåt kamera (
camera.enabled) - Standard: på (saknad nyckel behandlas som aktiverad).
- När av:
camera.*-kommandon returnerarCAMERA_DISABLED.
Kommandon (via Gateway node.invoke)¶
camera.list-
Svarspayload:
devices: array av{ id, name, position, deviceType }
-
camera.snap - Parametrar:
facing:front|back(standard:front)maxWidth: number (valfri; standard1600på iOS-noden)quality:0..1(valfri; standard0.9)format: för närvarandejpgdelayMs: number (valfri; standard0)deviceId: string (valfri; fråncamera.list)
- Svarspayload:
format: "jpg"base64: "<...>"width,height
-
Payload-skydd: foton rekomprimeras för att hålla base64-payloaden under 5 MB.
-
camera.clip - Parametrar:
facing:front|back(standard:front)durationMs: number (standard3000, begränsad till max60000)includeAudio: boolean (standardtrue)format: för närvarandemp4deviceId: string (valfri; fråncamera.list)
- Svarspayload:
format: "mp4"base64: "<...>"durationMshasAudio
Förgrundskrav¶
Som canvas.*, tillåter iOS-noden endast camera.* kommandon i förgrunden. Bakgrundsinciteringar returnerar NODE_BACKGROUND_UNAVAILABLE.
CLI-hjälpare (temporära filer + MEDIA)¶
Det enklaste sättet att få bilagor är via CLI-hjälparen, som skriver avkodad media till en temporär fil och skriver ut MEDIA:<path>.
Exempel:
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
Noteringar:
nodes camera snapär som standard båda riktningarna för att ge agenten båda vyerna.- Utdatafiler är temporära (i OS:ets temporära katalog) om du inte bygger ett eget omslag.
Android-nod¶
Android-användarinställning (standard på)¶
- Android-inställningsblad → Kamera → Tillåt kamera (
camera.enabled) - Standard: på (saknad nyckel behandlas som aktiverad).
- När av:
camera.*-kommandon returnerarCAMERA_DISABLED.
Behörigheter¶
- Android kräver körningsbehörigheter:
CAMERAför bådecamera.snapochcamera.clip.RECORD_AUDIOförcamera.clipnärincludeAudio=true.
Om behörigheter saknas uppmanar appen när det är möjligt; om de nekas misslyckas camera.*-begäranden med ett
*_PERMISSION_REQUIRED-fel.
Android-krav på förgrund¶
Som canvas.*, tillåter Android-noden endast camera.* kommandon i förgrunden. Bakgrundsinciteringar returnerar NODE_BACKGROUND_UNAVAILABLE.
Payload-skydd¶
Foton rekomprimeras för att hålla base64-payloaden under 5 MB.
macOS-app¶
Användarinställning (standard av)¶
macOS companion-appen exponerar en kryssruta:
- Inställningar → Allmänt → Tillåt kamera (
openclaw.cameraEnabled) - Standard: av
- När av: kamerabegäranden returnerar ”Kamera inaktiverad av användaren”.
CLI-hjälpare (nodanrop)¶
Använd huvud-CLI:t openclaw för att anropa kamerakommandon på macOS-noden.
Exempel:
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
Noteringar:
openclaw nodes camera snapär som standardmaxWidth=1600om inget annat anges.- På macOS väntar
camera.snapdelayMs(standard 2000 ms) efter uppvärmning/exponeringsstabilisering innan inspelning. - Fotopayloads rekomprimeras för att hålla base64 under 5 MB.
Säkerhet + praktiska gränser¶
- Kamera- och mikrofonåtkomst triggar de vanliga OS-behörighetspromptarna (och kräver användningssträngar i Info.plist).
- Videoklipp är begränsade (för närvarande
<= 60s) för att undvika överstora nodpayloads (base64-overhead + meddelandegränser).
macOS-skärmvideo (OS-nivå)¶
För skärm-video (inte kamera), använd macOS companion:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # prints MEDIA:<path>
Noteringar:
- Kräver macOS-behörigheten Skärminspelning (TCC).