Skip to main content

CLI Quick Reference

A structured reference of all aria_gen2 CLI commands. For full details, see the Technical Specs CLI Reference.

Prerequisites

One-Time Setup: Device Authentication Required

Before using any device control commands (recording, streaming, etc.), you must authenticate your device by running aria_gen2 auth pair (see Device Authentication). This only needs to be done once per device-PC combination, but all subsequent SDK operations will fail without it. You can verify your authentication status at any time with aria_gen2 auth check.


System Setup

aria_doctor

Purpose: Configure your PC for device communication (ports, USB networking, internet access).

aria_doctor

When to use: After installing the SDK, after a system restart, or when the device is not detected.


Device Commands

aria_gen2 device list

Purpose: List all connected Aria Gen 2 devices.

aria_gen2 device list

Expected Output:

[AriaGen2Cli:App][INFO]: 1M0YDB5H7B0020

aria_gen2 device wifi connect

Purpose: Connect the device to a Wi-Fi network.

FlagRequiredDescription
--ssidYesWi-Fi network name
--passwordYesWi-Fi password
aria_gen2 device wifi connect --ssid "MyNetwork" --password "MyPassword"

aria_gen2 device hotspot start

Purpose: Enable the on-device Wi-Fi hotspot for direct wireless streaming.

aria_gen2 device hotspot start

Profile Commands

aria_gen2 device profile list

Purpose: List all available recording and streaming profiles on the device, including pre-defined and custom profiles.

aria_gen2 device profile list

aria_gen2 device profile --upload-profile

Purpose: Upload a custom profile JSON file to the device for use with recording or streaming.

FlagRequiredDescription
--upload-profileYesPath to custom profile JSON file
aria_gen2 device profile --upload-profile /path/to/custom_profile.json

For details on creating custom profile JSON files, see Custom Profile Example.


Authentication Commands

aria_gen2 auth pair

Purpose: Authenticate the device with your PC. Requires approval in the Companion App.

Prerequisites: Device detected (aria_gen2 device list)

aria_gen2 auth pair

Expected Output:

[AriaGen2SDK:DeviceClient][INFO]: Client hash is: f30a36a9f3842bd3fc16c75b525...
[AriaGen2Cli:App][INFO]: Waiting for authentication approval on your mobile Companion App...
[AriaGen2Cli:App][INFO]: Successfully authenticated the device

aria_gen2 auth check

Purpose: Verify the device is authenticated.

aria_gen2 auth check

Expected Output:

[AriaGen2Cli:App][INFO]: Device 1M0YDB5H7B0020 is successfully authenticated.

Recording Commands

aria_gen2 recording start

Purpose: Start a recording on the device.

Prerequisites: Device authenticated (aria_gen2 auth check)

FlagRequiredDefaultDescription
--profileYesRecording profile (profile8, profile9, profile10)
--recording-nameNotimestampCustom name for the recording
--json-profileNoPath to a custom JSON profile file
--allNoMulti-device: orchestrate all connected devices. See Multi-Device Recording & Streaming
--broadcaster <serial>Nosmallest serialMulti-device: serial of the TDM broadcaster (requires --all)
--disable-time-domain-mappingNoMulti-device: skip TDM, coordinate start/stop only (requires --all)
--time-domain-mapping-channel <N>NoautoTDM radio channel. Allowed values depend on the device's country code (read from wifi_country_code): ETSI permits 0–2; FCC permits 10–40. Auto-picked for the resolved region when omitted.
--time-domain-mapping-broadcaster-id <N>No0TDM broadcaster identifier
--time-domain-mapping-rate-hz <N>No2.0TDM signal rate in Hz
aria_gen2 recording start --profile profile8 --recording-name my_experiment

aria_gen2 recording stop

Purpose: Stop the currently active recording.

FlagRequiredDefaultDescription
--allNoMulti-device: stop recording on all connected devices
--serial <serial>Noauto-detectedStop recording on a specific device
aria_gen2 recording stop

aria_gen2 recording list

Purpose: List all recordings stored on the device (UUID, name, timestamp, size).

aria_gen2 recording list

Expected Output:

[RecordingClientWrapper][INFO]: Start time                Recording uuid                         Size (bytes)   Type
[RecordingClientWrapper][INFO]: 2025-10-12 16:51:16 PDT 4b5d47d4-f1e4-46d6-b852-670adae9d848 11724800 prototype

aria_gen2 recording info

Purpose: Get detailed information about a specific recording.

FlagRequiredDescription
-u / --uuidYesRecording UUID
aria_gen2 recording info -u <uuid>

aria_gen2 recording download

Purpose: Download a specific recording from the device in VRS format, or every recording in a multi-device session.

FlagRequiredDescription
-u / --uuidConditionalRecording UUID. Required unless --session is given
-o / --outputNoOutput directory
--session <id>ConditionalMulti-device session ID. Downloads every device's recording into per-device subdirectories. Mutually exclusive with --uuid. See Multi-Device Recording & Streaming.
aria_gen2 recording download -u <uuid> -o ~/Downloads/

aria_gen2 recording download-all

Purpose: Download all recordings from the device.

FlagRequiredDescription
-o / --outputNoOutput directory
aria_gen2 recording download-all -o ~/Downloads/

aria_gen2 recording delete

Purpose: Delete a specific recording from the device.

FlagRequiredDescription
-u / --uuidYesRecording UUID
aria_gen2 recording delete -u <uuid>

aria_gen2 recording delete-all

Purpose: Delete all recordings from the device.

aria_gen2 recording delete-all

Streaming Commands

