Captura de câmera (agente)
O OpenClaw oferece suporte a captura de câmera para fluxos de trabalho de agentes:- Nó iOS (emparelhado via Gateway): capturar uma foto (
jpg) ou clipe curto de vídeo (mp4, com áudio opcional) vianode.invoke. - Nó Android (emparelhado via Gateway): capturar uma foto (
jpg) ou clipe curto de vídeo (mp4, com áudio opcional) vianode.invoke. - App macOS (nó via Gateway): capturar uma foto (
jpg) ou clipe curto de vídeo (mp4, com áudio opcional) vianode.invoke.
Nó iOS
Configuração do usuário (ativada por padrão)
- Aba Settings do iOS → Camera → Allow Camera (
camera.enabled)- Padrão: ativado (chave ausente é tratada como habilitada).
- Quando desativado: comandos
camera.*retornamCAMERA_DISABLED.
Comandos (via Gateway node.invoke)
-
camera.list- Payload de resposta:
devices: array de{ id, name, position, deviceType }
- Payload de resposta:
-
camera.snap- Parâmetros:
facing:front|back(padrão:front)maxWidth: número (opcional; padrão1600no nó iOS)quality:0..1(opcional; padrão0.9)format: atualmentejpgdelayMs: número (opcional; padrão0)deviceId: string (opcional; decamera.list)
- Payload de resposta:
format: "jpg"base64: "<...>"width,height
- Proteção de payload: fotos são recomprimidas para manter o payload base64 abaixo de 5 MB.
- Parâmetros:
-
camera.clip- Parâmetros:
facing:front|back(padrão:front)durationMs: número (padrão3000, limitado a no máximo60000)includeAudio: booleano (padrãotrue)format: atualmentemp4deviceId: string (opcional; decamera.list)
- Payload de resposta:
format: "mp4"base64: "<...>"durationMshasAudio
- Parâmetros:
Requisito de primeiro plano
Assim comocanvas.*, o nó iOS só permite comandos camera.* em primeiro plano. Invocações em segundo plano retornam NODE_BACKGROUND_UNAVAILABLE.
Helper da CLI (arquivos temporários + MEDIA)
A forma mais fácil de obter anexos é via helper da CLI, que grava a mídia decodificada em um arquivo temporário e imprimeMEDIA:<path>.
Exemplos:
nodes camera snapusa por padrão ambas as orientações para dar ao agente as duas visões.- Os arquivos de saída são temporários (no diretório temporário do SO), a menos que você crie seu próprio wrapper.
Nó Android
Configuração do usuário no Android (ativada por padrão)
- Tela Settings do Android → Camera → Allow Camera (
camera.enabled)- Padrão: ativado (chave ausente é tratada como habilitada).
- Quando desativado: comandos
camera.*retornamCAMERA_DISABLED.
Permissões
- O Android exige permissões em runtime:
CAMERAtanto paracamera.snapquanto paracamera.clip.RECORD_AUDIOparacamera.clipquandoincludeAudio=true.
camera.* falharão com um
erro *_PERMISSION_REQUIRED.
Requisito de primeiro plano no Android
Assim comocanvas.*, o nó Android só permite comandos camera.* em primeiro plano. Invocações em segundo plano retornam NODE_BACKGROUND_UNAVAILABLE.
Comandos do Android (via Gateway node.invoke)
camera.list- Payload de resposta:
devices: array de{ id, name, position, deviceType }
- Payload de resposta:
Proteção de payload
Fotos são recomprimidas para manter o payload base64 abaixo de 5 MB.App macOS
Configuração do usuário (desativada por padrão)
O app complementar do macOS expõe uma caixa de seleção:- Settings → General → Allow Camera (
openclaw.cameraEnabled)- Padrão: desativado
- Quando desativado: solicitações de câmera retornam “Camera disabled by user”.
Helper da CLI (node invoke)
Use a CLI principalopenclaw para invocar comandos de câmera no nó macOS.
Exemplos:
openclaw nodes camera snapusa por padrãomaxWidth=1600, salvo substituição.- No macOS,
camera.snapaguardadelayMs(padrão 2000ms) após estabilização de aquecimento/exposição antes de capturar. - Payloads de foto são recomprimidos para manter o base64 abaixo de 5 MB.
Segurança + limites práticos
- O acesso à câmera e ao microfone aciona os prompts normais de permissão do sistema operacional (e exige strings de uso em Info.plist).
- Clipes de vídeo têm limite máximo (atualmente
<= 60s) para evitar payloads excessivos do nó (sobrecarga de base64 + limites de mensagem).
Vídeo de tela no macOS (nível do SO)
Para vídeo de tela (não câmera), use o complemento do macOS:- Exige permissão Screen Recording do macOS (TCC).