Nodes and media
Camera-opname
OpenClaw ondersteunt camera-opnamen voor agentworkflows op gekoppelde iOS-, Android- en macOS-Nodes: maak een foto (jpg) of een korte videoclip (mp4, met optionele audio) via Gateway node.invoke.
Alle cameratoegang wordt per platform afgeschermd door een instelling die de gebruiker beheert.
iOS-Node
iOS-gebruikersinstelling
- Tabblad iOS Settings → Camera → Allow Camera (
camera.enabled).- Standaard: aan (een ontbrekende sleutel wordt als ingeschakeld beschouwd).
- Indien uitgeschakeld:
camera.*-opdrachten retournerenCAMERA_DISABLED.
iOS-opdrachten (via Gateway node.invoke)
-
camera.list- Responslading:
devices— array van{ id, name, position, deviceType }.
- Responslading:
-
camera.snap- Parameters:
facing:front|back(standaard:front)maxWidth: getal (optioneel; standaard1600)quality:0..1(optioneel; standaard0.9, begrensd tot[0.05, 1.0])format: momenteeljpgdelayMs: getal (optioneel; standaard0, intern begrensd tot10000)deviceId: tekenreeks (optioneel; uitcamera.list)
- Responslading:
format: "jpg",base64,width,height. - Beveiliging van de lading: foto's worden opnieuw gecomprimeerd om de met base64 gecodeerde lading onder 5 MB te houden.
- Parameters:
-
camera.clip- Parameters:
facing:front|back(standaard:front)durationMs: getal (standaard3000, begrensd tot[250, 60000])includeAudio: booleaanse waarde (standaardtrue)format: momenteelmp4deviceId: tekenreeks (optioneel; uitcamera.list)
- Responslading:
format: "mp4",base64,durationMs,hasAudio.
- Parameters:
Vereiste voorgrondstatus op iOS
Net als bij canvas.* staat de iOS-Node camera.*-opdrachten alleen op de voorgrond toe. Aanroepen op de achtergrond retourneren NODE_BACKGROUND_UNAVAILABLE.
CLI-hulpprogramma
De eenvoudigste manier om mediabestanden te verkrijgen is via het CLI-hulpprogramma, dat gedecodeerde media naar een tijdelijk bestand schrijft en het opgeslagen pad afdrukt.
openclaw nodes camera snap --node <id> # standaard: zowel voor als achter (2 MEDIA-regels)openclaw nodes camera snap --node <id> --facing frontopenclaw nodes camera clip --node <id> --duration 3000openclaw nodes camera clip --node <id> --no-audionodes camera snap gebruikt standaard --facing both en maakt opnamen met zowel de voor- als achtercamera om de agent beide perspectieven te geven; geef --device-id door met één expliciete camerarichting (both wordt geweigerd wanneer --device-id is ingesteld). Uitvoerbestanden zijn tijdelijk (in de tijdelijke map van het besturingssysteem), tenzij u uw eigen wrapper bouwt.
Android-Node
Android-gebruikersinstelling
- Android Settings-venster → Camera → Allow Camera (
camera.enabled).- Bij nieuwe installaties is dit standaard uitgeschakeld. Bestaande installaties van vóór de invoering van deze instelling worden gemigreerd naar aan, zodat upgrades niet ongemerkt eerder werkende cameratoegang verliezen.
- Indien uitgeschakeld:
camera.*-opdrachten retournerenCAMERA_DISABLED: enable Camera in Settings.
Machtigingen
CAMERAis vereist voor zowelcamera.snapalscamera.clip; een ontbrekende of geweigerde machtiging retourneertCAMERA_PERMISSION_REQUIRED.RECORD_AUDIOis vereist voorcamera.clipwanneerincludeAudiotrueis; een ontbrekende of geweigerde machtiging retourneertMIC_PERMISSION_REQUIRED.
De app vraagt waar mogelijk om runtimemachtigingen.
Vereiste voorgrondstatus op Android
Net als bij canvas.* staat de Android-Node camera.*-opdrachten alleen op de voorgrond toe. Aanroepen op de achtergrond retourneren NODE_BACKGROUND_UNAVAILABLE: command requires foreground.
Android-opdrachten (via Gateway node.invoke)
-
camera.list- Responslading:
devices— array van{ id, name, position, deviceType }.
- Responslading:
-
camera.snap- Parameters:
facing(front|back, standaardfront),quality(standaard0.95, begrensd tot[0.1, 1.0]),maxWidth(standaard1600),deviceId(optioneel; een onbekende id mislukt metINVALID_REQUEST). - Responslading:
format: "jpg",base64,width,height. - Beveiliging van de lading: opnieuw gecomprimeerd om base64 onder 5 MB te houden (hetzelfde budget als bij iOS).
- Parameters:
-
camera.clip- Parameters:
facing(standaardfront),durationMs(standaard3000, begrensd tot[200, 60000]),includeAudio(standaardtrue),deviceId(optioneel). - Responslading:
format: "mp4",base64,durationMs,hasAudio. - Beveiliging van de lading: onbewerkte MP4 is vóór base64-codering begrensd tot 18 MB; te grote clips mislukken met
PAYLOAD_TOO_LARGE(verlaagdurationMsen probeer het opnieuw).
- Parameters:
macOS-app
macOS-gebruikersinstelling
De macOS-begeleidende app biedt een selectievakje:
- Settings → General → Allow Camera (
openclaw.cameraEnabled).- Standaard: uit.
- Indien uitgeschakeld: cameraverzoeken retourneren
CAMERA_DISABLED: enable Camera in Settings.
CLI-hulpprogramma (Node-aanroep)
Gebruik de hoofd-CLI openclaw om cameraopdrachten op de macOS-Node aan te roepen.
openclaw nodes camera list --node <id> # lijst met camera-id'sopenclaw nodes camera snap --node <id> # drukt opgeslagen pad afopenclaw 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 # drukt opgeslagen pad afopenclaw nodes camera clip --node <id> --duration-ms 3000 # drukt opgeslagen pad af (verouderde vlag)openclaw nodes camera clip --node <id> --device-id <id>openclaw nodes camera clip --node <id> --no-audioopenclaw nodes camera snapgebruikt standaardmaxWidth=1600, tenzij dit wordt overschreven.camera.snapwacht na het opwarmen en stabiliseren van de belichting gedurendedelayMs(standaard 2000 ms, begrensd tot[0, 10000]) voordat de opname wordt gemaakt.- Fotoladingen worden opnieuw gecomprimeerd om base64 onder 5 MB te houden.
Veiligheid en praktische limieten
- Toegang tot camera en microfoon activeert de gebruikelijke machtigingsprompts van het besturingssysteem (en vereist gebruiksbeschrijvingen in
Info.plist). - Videoclips zijn begrensd tot 60 s om te grote Node-ladingen te voorkomen (base64-overhead plus berichtlimieten).
macOS-schermvideo (op besturingssysteemniveau)
Gebruik voor schermvideo (niet de camera) de macOS-begeleidende app:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # drukt opgeslagen pad afVereist de macOS-machtiging Screen Recording (TCC).