Nodes and media
Зйомка камерою
OpenClaw підтримує захоплення з камери для робочих процесів агентів:
- вузол iOS (спарений через Gateway): захоплення фото (
jpg) або короткого відеокліпу (mp4, з необов’язковим аудіо) черезnode.invoke. - вузол Android (спарений через Gateway): захоплення фото (
jpg) або короткого відеокліпу (mp4, з необов’язковим аудіо) черезnode.invoke. - застосунок macOS (вузол через Gateway): захоплення фото (
jpg) або короткого відеокліпу (mp4, з необов’язковим аудіо) черезnode.invoke.
Увесь доступ до камери обмежений налаштуваннями, які контролює користувач.
Вузол iOS
Налаштування користувача (увімкнено за замовчуванням)
- Вкладка налаштувань iOS → Camera → Allow Camera (
camera.enabled)- За замовчуванням: увімкнено (відсутній ключ вважається ввімкненим).
- Коли вимкнено: команди
camera.*повертаютьCAMERA_DISABLED.
Команди (через Gateway node.invoke)
-
camera.list- Корисне навантаження відповіді:
devices: масив{ id, name, position, deviceType }
- Корисне навантаження відповіді:
-
camera.snap- Параметри:
facing:front|back(за замовчуванням:front)maxWidth: число (необов’язково; за замовчуванням1600на вузлі iOS)quality:0..1(необов’язково; за замовчуванням0.9)format: наразіjpgdelayMs: число (необов’язково; за замовчуванням0)deviceId: рядок (необов’язково; зcamera.list)
- Корисне навантаження відповіді:
format: "jpg"base64: "<...>"width,height
- Захист корисного навантаження: фото повторно стискаються, щоб утримувати корисне навантаження base64 меншим за 5 МБ.
- Параметри:
-
camera.clip- Параметри:
facing:front|back(за замовчуванням:front)durationMs: число (за замовчуванням3000, обмежується максимумом60000)includeAudio: boolean (за замовчуваннямtrue)format: наразіmp4deviceId: рядок (необов’язково; зcamera.list)
- Корисне навантаження відповіді:
format: "mp4"base64: "<...>"durationMshasAudio
- Параметри:
Вимога активного переднього плану
Як і canvas.*, вузол iOS дозволяє команди camera.* лише на передньому плані. Виклики у фоновому режимі повертають NODE_BACKGROUND_UNAVAILABLE.
Допоміжний засіб CLI
Найпростіший спосіб отримати медіафайли — скористатися допоміжним засобом CLI, який записує декодовані медіа в тимчасовий файл і виводить збережений шлях.
Приклади:
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-audioПримітки:
nodes camera snapза замовчуванням використовує обидва напрями камери, щоб надати агенту обидва огляди.- Вихідні файли є тимчасовими (у тимчасовому каталозі ОС), якщо ви не створите власну обгортку.
Вузол Android
Налаштування користувача Android (увімкнено за замовчуванням)
- Аркуш налаштувань Android → Camera → Allow Camera (
camera.enabled)- За замовчуванням: увімкнено (відсутній ключ вважається ввімкненим).
- Коли вимкнено: команди
camera.*повертаютьCAMERA_DISABLED.
Дозволи
- Android вимагає дозволів часу виконання:
CAMERAдляcamera.snapіcamera.clip.RECORD_AUDIOдляcamera.clip, колиincludeAudio=true.
Якщо дозволів бракує, застосунок запропонує їх надати, коли це можливо; якщо відмовлено, запити camera.* завершуються помилкою
*_PERMISSION_REQUIRED.
Вимога активного переднього плану Android
Як і canvas.*, вузол Android дозволяє команди camera.* лише на передньому плані. Виклики у фоновому режимі повертають NODE_BACKGROUND_UNAVAILABLE.
Команди Android (через Gateway node.invoke)
camera.list- Корисне навантаження відповіді:
devices: масив{ id, name, position, deviceType }
- Корисне навантаження відповіді:
Захист корисного навантаження
Фото повторно стискаються, щоб утримувати корисне навантаження base64 меншим за 5 МБ.
Застосунок macOS
Налаштування користувача (вимкнено за замовчуванням)
Супутній застосунок macOS надає прапорець:
- Settings → General → Allow Camera (
openclaw.cameraEnabled)- За замовчуванням: вимкнено
- Коли вимкнено: запити камери повертають "Камеру вимкнено користувачем".
Допоміжний засіб CLI (виклик вузла)
Використовуйте основний CLI openclaw, щоб викликати команди камери на вузлі macOS.
Приклади:
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-audioПримітки:
openclaw nodes camera snapза замовчуванням використовуєmaxWidth=1600, якщо це не перевизначено.- На macOS
camera.snapчекаєdelayMs(за замовчуванням 2000 мс) після прогрівання/стабілізації експозиції перед захопленням. - Корисні навантаження фото повторно стискаються, щоб утримувати base64 меншим за 5 МБ.
Безпека й практичні обмеження
- Доступ до камери та мікрофона запускає звичайні запити дозволів ОС (і потребує рядків використання в Info.plist).
- Відеокліпи обмежені (наразі
<= 60s), щоб уникнути завеликих корисних навантажень вузла (накладні витрати base64 + обмеження повідомлень).
Відео екрана macOS (на рівні ОС)
Для відео екрана (не камери) використовуйте супутній застосунок macOS:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # prints saved pathПримітки:
- Потребує дозволу macOS Screen Recording (TCC).