CLI Quick Reference
A structured reference of all aria_gen2 CLI commands. For full details, see the Technical Specs CLI Reference.
Prerequisites
- Client SDK installed and virtual environment activated
- Device connected via USB and authenticated
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.
| Flag | Required | Description |
|---|---|---|
--ssid | Yes | Wi-Fi network name |
--password | Yes | Wi-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.
| Flag | Required | Description |
|---|---|---|
--upload-profile | Yes | Path 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)
| Flag | Required | Default | Description |
|---|---|---|---|
--profile | Yes | — | Recording profile (profile8, profile9, profile10) |
--recording-name | No | timestamp | Custom name for the recording |
--json-profile | No | — | Path to a custom JSON profile file |
--all | No | — | Multi-device: orchestrate all connected devices. See Multi-Device Recording & Streaming |
--broadcaster <serial> | No | smallest serial | Multi-device: serial of the TDM broadcaster (requires --all) |
--disable-time-domain-mapping | No | — | Multi-device: skip TDM, coordinate start/stop only (requires --all) |
--time-domain-mapping-channel <N> | No | auto | TDM 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> | No | 0 | TDM broadcaster identifier |
--time-domain-mapping-rate-hz <N> | No | 2.0 | TDM signal rate in Hz |
aria_gen2 recording start --profile profile8 --recording-name my_experiment
aria_gen2 recording stop
Purpose: Stop the currently active recording.
| Flag | Required | Default | Description |
|---|---|---|---|
--all | No | — | Multi-device: stop recording on all connected devices |
--serial <serial> | No | auto-detected | Stop 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.
| Flag | Required | Description |
|---|---|---|
-u / --uuid | Yes | Recording 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.
| Flag | Required | Description |
|---|---|---|
-u / --uuid | Conditional | Recording UUID. Required unless --session is given |
-o / --output | No | Output directory |
--session <id> | Conditional | Multi-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.
| Flag | Required | Description |
|---|---|---|
-o / --output | No | Output directory |
aria_gen2 recording download-all -o ~/Downloads/
aria_gen2 recording delete
Purpose: Delete a specific recording from the device.
| Flag | Required | Description |
|---|---|---|
-u / --uuid | Yes | Recording 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)
| Flag | Required | Default | Description |
|---|---|---|---|
--interface | No | usb | usb, wifi_sta, or wifi_sap |
--batch-period-ms | No | — | Message batching period (required for wireless) |
--profile | No | mp_streaming_demo | Streaming profile |
--url | No | — | Remote server URL for remote streaming |
--streaming-cert-name | No | — | Certificate name for remote streaming |
--no-verify-server-certs | No | — | Skip server certificate verification |
--all | No | — | Multi-device: orchestrate all connected devices. See Multi-Device Recording & Streaming |
--broadcaster <serial> | No | smallest serial | Multi-device: serial of the TDM broadcaster (requires --all) |
--disable-time-domain-mapping | No | — | Multi-device: skip TDM, coordinate start/stop only (requires --all) |
--time-domain-mapping-channel <N> | No | auto | TDM 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> | No | 0 | TDM broadcaster identifier |
--time-domain-mapping-rate-hz <N> | No | 2.0 | TDM 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.
| Flag | Required | Default | Description |
|---|---|---|---|
--all | No | — | Multi-device: stop streaming on all connected devices |
--serial <serial> | No | auto-detected | Stop streaming on a specific device |
aria_gen2 streaming stop
aria_gen2 streaming install-certs
Purpose: Generate and install streaming certificates for remote streaming.
| Flag | Required | Default | Description |
|---|---|---|---|
--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.
| Flag | Required | Description |
|---|---|---|
<session-id> | Yes | Session 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.
| Flag | Required | Description |
|---|---|---|
<session-id> | Yes | Session 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).
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:
aria_gen2 streaming start(in terminal 1)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.
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:
aria_gen2 streaming install-certs --device <SERIAL> [--device <SERIAL>](one-time, REQUIRED)python ~/Downloads/projectaria_client_sdk_samples_gen2/multi_device_streaming_viewer.py(terminal 1)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.
| Flag | Required | Description |
|---|---|---|
--vrs | Yes | Path 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
If aria_diagnostics fails to run, you may need to install net-tools:
sudo apt install net-tools