aria_gen2 streaming start

Purpose: Start streaming sensor data from the device.

Prerequisites: Device authenticated (aria_gen2 auth check)

FlagRequiredDefaultDescription
--interfaceNousbusb, wifi_sta, or wifi_sap
--batch-period-msNoMessage batching period (required for wireless)
--profileNomp_streaming_demoStreaming profile
--urlNoRemote server URL for remote streaming
--streaming-cert-nameNoCertificate name for remote streaming
--no-verify-server-certsNoSkip server certificate verification
--allNoMulti-device: orchestrate all connected devices. See Multi-Device Recording & Streaming
--broadcaster <serial>Nosmallest serialMulti-device: serial of the TDM broadcaster (requires --all)
--disable-time-domain-mappingNoMulti-device: skip TDM, coordinate start/stop only (requires --all)
--time-domain-mapping-channel <N>NoautoTDM radio channel. Allowed values depend on the device's country code (read from wifi_country_code): ETSI permits 0–2; FCC permits 10–40. Auto-picked for the resolved region when omitted.
--time-domain-mapping-broadcaster-id <N>No0TDM broadcaster identifier
--time-domain-mapping-rate-hz <N>No2.0TDM signal rate in Hz
# USB streaming
aria_gen2 streaming start

# WiFi router streaming
aria_gen2 streaming start --interface wifi_sta --batch-period-ms 200

# On-device hotspot streaming
aria_gen2 streaming start --interface wifi_sap --batch-period-ms 800

# Remote server streaming
aria_gen2 streaming start --url "https://server:6768" --interface wifi_sta --batch-period-ms 200

Expected Output:

[AriaGen2Cli:App][INFO]: Streaming started successfully

aria_gen2 streaming stop

Purpose: Stop the active streaming session.

FlagRequiredDefaultDescription
--allNoMulti-device: stop streaming on all connected devices
--serial <serial>Noauto-detectedStop streaming on a specific device
aria_gen2 streaming stop

aria_gen2 streaming install-certs

Purpose: Generate and install streaming certificates for remote streaming.

FlagRequiredDefaultDescription
--device <serial>No (repeatable)Pass repeatedly to install the same cert across multiple devices, e.g. --device A --device B, for multi-device streaming. See Multi-Device Streaming Certs.
aria_gen2 streaming install-certs

Output includes a cert name (e.g., cert_1769712774692532015) needed for --streaming-cert-name.


Multi-Device Sessions

Multi-device sessions are tracked on disk at ~/.aria/multi-device-session/<id>.json. Use these commands to inspect and manage them. See Multi-Device Recording & Streaming for the full conceptual guide.

aria_gen2 recording sessions list

Purpose: List all multi-device recording sessions on disk.

aria_gen2 recording sessions list

aria_gen2 recording sessions info

Purpose: Show details of a specific recording session — roles (broadcaster/receiver), per-device recording UUIDs, TDM config, active/stopped status.

FlagRequiredDescription
<session-id>YesSession UUID (positional)
aria_gen2 recording sessions info <session-id>

aria_gen2 streaming sessions list

Purpose: List all multi-device streaming sessions on disk.

aria_gen2 streaming sessions list

aria_gen2 streaming sessions info

Purpose: Show details of a specific streaming session — roles, profile, TDM config, streaming cert name, active/stopped status.

FlagRequiredDescription
<session-id>YesSession UUID (positional)
aria_gen2 streaming sessions info <session-id>

Visualization Commands

aria_streaming_viewer

Purpose: Open the real-time streaming viewer (run in a separate terminal while streaming is active).

Start Streaming Before Opening Viewer

You must start streaming (aria_gen2 streaming start) before launching aria_streaming_viewer. The viewer connects to an already-active stream — if no stream is running, the viewer will not display any data. Always follow this order:

  1. aria_gen2 streaming start (in terminal 1)
  2. aria_streaming_viewer (in terminal 2)
aria_streaming_viewer --real-time --interpolate --rerun-memory-limit 4GB

multi_device_streaming_viewer.py

Purpose: Live Rerun visualization for two or more Aria Gen 2 devices streaming simultaneously, with TDM-corrected timestamps for synchronized cross-device replay. Bundled with the Python SDK samples — export it via Export Example Code before first use.

Recommended order (opposite of aria_streaming_viewer)

This tool is the HTTPS server that devices push to, so launching it before aria_gen2 streaming start --all lets frames land from the first push attempt. Reverse order also works — devices retry on connection-refused. Hard prerequisite: a streaming cert must already be installed via aria_gen2 streaming install-certs (the viewer does not auto-generate). Recommended sequence:

  1. aria_gen2 streaming install-certs --device <SERIAL> [--device <SERIAL>] (one-time, REQUIRED)
  2. python ~/Downloads/projectaria_client_sdk_samples_gen2/multi_device_streaming_viewer.py (terminal 1)
  3. aria_gen2 streaming start --profile profile9 --all (terminal 2)
python ~/Downloads/projectaria_client_sdk_samples_gen2/multi_device_streaming_viewer.py

See Multi-Device Recording & Streaming → Live Visualization for flags and validation behavior.


aria_rerun_viewer

Purpose: Visualize a downloaded VRS recording.

FlagRequiredDescription
--vrsYesPath to VRS file
aria_rerun_viewer --vrs ~/Downloads/recording.vrs

Diagnostic Commands

aria_diagnostics

Purpose: Collect diagnostic information and error logs for troubleshooting.

aria_diagnostics
Linux Users

If aria_diagnostics fails to run, you may need to install net-tools:

sudo apt install net-tools