Capture d'appareil photo
Capture d’appareil photo (agent)
Section intitulée « Capture d’appareil photo (agent) »OpenClaw prend en charge la capture d’appareil photo pour les workflows de l’agent :
- Nœud iOS (jumelé via Gateway) : capturer une photo (
jpg) ou un court extrait vidéo (mp4, avec audio optionnel) vianode.invoke. - Nœud Android (jumelé via Gateway) : capturer une photo (
jpg) ou un court extrait vidéo (mp4, avec audio optionnel) vianode.invoke. - Application macOS (nœud via Gateway) : capturer une photo (
jpg) ou un court extrait vidéo (mp4, avec audio optionnel) vianode.invoke.
Tout accès à l’appareil photo est protégé par des paramètres contrôlés par l’utilisateur.
Nœud iOS
Section intitulée « Nœud iOS »Paramètre utilisateur (activé par défaut)
Section intitulée « Paramètre utilisateur (activé par défaut) »- Onglet Paramètres iOS → Caméra → Autoriser la caméra (
camera.enabled)- Par défaut : activé (l’absence de clé est traitée comme activée).
- Lorsqu’elle est désactivée : les commandes
camera.*renvoientCAMERA_DISABLED.
Commandes (via Gateway node.invoke)
Section intitulée « 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 (optionnel ; par défaut1600sur le nœud iOS)quality:0..1(optionnel ; par défaut0.9)format: actuellementjpgdelayMs: nombre (optionnel ; par défaut0)deviceId: chaîne (optionnel ; depuiscamera.list)
- Charge utile de réponse :
format: "jpg"base64: "<...>"width,height
- Garantie de charge utile : les photos sont recompressées pour maintenir la charge utile base64 sous 5 Mo.
- Paramètres :
-
camera.clip- Paramètres :
facing:front|back(par défaut :front)durationMs: nombre (par défaut3000, limité à un maximum de60000)includeAudio: booléen (par défauttrue)format: actuellementmp4deviceId: chaîne (optionnel ; depuiscamera.list)
- Charge utile de réponse :
format: "mp4"base64: "<...>"durationMshasAudio
- Paramètres :
Exigence de premier plan
Section intitulée « Exigence de premier plan »Comme canvas.*, le nœud iOS n’autorise les commandes camera.* qu’en premier plan. Les appels en arrière-plan renvoient NODE_BACKGROUND_UNAVAILABLE.
Assistant CLI (fichiers temporaires + MEDIA)
Section intitulée « Assistant CLI (fichiers temporaires + MEDIA) »Le moyen le plus simple d’obtenir des pièces jointes consiste à utiliser l’assistant CLI, qui écrit les médias décodés dans un fichier temporaire et imprime MEDIA:<path>.
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-audioNotes :
nodes camera snapest par défaut réglé sur les deux orientations pour donner à l’agent les deux vues.- Les fichiers de sortie sont temporaires (dans le répertoire temporaire du SE) sauf si vous créez votre propre wrapper.
Nœud Android
Section intitulée « Nœud Android »Paramètre utilisateur Android (activé par défaut)
Section intitulée « Paramètre utilisateur Android (activé par défaut) »- Feuille de paramètres Android → Caméra → Autoriser la caméra (
camera.enabled)- Par défaut : activé (une clé manquante est traitée comme activée).
- Lorsque désactivé : les commandes
camera.*renvoientCAMERA_DISABLED.
Autorisations
Section intitulée « Autorisations »- Android nécessite des autorisations d’exécution :
CAMERApour à la foiscamera.snapetcamera.clip.RECORD_AUDIOpourcamera.cliplorsqueincludeAudio=true.
Si les autorisations sont manquantes, l’application vous demandera si possible ; si refusées, les requêtes camera.* échouent avec une erreur *_PERMISSION_REQUIRED.
Exigence de premier plan Android
Section intitulée « Exigence de premier plan Android »Comme canvas.*, le nœud Android n’autorise les commandes camera.* qu’en premier plan. Les appels en arrière-plan renvoient NODE_BACKGROUND_UNAVAILABLE.
Commandes Android (via Gateway node.invoke)
Section intitulée « 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 :
Garantie de charge utile
Section intitulée « Garantie de charge utile »Les photos sont recompressées pour garder la charge utile base64 sous 5 Mo.
Application macOS
Section intitulée « Application macOS »Paramètre utilisateur (désactivé par défaut)
Section intitulée « Paramètre utilisateur (désactivé par défaut) »L’application compagnon macOS expose une case à cocher :
- Paramètres → Général → Autoriser l’appareil photo (
openclaw.cameraEnabled)- Par défaut : désactivé
- Lorsque désactivé : les requêtes d’appareil photo renvoient « Camera disabled by user ».
Assistant CLI (appel de nœud)
Section intitulée « Assistant CLI (appel de nœud) »Utilisez le CLI openclaw principal pour appeler des commandes d’appareil photo sur le nœud macOS.
Exemples :
openclaw nodes camera list --node <id> # list camera idsopenclaw nodes camera snap --node <id> # prints MEDIA:<path>openclaw 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 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-audioNotes :
openclaw nodes camera snapcorrespond par défaut àmaxWidth=1600sauf s’il est remplacé.- Sur macOS,
camera.snapattenddelayMs(2000 ms par défaut) après le réglage de l’échauffement/exposition avant la capture. - Les charges utiles des photos sont recompressées pour garder le base64 sous 5 Mo.
Limites de sécurité et pratiques
Section intitulée « Limites de sécurité et pratiques »- L’accès à l’appareil photo 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 limités (actuellement
<= 60s) pour éviter des charges utiles de nœud trop volumineuses (surcharge base64 + limites de message).
Vidéo de l’écran macOS (niveau OS)
Section intitulée « Vidéo de l’écran macOS (niveau OS) »Pour la vidéo de l’écran (pas l’appareil photo), utilisez le compagnon macOS :
openclaw nodes screen record --node <id> --duration 10s --fps 15 # prints MEDIA:<path>Notes :
- Nécessite l’autorisation Screen Recording macOS (TCC).