Nodes and media
Kameraaufnahme
OpenClaw unterstützt Kameraaufnahmen für Agenten-Workflows auf gekoppelten iOS-, Android- und macOS-Nodes: Nehmen Sie über Gateway node.invoke ein Foto (jpg) oder einen kurzen Videoclip (mp4, optional mit Audio) auf.
Jeder Kamerazugriff wird durch eine benutzergesteuerte Einstellung für die jeweilige Plattform geregelt.
iOS-Node
iOS-Benutzereinstellung
- iOS-Einstellungen-Tab → Camera → Allow Camera (
camera.enabled).- Standard: ein (ein fehlender Schlüssel wird als aktiviert behandelt).
- Wenn ausgeschaltet:
camera.*-Befehle gebenCAMERA_DISABLEDzurück.
iOS-Befehle (über Gateway node.invoke)
-
camera.list- Antwortnutzlast:
devices— Array aus{ id, name, position, deviceType }.
- Antwortnutzlast:
-
camera.snap- Parameter:
facing:front|back(Standard:front)maxWidth: Zahl (optional; Standard1600)quality:0..1(optional; Standard0.9, auf[0.05, 1.0]begrenzt)format: derzeitjpgdelayMs: Zahl (optional; Standard0, intern auf10000begrenzt)deviceId: Zeichenfolge (optional; auscamera.list)
- Antwortnutzlast:
format: "jpg",base64,width,height. - Nutzlastbegrenzung: Fotos werden erneut komprimiert, damit die Base64-codierte Nutzlast unter 5MB bleibt.
- Parameter:
-
camera.clip- Parameter:
facing:front|back(Standard:front)durationMs: Zahl (Standard3000, auf[250, 60000]begrenzt)includeAudio: boolescher Wert (Standardtrue)format: derzeitmp4deviceId: Zeichenfolge (optional; auscamera.list)
- Antwortnutzlast:
format: "mp4",base64,durationMs,hasAudio.
- Parameter:
iOS-Vordergrundanforderung
Wie bei canvas.* erlaubt der iOS-Node camera.*-Befehle nur im Vordergrund. Aufrufe im Hintergrund geben NODE_BACKGROUND_UNAVAILABLE zurück.
CLI-Hilfsfunktion
Am einfachsten erhalten Sie Mediendateien über die CLI-Hilfsfunktion. Sie schreibt die decodierten Medien in eine temporäre Datei und gibt den Speicherpfad aus.
openclaw nodes camera snap --node <id> # Standard: Front- + Rückkamera (2 MEDIA-Zeilen)openclaw nodes camera snap --node <id> --facing frontopenclaw nodes camera clip --node <id> --duration 3000openclaw nodes camera clip --node <id> --no-audionodes camera snap verwendet standardmäßig --facing both und nimmt sowohl mit der Front- als auch mit der Rückkamera auf, damit der Agent beide Ansichten erhält. Verwenden Sie --device-id mit einer einzelnen expliziten Ausrichtung (both wird abgelehnt, wenn --device-id gesetzt ist). Ausgabedateien sind temporär (im temporären Verzeichnis des Betriebssystems), sofern Sie keinen eigenen Wrapper erstellen.
Android-Node
Android-Benutzereinstellung
- Android-Einstellungsdialog → Camera → Allow Camera (
camera.enabled).- Bei Neuinstallationen ist die Einstellung standardmäßig ausgeschaltet. Bestehende Installationen, die älter als diese Einstellung sind, werden auf ein migriert, damit durch Upgrades ein zuvor funktionierender Kamerazugriff nicht unbemerkt verloren geht.
- Wenn ausgeschaltet:
camera.*-Befehle gebenCAMERA_DISABLED: enable Camera in Settingszurück.
Berechtigungen
CAMERAist sowohl fürcamera.snapals auch fürcamera.cliperforderlich; eine fehlende oder verweigerte Berechtigung gibtCAMERA_PERMISSION_REQUIREDzurück.RECORD_AUDIOist fürcamera.cliperforderlich, wennincludeAudioauftruegesetzt ist; eine fehlende oder verweigerte Berechtigung gibtMIC_PERMISSION_REQUIREDzurück.
Die App fordert nach Möglichkeit Laufzeitberechtigungen an.
Android-Vordergrundanforderung
Wie bei canvas.* erlaubt der Android-Node camera.*-Befehle nur im Vordergrund. Aufrufe im Hintergrund geben NODE_BACKGROUND_UNAVAILABLE: command requires foreground zurück.
Android-Befehle (über Gateway node.invoke)
-
camera.list- Antwortnutzlast:
devices— Array aus{ id, name, position, deviceType }.
- Antwortnutzlast:
-
camera.snap- Parameter:
facing(front|back, Standardfront),quality(Standard0.95, auf[0.1, 1.0]begrenzt),maxWidth(Standard1600),deviceId(optional; eine unbekannte ID schlägt mitINVALID_REQUESTfehl). - Antwortnutzlast:
format: "jpg",base64,width,height. - Nutzlastbegrenzung: erneute Komprimierung, damit Base64 unter 5MB bleibt (dasselbe Budget wie bei iOS).
- Parameter:
-
camera.clip- Parameter:
facing(Standardfront),durationMs(Standard3000, auf[200, 60000]begrenzt),includeAudio(Standardtrue),deviceId(optional). - Antwortnutzlast:
format: "mp4",base64,durationMs,hasAudio. - Nutzlastbegrenzung: Die rohe MP4-Datei ist vor der Base64-Codierung auf 18MB begrenzt; zu große Clips schlagen mit
PAYLOAD_TOO_LARGEfehl (verringern SiedurationMsund versuchen Sie es erneut).
- Parameter:
macOS-App
macOS-Benutzereinstellung
Die macOS-Begleit-App bietet ein Kontrollkästchen:
- Settings → General → Allow Camera (
openclaw.cameraEnabled).- Standard: aus.
- Wenn ausgeschaltet: Kameraanfragen geben
CAMERA_DISABLED: enable Camera in Settingszurück.
CLI-Hilfsfunktion (Node-Aufruf)
Verwenden Sie die Haupt-CLI openclaw, um Kamerabefehle auf dem macOS-Node aufzurufen.
openclaw nodes camera list --node <id> # Kamera-IDs auflistenopenclaw nodes camera snap --node <id> # gibt den Speicherpfad ausopenclaw 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 # gibt den Speicherpfad ausopenclaw nodes camera clip --node <id> --duration-ms 3000 # gibt den Speicherpfad aus (veraltetes Flag)openclaw nodes camera clip --node <id> --device-id <id>openclaw nodes camera clip --node <id> --no-audioopenclaw nodes camera snapverwendet standardmäßigmaxWidth=1600, sofern dies nicht überschrieben wird.camera.snapwartet nach dem Aufwärmen und Stabilisieren der BelichtungdelayMs(Standard 2000ms, auf[0, 10000]begrenzt), bevor die Aufnahme erfolgt.- Fotonutzlasten werden erneut komprimiert, damit Base64 unter 5MB bleibt.
Sicherheit und praktische Grenzen
- Der Zugriff auf Kamera und Mikrofon löst die üblichen Berechtigungsabfragen des Betriebssystems aus (und erfordert Verwendungsbeschreibungen in
Info.plist). - Videoclips sind auf 60s begrenzt, um übergroße Node-Nutzlasten zu vermeiden (Base64-Overhead zuzüglich Nachrichtenlimits).
macOS-Bildschirmvideo (Betriebssystemebene)
Verwenden Sie für Bildschirmvideos (nicht für Kameraaufnahmen) die macOS-Begleit-App:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # gibt den Speicherpfad ausErfordert unter macOS die Berechtigung Screen Recording (TCC).