Nodes and media
Camera-opname
OpenClaw ondersteunt camera-opname 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.
Alle cameratoegang wordt afgeschermd door door de gebruiker beheerde instellingen.
iOS-node
Gebruikersinstelling (standaard aan)
- iOS-tabblad Instellingen → Camera → Camera toestaan (
camera.enabled)- Standaard: aan (ontbrekende sleutel wordt behandeld als ingeschakeld).
- 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: getal (optioneel; standaard1600op de iOS-node)quality:0..1(optioneel; standaard0.9)format: momenteeljpgdelayMs: getal (optioneel; standaard0)deviceId: string (optioneel; uitcamera.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: getal (standaard3000, begrensd op maximaal60000)includeAudio: boolean (standaardtrue)format: momenteelmp4deviceId: string (optioneel; uitcamera.list)
- Antwoordpayload:
format: "mp4"base64: "<...>"durationMshasAudio
- Parameters:
Vereiste voorgrond
Net als canvas.* staat de iOS-node camera.*-opdrachten alleen toe op de voorgrond. Aanroepen op de achtergrond retourneren NODE_BACKGROUND_UNAVAILABLE.
CLI-helper (tijdelijke bestanden + MEDIA)
De eenvoudigste manier om bijlagen te krijgen is via de CLI-helper, die gedecodeerde media naar een tijdelijk bestand schrijft en MEDIA:<path> afdrukt.
Voorbeelden:
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
Opmerkingen:
nodes camera snapgebruikt standaard beide richtingen om de agent beide weergaven te geven.- Uitvoerbestanden zijn tijdelijk (in de tijdelijke map van het OS), tenzij je je eigen wrapper bouwt.
Android-node
Android-gebruikersinstelling (standaard aan)
- Android-instellingenpaneel → Camera → Camera toestaan (
camera.enabled)- Standaard: aan (ontbrekende sleutel wordt behandeld als ingeschakeld).
- Wanneer uit:
camera.*-opdrachten retournerenCAMERA_DISABLED.
Machtigingen
- Android vereist runtime-machtigingen:
CAMERAvoor zowelcamera.snapalscamera.clip.RECORD_AUDIOvoorcamera.clipwanneerincludeAudio=true.
Als machtigingen ontbreken, vraagt de app er waar mogelijk om; als ze worden geweigerd, mislukken camera.*-aanvragen met een
*_PERMISSION_REQUIRED-fout.
Vereiste voorgrond op Android
Net als canvas.* staat de Android-node camera.*-opdrachten alleen toe op de voorgrond. Aanroepen op de achtergrond retourneren NODE_BACKGROUND_UNAVAILABLE.
Android-opdrachten (via Gateway node.invoke)
camera.list- Antwoordpayload:
devices: array van{ id, name, position, deviceType }
- Antwoordpayload:
Payloadbeveiliging
Foto's worden opnieuw gecomprimeerd om de base64-payload onder 5 MB te houden.
macOS-app
Gebruikersinstelling (standaard uit)
De macOS-begeleidende app toont een selectievakje:
- Instellingen → Algemeen → Camera toestaan (
openclaw.cameraEnabled)- Standaard: uit
- Wanneer uit: camera-aanvragen retourneren "Camera uitgeschakeld door gebruiker".
CLI-helper (node-aanroep)
Gebruik de hoofd-CLI openclaw om cameraopdrachten op de macOS-node aan te roepen.
Voorbeelden:
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
Opmerkingen:
openclaw nodes camera snapgebruikt standaardmaxWidth=1600, tenzij overschreven.- Op macOS wacht
camera.snapdelayMs(standaard 2000 ms) na opwarming/belichtingsstabilisatie voordat er wordt vastgelegd. - Fotopayloads worden opnieuw gecomprimeerd om base64 onder 5 MB te houden.
Veiligheid + praktische limieten
- Camera- en microfoontoegang activeren de gebruikelijke toestemmingsprompts van het OS (en vereisen gebruiksstrings in Info.plist).
- Videoclips zijn begrensd (momenteel
<= 60s) om te grote node-payloads te voorkomen (base64-overhead + berichtlimieten).
macOS-schermvideo (OS-niveau)
Gebruik voor scherm-video (niet camera) de macOS-begeleidende app:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # prints MEDIA:<path>
Opmerkingen:
- Vereist macOS-machtiging voor Schermopname (TCC).