Nodes and media
Acquisizione dalla fotocamera
OpenClaw supporta l'acquisizione dalla fotocamera per i flussi di lavoro degli agenti sui nodi iOS, Android e macOS associati: è possibile acquisire una foto (jpg) o un breve clip video (mp4, con audio facoltativo) tramite node.invoke del Gateway.
L'accesso alla fotocamera è sempre subordinato a un'impostazione controllata dall'utente su ciascuna piattaforma.
Nodo iOS
Impostazione utente iOS
- Scheda Settings di iOS → Camera → Allow Camera (
camera.enabled).- Valore predefinito: attivo (una chiave mancante viene considerata abilitata).
- Quando è disattivata: i comandi
camera.*restituisconoCAMERA_DISABLED.
Comandi iOS (tramite node.invoke del Gateway)
-
camera.list- Payload della risposta:
devices— array di{ id, name, position, deviceType }.
- Payload della risposta:
-
camera.snap- Parametri:
facing:front|back(valore predefinito:front)maxWidth: numero (facoltativo; valore predefinito1600)quality:0..1(facoltativo; valore predefinito0.9, limitato a[0.05, 1.0])format: attualmentejpgdelayMs: numero (facoltativo; valore predefinito0, limitato internamente a10000)deviceId: stringa (facoltativa; dacamera.list)
- Payload della risposta:
format: "jpg",base64,width,height. - Protezione del payload: le foto vengono ricompresse per mantenere il payload codificato in base64 al di sotto di 5 MB.
- Parametri:
-
camera.clip- Parametri:
facing:front|back(valore predefinito:front)durationMs: numero (valore predefinito3000, limitato a[250, 60000])includeAudio: valore booleano (valore predefinitotrue)format: attualmentemp4deviceId: stringa (facoltativa; dacamera.list)
- Payload della risposta:
format: "mp4",base64,durationMs,hasAudio.
- Parametri:
Requisito di primo piano su iOS
Come per canvas.*, il nodo iOS consente i comandi camera.* solo in primo piano. Le invocazioni in background restituiscono NODE_BACKGROUND_UNAVAILABLE.
Strumento ausiliario della CLI
Il modo più semplice per ottenere i file multimediali è utilizzare lo strumento ausiliario della CLI, che scrive i contenuti multimediali decodificati in un file temporaneo e mostra il percorso di salvataggio.
openclaw nodes camera snap --node <id> # valore predefinito: anteriore + posteriore (2 righe MEDIA)openclaw nodes camera snap --node <id> --facing frontopenclaw nodes camera clip --node <id> --duration 3000openclaw nodes camera clip --node <id> --no-audioIl valore predefinito di nodes camera snap è --facing both, che acquisisce sia dalla fotocamera anteriore sia da quella posteriore per fornire all'agente entrambe le visuali; usare --device-id con un singolo orientamento esplicito (both viene rifiutato quando è impostato --device-id). I file di output sono temporanei (nella directory temporanea del sistema operativo), a meno che non si crei un wrapper personalizzato.
Nodo Android
Impostazione utente Android
- Pannello Settings di Android → Camera → Allow Camera (
camera.enabled).- Nelle nuove installazioni è disattivata per impostazione predefinita. Le installazioni esistenti precedenti all'introduzione di questa impostazione vengono migrate su attivo, affinché gli aggiornamenti non rimuovano silenziosamente un accesso alla fotocamera che prima funzionava.
- Quando è disattivata: i comandi
camera.*restituisconoCAMERA_DISABLED: enable Camera in Settings.
Autorizzazioni
CAMERAè obbligatoria sia percamera.snapsia percamera.clip; se l'autorizzazione manca o viene negata, viene restituitoCAMERA_PERMISSION_REQUIRED.RECORD_AUDIOè obbligatoria percamera.clipquandoincludeAudioètrue; se l'autorizzazione manca o viene negata, viene restituitoMIC_PERMISSION_REQUIRED.
Quando possibile, l'app richiede le autorizzazioni in fase di esecuzione.
Requisito di primo piano su Android
Come per canvas.*, il nodo Android consente i comandi camera.* solo in primo piano. Le invocazioni in background restituiscono NODE_BACKGROUND_UNAVAILABLE: command requires foreground.
Comandi Android (tramite node.invoke del Gateway)
-
camera.list- Payload della risposta:
devices— array di{ id, name, position, deviceType }.
- Payload della risposta:
-
camera.snap- Parametri:
facing(front|back, valore predefinitofront),quality(valore predefinito0.95, limitato a[0.1, 1.0]),maxWidth(valore predefinito1600),deviceId(facoltativo; un ID sconosciuto causa un erroreINVALID_REQUEST). - Payload della risposta:
format: "jpg",base64,width,height. - Protezione del payload: viene ricompresso per mantenere i dati base64 al di sotto di 5 MB (lo stesso limite di iOS).
- Parametri:
-
camera.clip- Parametri:
facing(valore predefinitofront),durationMs(valore predefinito3000, limitato a[200, 60000]),includeAudio(valore predefinitotrue),deviceId(facoltativo). - Payload della risposta:
format: "mp4",base64,durationMs,hasAudio. - Protezione del payload: il file MP4 non elaborato è limitato a 18 MB prima della codifica base64; i clip che superano tale dimensione generano l'errore
PAYLOAD_TOO_LARGE(ridurredurationMse riprovare).
- Parametri:
App macOS
Impostazione utente macOS
L'app complementare per macOS mette a disposizione una casella di controllo:
- Settings → General → Allow Camera (
openclaw.cameraEnabled).- Valore predefinito: disattivato.
- Quando è disattivata: le richieste della fotocamera restituiscono
CAMERA_DISABLED: enable Camera in Settings.
Strumento ausiliario della CLI (invocazione del nodo)
Utilizzare la CLI principale openclaw per invocare i comandi della fotocamera sul nodo macOS.
openclaw nodes camera list --node <id> # elenca gli ID delle fotocamereopenclaw nodes camera snap --node <id> # mostra il percorso di salvataggioopenclaw 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 # mostra il percorso di salvataggioopenclaw nodes camera clip --node <id> --duration-ms 3000 # mostra il percorso di salvataggio (flag precedente)openclaw nodes camera clip --node <id> --device-id <id>openclaw nodes camera clip --node <id> --no-audio- Il valore predefinito di
openclaw nodes camera snapèmaxWidth=1600, se non viene sovrascritto. - Dopo il riscaldamento e la stabilizzazione dell'esposizione,
camera.snapattende perdelayMs(valore predefinito 2000 ms, limitato a[0, 10000]) prima dell'acquisizione. - I payload delle foto vengono ricompressi per mantenere i dati base64 al di sotto di 5 MB.
Sicurezza e limiti pratici
- L'accesso alla fotocamera e al microfono attiva le consuete richieste di autorizzazione del sistema operativo e richiede le stringhe di utilizzo in
Info.plist. - I clip video sono limitati a 60 secondi per evitare payload del nodo eccessivamente grandi (sovraccarico della codifica base64 sommato ai limiti dei messaggi).
Video dello schermo su macOS (a livello di sistema operativo)
Per registrare un video dello schermo (non della fotocamera), utilizzare l'app complementare per macOS:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # mostra il percorso di salvataggioRichiede l'autorizzazione Screen Recording di macOS (TCC).