- iOS node(Gateway 経由でペアリング):
node.invokeで 写真(jpg)または 短い動画クリップ(mp4、音声は任意)を取得できます - Android node(Gateway 経由でペアリング):
node.invokeで 写真(jpg)または 短い動画クリップ(mp4、音声は任意)を取得できます - macOS app(Gateway 配下の node):
node.invokeで 写真(jpg)または 短い動画クリップ(mp4、音声は任意)を取得できます
iOS node
ユーザー設定(デフォルトでオン)
- iOS の Settings タブ → Camera → Allow Camera(
camera.enabled)- デフォルト: on(キー未設定でも有効として扱う)
- off の場合:
camera.*コマンドはCAMERA_DISABLEDを返す
コマンド(Gateway の node.invoke 経由)
-
camera.list- 応答ペイロード:
devices:{ id, name, position, deviceType }の配列
- 応答ペイロード:
-
camera.snap- パラメータ:
facing:front|back(デフォルト:front)maxWidth: number(任意。iOS node のデフォルトは1600)quality:0..1(任意。デフォルトは0.9)format: 現在はjpgdelayMs: number(任意。デフォルトは0)deviceId: string(任意。camera.listで取得)
- 応答ペイロード:
format: "jpg"base64: "<...>"width、height
- ペイロード保護: 写真は base64 ペイロードが 5 MB 未満に収まるよう再圧縮される
- パラメータ:
-
camera.clip- パラメータ:
facing:front|back(デフォルト:front)durationMs: number(デフォルト3000、最大60000にクランプ)includeAudio: boolean(デフォルトtrue)format: 現在はmp4deviceId: string(任意。camera.listで取得)
- 応答ペイロード:
format: "mp4"base64: "<...>"durationMshasAudio
- パラメータ:
フォアグラウンド要件
canvas.* と同様に、iOS node では foreground 中のみ camera.* を実行できます。background から呼び出した場合は NODE_BACKGROUND_UNAVAILABLE を返します。
CLI helper(一時ファイル + MEDIA)
添付ファイルとして扱う最も簡単な方法は、デコード済みメディアを一時ファイルへ書き込み、MEDIA:<path> を出力する CLI helper を使うことです。
例:
nodes camera snapはデフォルトで 両方の向き を取得し、エージェントに front / back 両方の視点を渡します- 自前のラッパーを作らない限り、出力ファイルは OS の一時ディレクトリ上のテンポラリファイルです
Android node
Android のユーザー設定(デフォルトでオン)
- Android の Settings sheet → Camera → Allow Camera(
camera.enabled)- デフォルト: on(キー未設定でも有効として扱う)
- off の場合:
camera.*コマンドはCAMERA_DISABLEDを返す
権限
- Android では実行時権限が必要です
camera.snapとcamera.clipの両方にCAMERAcamera.clipでincludeAudio=trueの場合はRECORD_AUDIO
camera.* リクエストは *_PERMISSION_REQUIRED で失敗します。
Android の foreground 要件
canvas.* と同様に、Android node でも foreground 中のみ camera.* を実行できます。background からの呼び出しは NODE_BACKGROUND_UNAVAILABLE を返します。
Android コマンド(Gateway の node.invoke 経由)
camera.list- 応答ペイロード:
devices:{ id, name, position, deviceType }の配列
- 応答ペイロード:
ペイロード保護
写真は base64 ペイロードを 5 MB 未満に抑えるため再圧縮されます。macOS app
ユーザー設定(デフォルトでオフ)
macOS companion app には次のチェックボックスがあります。- Settings → General → Allow Camera(
openclaw.cameraEnabled)- デフォルト: off
- off の場合: カメラ要求は “Camera disabled by user” を返す
CLI helper(node invoke)
メインのopenclaw CLI を使って、macOS node に camera command を送れます。
例:
openclaw nodes camera snapは、未指定時maxWidth=1600になります- macOS の
camera.snapは、warm-up / 露出安定のあとdelayMs(デフォルト 2000ms)だけ待ってから撮影します - 写真ペイロードは base64 が 5 MB 未満になるよう再圧縮されます
セーフティと実用上の制限
- カメラおよびマイクの使用時には、通常の OS 権限プロンプトが表示されます(Info.plist の usage string も必要)
- ノードペイロードの肥大化(base64 オーバーヘッド + メッセージ制限)を避けるため、動画クリップは現在
<= 60sに制限されています
macOS の画面動画(OS レベル)
screen 動画(カメラではなく画面)については、macOS companion を使用します。- macOS の Screen Recording 権限(TCC)が必要です