Nodes and media
Capture caméra
OpenClaw prend en charge la capture caméra pour les workflows d’agent :
- Nœud iOS (appairé via Gateway) : capturez une photo (
jpg) ou un court clip vidéo (mp4, avec audio facultatif) vianode.invoke. - Nœud Android (appairé via Gateway) : capturez une photo (
jpg) ou un court clip vidéo (mp4, avec audio facultatif) vianode.invoke. - Application macOS (nœud via Gateway) : capturez une photo (
jpg) ou un court clip vidéo (mp4, avec audio facultatif) vianode.invoke.
Tout accès à la caméra est contrôlé par des paramètres gérés par l’utilisateur.
Nœud iOS
Paramètre utilisateur (activé par défaut)
- Onglet Réglages iOS → Caméra → Autoriser la caméra (
camera.enabled)- Par défaut : activé (une clé manquante est considérée comme activée).
- Quand il est désactivé : les commandes
camera.*renvoientCAMERA_DISABLED.
Commandes (via Gateway node.invoke)
-
camera.list- Charge utile de réponse :
devices: tableau de{ id, name, position, deviceType }
- Charge utile de réponse :
-
camera.snap- Paramètres :
facing:front|back(par défaut :front)maxWidth: nombre (facultatif ; valeur par défaut1600sur le nœud iOS)quality:0..1(facultatif ; valeur par défaut0.9)format: actuellementjpgdelayMs: nombre (facultatif ; valeur par défaut0)deviceId: chaîne (facultatif ; depuiscamera.list)
- Charge utile de réponse :
format: "jpg"base64: "<...>"width,height
- Garde de charge utile : les photos sont recompressées afin de garder la charge utile base64 sous 5 Mo.
- Paramètres :
-
camera.clip- Paramètres :
facing:front|back(par défaut :front)durationMs: nombre (valeur par défaut3000, plafonnée à un maximum de60000)includeAudio: booléen (valeur par défauttrue)format: actuellementmp4deviceId: chaîne (facultatif ; depuiscamera.list)
- Charge utile de réponse :
format: "mp4"base64: "<...>"durationMshasAudio
- Paramètres :
Exigence de premier plan
Comme canvas.*, le nœud iOS n’autorise les commandes camera.* qu’au premier plan. Les invocations en arrière-plan renvoient NODE_BACKGROUND_UNAVAILABLE.
Assistant CLI
Le moyen le plus simple d’obtenir des fichiers multimédias consiste à utiliser l’assistant CLI, qui écrit le média décodé dans un fichier temporaire et affiche le chemin enregistré.
Exemples :
openclaw nodes camera snap --node <id> # default: both front + back (2 MEDIA lines)openclaw nodes camera snap --node <id> --facing frontopenclaw nodes camera clip --node <id> --duration 3000openclaw nodes camera clip --node <id> --no-audioRemarques :
nodes camera snaputilise par défaut les deux orientations afin de fournir les deux vues à l’agent.- Les fichiers de sortie sont temporaires (dans le répertoire temporaire du système d’exploitation), sauf si vous créez votre propre wrapper.
Nœud Android
Paramètre utilisateur Android (activé par défaut)
- Feuille Paramètres Android → Caméra → Autoriser la caméra (
camera.enabled)- Par défaut : activé (une clé manquante est considérée comme activée).
- Quand il est désactivé : les commandes
camera.*renvoientCAMERA_DISABLED.
Autorisations
- Android exige des autorisations d’exécution :
CAMERApourcamera.snapetcamera.clip.RECORD_AUDIOpourcamera.cliplorsqueincludeAudio=true.
Si des autorisations manquent, l’application demandera l’autorisation lorsque c’est possible ; si elle est refusée, les requêtes camera.* échouent avec une erreur
*_PERMISSION_REQUIRED.
Exigence de premier plan Android
Comme canvas.*, le nœud Android n’autorise les commandes camera.* qu’au premier plan. Les invocations en arrière-plan renvoient NODE_BACKGROUND_UNAVAILABLE.
Commandes Android (via Gateway node.invoke)
camera.list- Charge utile de réponse :
devices: tableau de{ id, name, position, deviceType }
- Charge utile de réponse :
Garde de charge utile
Les photos sont recompressées afin de garder la charge utile base64 sous 5 Mo.
Application macOS
Paramètre utilisateur (désactivé par défaut)
L’application compagnon macOS expose une case à cocher :
- Paramètres → Général → Autoriser la caméra (
openclaw.cameraEnabled)- Par défaut : désactivé
- Quand il est désactivé : les requêtes caméra renvoient « Caméra désactivée par l’utilisateur ».
Assistant CLI (invocation du nœud)
Utilisez la CLI principale openclaw pour invoquer les commandes caméra sur le nœud macOS.
Exemples :
openclaw nodes camera list --node <id> # list camera idsopenclaw nodes camera snap --node <id> # prints saved pathopenclaw 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 # prints saved pathopenclaw nodes camera clip --node <id> --duration-ms 3000 # prints saved path (legacy flag)openclaw nodes camera clip --node <id> --device-id <id>openclaw nodes camera clip --node <id> --no-audioRemarques :
openclaw nodes camera snaputilise par défautmaxWidth=1600, sauf remplacement.- Sur macOS,
camera.snapattenddelayMs(2000 ms par défaut) après la stabilisation du préchauffage/de l’exposition avant la capture. - Les charges utiles photo sont recompressées afin de garder le base64 sous 5 Mo.
Sécurité + limites pratiques
- L’accès à la caméra et au microphone déclenche les invites d’autorisation habituelles du système d’exploitation (et nécessite des chaînes d’utilisation dans Info.plist).
- Les clips vidéo sont plafonnés (actuellement
<= 60s) afin d’éviter des charges utiles de nœud trop volumineuses (surcoût base64 + limites de message).
Vidéo d’écran macOS (niveau système d’exploitation)
Pour la vidéo d’écran (pas la caméra), utilisez le compagnon macOS :
openclaw nodes screen record --node <id> --duration 10s --fps 15 # prints saved pathRemarques :
- Nécessite l’autorisation macOS Enregistrement de l’écran (TCC).