Nodes and media
Знімання камерою
OpenClaw підтримує знімання камерою для робочих процесів агента на спарених вузлах iOS, Android, macOS і Linux: знімання фотографії (jpg) або короткого відеокліпу (mp4, з необов’язковим аудіо) через Gateway node.invoke.
Будь-який доступ до камери контролюється користувацьким налаштуванням для кожної платформи.
Вузол iOS
Користувацьке налаштування iOS
- Вкладка iOS Settings → Camera → Allow Camera (
camera.enabled).- Типове значення: увімкнено (відсутній ключ вважається ввімкненим).
- Коли вимкнено: команди
camera.*повертаютьCAMERA_DISABLED.
Команди iOS (через Gateway node.invoke)
-
camera.list- Корисне навантаження відповіді:
devices— масив{ id, name, position, deviceType }.
- Корисне навантаження відповіді:
-
camera.snap- Параметри:
facing:front|back(типове значення:front)maxWidth: число (необов’язково; типове значення1600)quality:0..1(необов’язково; типове значення0.9, обмежується до[0.05, 1.0])format: наразіjpgdelayMs: число (необов’язково; типове значення0, внутрішньо обмежується до10000)deviceId: рядок (необов’язково; зcamera.list)
- Корисне навантаження відповіді:
format: "jpg",base64,width,height. - Захист корисного навантаження: фотографії повторно стискаються, щоб розмір закодованого в base64 корисного навантаження не перевищував 5MB.
- Параметри:
-
camera.clip- Параметри:
facing:front|back(типове значення:front)durationMs: число (типове значення3000, обмежується до[250, 60000])includeAudio: логічне значення (типове значенняtrue)format: наразіmp4deviceId: рядок (необов’язково; зcamera.list)
- Корисне навантаження відповіді:
format: "mp4",base64,durationMs,hasAudio.
- Параметри:
Вимога активного режиму для iOS
Як і canvas.*, вузол iOS дозволяє команди camera.* лише в активному режимі. Фонові виклики повертають NODE_BACKGROUND_UNAVAILABLE.
Допоміжний засіб CLI
Найпростіше отримати медіафайли за допомогою допоміжного засобу CLI, який записує декодовані медіадані в тимчасовий файл і виводить шлях до збереженого файлу.
openclaw nodes camera snap --node <id> # типово: обидві камери, передня й задня (2 рядки MEDIA)openclaw nodes camera snap --node <id> --facing frontopenclaw nodes camera clip --node <id> --duration 3000openclaw nodes camera clip --node <id> --no-audionodes camera snap має типове значення --facing both, знімаючи одночасно передньою та задньою камерами, щоб надати агенту обидва ракурси; передайте --device-id з одним явно вказаним напрямком (both відхиляється, коли встановлено --device-id). Вихідні файли є тимчасовими (у каталозі тимчасових файлів ОС), якщо не створити власну обгортку.
Вузол Android
Користувацьке налаштування Android
- Панель Android Settings → Camera → Allow Camera (
camera.enabled).- У нових інсталяціях типово вимкнено. Наявні інсталяції, створені до появи цього налаштування, мігруються до стану увімкнено, щоб після оновлення непомітно не втрачався доступ до камери, який раніше працював.
- Коли вимкнено: команди
camera.*повертаютьCAMERA_DISABLED: enable Camera in Settings.
Дозволи
CAMERAпотрібен дляcamera.snapіcamera.clip; якщо дозвіл відсутній або відхилений, повертаєтьсяCAMERA_PERMISSION_REQUIRED.RECORD_AUDIOпотрібен дляcamera.clip, колиincludeAudioмає значенняtrue; якщо дозвіл відсутній або відхилений, повертаєтьсяMIC_PERMISSION_REQUIRED.
Застосунок за можливості запитує дозволи під час виконання.
Вимога активного режиму для Android
Як і canvas.*, вузол Android дозволяє команди camera.* лише в активному режимі. Фонові виклики повертають NODE_BACKGROUND_UNAVAILABLE: command requires foreground.
Команди Android (через Gateway node.invoke)
-
camera.list- Корисне навантаження відповіді:
devices— масив{ id, name, position, deviceType }.
- Корисне навантаження відповіді:
-
camera.snap- Параметри:
facing(front|back, типове значенняfront),quality(типове значення0.95, обмежується до[0.1, 1.0]),maxWidth(типове значення1600),deviceId(необов’язково; невідомий ідентифікатор спричиняє помилкуINVALID_REQUEST). - Корисне навантаження відповіді:
format: "jpg",base64,width,height. - Захист корисного навантаження: дані повторно стискаються, щоб розмір base64 не перевищував 5MB (той самий ліміт, що й в iOS).
- Параметри:
-
camera.clip- Параметри:
facing(типове значенняfront),durationMs(типове значення3000, обмежується до[200, 60000]),includeAudio(типове значенняtrue),deviceId(необов’язково). - Корисне навантаження відповіді:
format: "mp4",base64,durationMs,hasAudio. - Захист корисного навантаження: розмір необробленого MP4 обмежено до 18MB перед кодуванням у base64; завеликі кліпи завершуються помилкою
PAYLOAD_TOO_LARGE(зменштеdurationMsі повторіть спробу).
- Параметри:
Застосунок macOS
Користувацьке налаштування macOS
Супровідний застосунок macOS містить прапорець:
- Settings → General → Allow Camera (
openclaw.cameraEnabled).- Типове значення: вимкнено.
- Коли вимкнено: запити камери повертають
CAMERA_DISABLED: enable Camera in Settings.
Допоміжний засіб CLI (виклик вузла)
Використовуйте основний CLI openclaw, щоб викликати команди камери на вузлі macOS.
openclaw nodes camera list --node <id> # перелік ідентифікаторів камерopenclaw nodes camera snap --node <id> # виводить шлях до збереженого файлу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 # виводить шлях до збереженого файлуopenclaw nodes camera clip --node <id> --duration-ms 3000 # виводить шлях до збереженого файлу (застарілий прапорець)openclaw nodes camera clip --node <id> --device-id <id>openclaw nodes camera clip --node <id> --no-audioopenclaw nodes camera snapмає типове значенняmaxWidth=1600, якщо його не перевизначено.camera.snapочікуєdelayMs(типове значення 2000ms, обмежується до[0, 10000]) після прогрівання та стабілізації експозиції перед зніманням.- Корисні навантаження фотографій повторно стискаються, щоб розмір base64 не перевищував 5MB.
Хост вузла Linux
Вбудований Plugin вузла Linux додає знімання камерою до служби CLI openclaw node. Він працює на хості без графічного інтерфейсу та не потребує настільного застосунку Linux.
Доступ до камери типово вимкнено. Увімкніть його в записі плагіна, а потім перезапустіть службу вузла, щоб заново створити її оголошення Gateway:
{ plugins: { entries: { "linux-node": { config: { camera: { enabled: true }, }, }, }, },}Вимоги:
- FFmpeg із введенням V4L2,
libx264і підтримкою AAC - пристрій
/dev/video*, доступний для читання користувачем служби вузла; у поширених дистрибутивах додайте цього користувача до групиvideo - для кліпів із типовим
includeAudio: true— робочий сервер PulseAudio або шар сумісності PipeWire з PulseAudio, що має типове джерело
Linux повертає з camera.list доступні для читання шляхи до пристроїв V4L2, здатних виконувати знімання; FFmpeg перевіряє кожного кандидата /dev/video* і пропускає вузли метаданих або вузли лише для виведення. position пристрою має значення unknown, тому запити напрямку без deviceId створюють одну фотографію або кліп із позицією unknown, не заявляючи про передню чи задню камеру. Використовуйте deviceId, коли хост має кілька камер. camera.snap використовує прогрівання введення FFmpeg протягом delayMs і зберігає співвідношення сторін, обмежуючи ширину. camera.clip записує звук із мікрофона як аудіодоріжку MP4; OpenClaw навмисно не надає окремої команди мікрофона.
Плагін використовує libx264 для відео MP4 і не змінює кодеки без повідомлення. Збірка FFmpeg без потрібного введення або кодувальників повертає CAMERA_UNAVAILABLE. Фотографії та кліпи, які перевищили б бюджет корисного навантаження base64 у 25MB, завершуються помилкою PAYLOAD_TOO_LARGE.
camera.snap і camera.clip залишаються небезпечними командами. Додавайте їх до gateway.nodes.allowCommands лише тоді, коли навмисно активуєте знімання; саме лише ввімкнення плагіна не обходить політику Gateway.
Безпека та практичні обмеження
- Доступ до камери та мікрофона викликає звичайні запити дозволів ОС (і потребує рядків опису використання в
Info.plist). - Тривалість відеокліпів обмежено до 60s, щоб уникнути завеликих корисних навантажень вузла (накладні витрати base64 і обмеження повідомлень).
Відео екрана macOS (на рівні ОС)
Для відеозапису екрана (не камери) використовуйте супровідний застосунок macOS:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # виводить шлях до збереженого файлуПотрібен дозвіл macOS Screen Recording (TCC).