Cameravastlegging (agent)
OpenClaw ondersteunt cameravastlegging voor agentworkflows:- iOS-node (gekoppeld via Gateway): maak een foto (
jpg) of korte videoclip (mp4, met optionele audio) vianode.invoke. - Android-node (gekoppeld via Gateway): maak een foto (
jpg) of korte videoclip (mp4, met optionele audio) vianode.invoke. - macOS-app (node via Gateway): maak een foto (
jpg) of korte videoclip (mp4, met optionele audio) vianode.invoke.
iOS-node
Gebruikersinstelling (standaard aan)
- iOS-instellingentab → Camera → Camera toestaan (
camera.enabled)- Standaard: aan (ontbrekende sleutel wordt als ingeschakeld behandeld).
- Wanneer uit:
camera.*-opdrachten retournerenCAMERA_DISABLED.
Opdrachten (via Gateway node.invoke)
-
camera.list- Antwoordpayload:
devices: array van{ id, name, position, deviceType }
- Antwoordpayload:
-
camera.snap- Parameters:
facing:front|back(standaard:front)maxWidth: number (optioneel; standaard1600op de iOS-node)quality:0..1(optioneel; standaard0.9)format: momenteeljpgdelayMs: number (optioneel; standaard0)deviceId: string (optioneel; vancamera.list)
- Antwoordpayload:
format: "jpg"base64: "<...>"width,height
- Payloadbeveiliging: foto’s worden opnieuw gecomprimeerd om de base64-payload onder 5 MB te houden.
- Parameters:
-
camera.clip- Parameters:
facing:front|back(standaard:front)durationMs: number (standaard3000, begrensd tot een maximum van60000)includeAudio: boolean (standaardtrue)format: momenteelmp4deviceId: string (optioneel; vancamera.list)
- Antwoordpayload:
format: "mp4"base64: "<...>"durationMshasAudio
- Parameters:
Voorgrondvereiste
Net alscanvas.* staat de iOS-node camera.*-opdrachten alleen toe in de voorgrond. Achtergrondaanroepen retourneren NODE_BACKGROUND_UNAVAILABLE.
CLI-helper (tempbestanden + MEDIA)
De eenvoudigste manier om bijlagen te verkrijgen is via de CLI-helper, die gedecodeerde media naar een tempbestand schrijft enMEDIA:<path> afdrukt.
Voorbeelden:
nodes camera snapstaat standaard op beide camera’s om de agent beide perspectieven te geven.- Uitvoerbestanden zijn tijdelijk (in de OS-tempmap), tenzij je je eigen wrapper bouwt.
Android-node
Android-gebruikersinstelling (standaard aan)
- Android-instellingenblad → Camera → Camera toestaan (
camera.enabled)- Standaard: aan (ontbrekende sleutel wordt als ingeschakeld behandeld).
- Wanneer uit:
camera.*-opdrachten retournerenCAMERA_DISABLED.
Permissions
- Android vereist runtime-rechten:
CAMERAvoor zowelcamera.snapalscamera.clip.RECORD_AUDIOvoorcamera.clipwanneerincludeAudio=true.
camera.*-verzoeken met een
*_PERMISSION_REQUIRED-fout.
Android-voorgrondvereiste
Net alscanvas.* staat de Android-node camera.*-opdrachten alleen toe in de voorgrond. Achtergrondaanroepen retourneren NODE_BACKGROUND_UNAVAILABLE.
Payloadbeveiliging
Foto’s worden opnieuw gecomprimeerd om de base64-payload onder 5 MB te houden.macOS-app
Gebruikersinstelling (standaard uit)
De macOS-companion-app biedt een selectievakje:- Instellingen → Algemeen → Camera toestaan (
openclaw.cameraEnabled)- Standaard: uit
- Wanneer uit: cameraverzoeken retourneren “Camera disabled by user”.
CLI-helper (node-aanroep)
Gebruik de hoofd-openclaw CLI om camera-opdrachten op de macOS-node aan te roepen.
Voorbeelden:
openclaw nodes camera snapstaat standaard opmaxWidth=1600, tenzij overschreven.- Op macOS wacht
camera.snapdelayMs(standaard 2000 ms) na opwarming/expositiestabilisatie voordat wordt vastgelegd. - Fotopayloads worden opnieuw gecomprimeerd om base64 onder 5 MB te houden.
Veiligheid + praktische limieten
- Camera- en microfoontoegang activeren de gebruikelijke OS-toestemmingsprompts (en vereisen usage-strings in Info.plist).
- Videoclips zijn begrensd (momenteel
<= 60s) om te grote node-payloads te voorkomen (base64-overhead + berichtlimieten).
macOS-schermvideo (op OS-niveau)
Voor scherm-video (niet camera), gebruik de macOS-companion:- Vereist macOS-recht Schermopname (TCC).