Nodes and media
Capture par l’appareil photo
OpenClaw prend en charge la capture par caméra pour les flux de travail des agents sur les nœuds iOS, Android et macOS appairés : capturez une photo (jpg) ou une courte séquence vidéo (mp4, avec audio facultatif) via node.invoke du Gateway.
Tout accès à la caméra est soumis à un réglage contrôlé par l’utilisateur sur chaque plateforme.
Nœud iOS
Réglage utilisateur iOS
- Onglet iOS Settings → Camera → Allow Camera (
camera.enabled).- Valeur par défaut : activé (une clé absente est considérée comme activée).
- Lorsque ce réglage est désactivé : les commandes
camera.*renvoientCAMERA_DISABLED.
Commandes iOS (via node.invoke du Gateway)
-
camera.list- Charge utile de la réponse :
devices— tableau de{ id, name, position, deviceType }.
- Charge utile de la réponse :
-
camera.snap- Paramètres :
facing:front|back(valeur par défaut :front)maxWidth: nombre (facultatif ; valeur par défaut :1600)quality:0..1(facultatif ; valeur par défaut :0.9, limitée à[0.05, 1.0])format: actuellementjpgdelayMs: nombre (facultatif ; valeur par défaut :0, plafonnée en interne à10000)deviceId: chaîne (facultatif ; provenant decamera.list)
- Charge utile de la réponse :
format: "jpg",base64,width,height. - Limitation de la charge utile : les photos sont recompressées afin de maintenir la charge utile encodée en base64 sous 5 Mo.
- Paramètres :
-
camera.clip- Paramètres :
facing:front|back(valeur par défaut :front)durationMs: nombre (valeur par défaut :3000, limitée à[250, 60000])includeAudio: booléen (valeur par défaut :true)format: actuellementmp4deviceId: chaîne (facultatif ; provenant decamera.list)
- Charge utile de la réponse :
format: "mp4",base64,durationMs,hasAudio.
- Paramètres :
Exigence de premier plan sur iOS
Comme pour canvas.*, le nœud iOS n’autorise les commandes camera.* qu’au premier plan. Les appels en arrière-plan renvoient NODE_BACKGROUND_UNAVAILABLE.
Utilitaire CLI
Le moyen le plus simple d’obtenir les fichiers multimédias consiste à utiliser l’utilitaire CLI, qui écrit le média décodé dans un fichier temporaire et affiche le chemin d’enregistrement.
openclaw nodes camera snap --node <id> # valeur par défaut : avant + arrière (2 lignes MEDIA)openclaw nodes camera snap --node <id> --facing frontopenclaw nodes camera clip --node <id> --duration 3000openclaw nodes camera clip --node <id> --no-audioPar défaut, nodes camera snap utilise --facing both et capture les vues avant et arrière afin de les fournir toutes deux à l’agent ; utilisez --device-id avec une seule orientation explicite (both est refusé lorsque --device-id est défini). Les fichiers de sortie sont temporaires (dans le répertoire temporaire du système d’exploitation), sauf si vous créez votre propre enveloppe.
Nœud Android
Réglage utilisateur Android
- Feuille Android Settings → Camera → Allow Camera (
camera.enabled).- Sur les nouvelles installations, ce réglage est désactivé par défaut. Les installations existantes antérieures à l’ajout de ce réglage sont migrées vers l’état activé, afin que les mises à niveau ne suppriment pas silencieusement un accès à la caméra qui fonctionnait auparavant.
- Lorsque ce réglage est désactivé : les commandes
camera.*renvoientCAMERA_DISABLED: enable Camera in Settings.
Autorisations
CAMERAest requis pourcamera.snapetcamera.clip; une autorisation absente ou refusée entraîne le renvoi deCAMERA_PERMISSION_REQUIRED.RECORD_AUDIOest requis pourcamera.cliplorsqueincludeAudiovauttrue; une autorisation absente ou refusée entraîne le renvoi deMIC_PERMISSION_REQUIRED.
L’application demande les autorisations d’exécution lorsque cela est possible.
Exigence de premier plan sur Android
Comme pour canvas.*, le nœud Android n’autorise les commandes camera.* qu’au premier plan. Les appels en arrière-plan renvoient NODE_BACKGROUND_UNAVAILABLE: command requires foreground.
Commandes Android (via node.invoke du Gateway)
-
camera.list- Charge utile de la réponse :
devices— tableau de{ id, name, position, deviceType }.
- Charge utile de la réponse :
-
camera.snap- Paramètres :
facing(front|back, valeur par défautfront),quality(valeur par défaut0.95, limitée à[0.1, 1.0]),maxWidth(valeur par défaut1600),deviceId(facultatif ; un identifiant inconnu entraîneINVALID_REQUEST). - Charge utile de la réponse :
format: "jpg",base64,width,height. - Limitation de la charge utile : recompression afin de maintenir les données base64 sous 5 Mo (même limite que sur iOS).
- Paramètres :
-
camera.clip- Paramètres :
facing(valeur par défautfront),durationMs(valeur par défaut3000, limitée à[200, 60000]),includeAudio(valeur par défauttrue),deviceId(facultatif). - Charge utile de la réponse :
format: "mp4",base64,durationMs,hasAudio. - Limitation de la charge utile : le fichier MP4 brut est plafonné à 18 Mo avant l’encodage en base64 ; les séquences trop volumineuses échouent avec
PAYLOAD_TOO_LARGE(réduisezdurationMset réessayez).
- Paramètres :
Application macOS
Réglage utilisateur macOS
L’application compagnon macOS propose une case à cocher :
- Settings → General → Allow Camera (
openclaw.cameraEnabled).- Valeur par défaut : désactivé.
- Lorsque ce réglage est désactivé : les requêtes de caméra renvoient
CAMERA_DISABLED: enable Camera in Settings.
Utilitaire CLI (appel de nœud)
Utilisez la CLI principale openclaw pour appeler les commandes de caméra sur le nœud macOS.
openclaw nodes camera list --node <id> # répertorie les identifiants de caméraopenclaw nodes camera snap --node <id> # affiche le chemin d’enregistrementopenclaw 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 # affiche le chemin d’enregistrementopenclaw nodes camera clip --node <id> --duration-ms 3000 # affiche le chemin d’enregistrement (option héritée)openclaw nodes camera clip --node <id> --device-id <id>openclaw nodes camera clip --node <id> --no-audioopenclaw nodes camera snaputilise par défautmaxWidth=1600, sauf remplacement explicite.camera.snapattend pendantdelayMs(valeur par défaut : 2000 ms, limitée à[0, 10000]) après la stabilisation du préchauffage et de l’exposition avant d’effectuer la capture.- Les charges utiles des photos sont recompressées afin de maintenir les données base64 sous 5 Mo.
Sécurité et limites pratiques
- L’accès à la caméra et au microphone déclenche les demandes d’autorisation habituelles du système d’exploitation (et nécessite des chaînes d’utilisation dans
Info.plist). - Les séquences vidéo sont limitées à 60 s afin d’éviter des charges utiles de nœud trop volumineuses (surcharge du base64 ajoutée aux limites de taille des messages).
Vidéo de l’écran macOS (au niveau du système d’exploitation)
Pour enregistrer une vidéo de l’écran (et non de la caméra), utilisez l’application compagnon macOS :
openclaw nodes screen record --node <id> --duration 10s --fps 15 # affiche le chemin d’enregistrementNécessite l’autorisation macOS Screen Recording (TCC).