Nodes and media
Съёмка с камеры
OpenClaw поддерживает захват изображения с камеры для рабочих процессов агента на сопряжённых узлах iOS, Android и macOS: получение фотографии (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 не превышал 5 МБ.
- Параметры:
-
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 не превышал 5 МБ (тот же лимит, что и в iOS).
- Параметры:
-
camera.clip- Параметры:
facing(по умолчаниюfront),durationMs(по умолчанию3000, ограничивается диапазоном[200, 60000]),includeAudio(по умолчаниюtrue),deviceId(необязательно). - Данные ответа:
format: "mp4",base64,durationMs,hasAudio. - Ограничение данных: размер исходного файла MP4 до кодирования в base64 ограничен 18 МБ; для слишком больших клипов возвращается ошибка
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(по умолчанию 2000 мс, ограничивается диапазоном[0, 10000]) после прогрева и стабилизации экспозиции перед съёмкой.- Фотографии повторно сжимаются, чтобы объём данных в base64 не превышал 5 МБ.
Безопасность и практические ограничения
- Доступ к камере и микрофону вызывает стандартные запросы разрешений ОС (и требует строк описания использования в
Info.plist). - Продолжительность видеоклипов ограничена 60 с, чтобы избежать слишком больших данных узла (накладные расходы base64 и ограничения сообщений).
Видео экрана macOS (на уровне ОС)
Для записи видео экрана (не камеры) используйте сопутствующее приложение macOS:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # выводит путь к сохранённому файлуТребуется разрешение macOS Screen Recording (TCC).