Skip to main content

Aria Gen2 CLI Reference

The Aria Gen2 CLI (aria_gen2) provides command-line access to device control, streaming, recording, and authentication operations for Aria devices.

This page documents the CLI as shipped in projectaria-client-sdk 2.5.0. Run aria_gen2 --version to check the version you have installed, and aria_gen2 <command> --help for the authoritative options of any command.

Command Overview​

GroupCommands
authpair, check, unpair, remove-certs, remove-ble-creds
userlogin, logout, verify
devicelist, status, profile, tts, wifi, hotspot, data-quality-stats
recordingstart, stop, list, info, delete, download, download-all, delete-all, sessions
streamingstart, stop, webrtc, install-certs, uninstall-certs, sessions, profiles

Global Options​

These options apply to all device commands and must be given before the subcommand.

--serial <serial_number>​

Connect to a specific device by ADB serial number. Mandatory when multiple devices are reachable; with a single device the CLI selects it automatically. The same rule applies over --ble, where the candidates are the devices paired over BLE on this host rather than the ones on USB.

aria_gen2 --serial IM0XXXXXXX device status

--device-ip <ipv4>​

Connect to a device by IPv4 address instead of over USB.

aria_gen2 --device-ip 192.168.1.42 device status

--ble​

Connect over BLE instead of USB/Wi-Fi. Uses the only device paired over BLE on this host; add --serial when more than one is paired. Recording and streaming are not available over BLE.

The CLI also falls back to BLE on its own when a device cannot be found over USB or Wi-Fi. See Automatic fallback to BLE.

The 2.5.0 --help text is wrong here

aria_gen2 --help describes --ble as requiring --serial. It does not, when exactly one device is paired.

Experimental, and not on Ubuntu

The --ble* flags are experimental. They work on macOS and have only been exercised on Fedora among Linux distributions; they are not supported on Ubuntu. See BLE Device Control.

aria_gen2 --ble --serial IM0XXXXXXX device status

--ble-scan / --ble-scan-timeout <seconds>​

Scan for BLE-paired devices in device list to report which are in range. Off by default because the scan costs a few seconds; without it, devices are listed from this host's stored pairings without checking whether they are reachable.

--ble-scan-timeout (default 12) sets how long the scan runs. BLE discovery latency is irregular — a device that is present has been measured taking anywhere from 0.3 s to 11.6 s to appear — so shorter windows will report a present device as missing.

aria_gen2 --ble-scan --ble-scan-timeout 15 device list

-v / --version​

Print the installed SDK version and exit.

aria_gen2 --version
# aria v2.5.0

Authentication Commands​

Manage device authentication and pairing.

auth pair​

Pair the SDK on this host with a device connected over USB. Requires approval in the Companion App.

Options:

  • --ble: Install BLE credentials over an existing authenticated SSL connection
aria_gen2 auth pair

# Add BLE credentials to an already-paired device
aria_gen2 auth pair --ble

auth check​

Check if the SDK is authenticated with the device.

aria_gen2 auth check

auth unpair​

Unpair the SDK from the device.

Options:

  • --ble: Remove locally stored BLE credentials for the selected device
aria_gen2 auth unpair

auth remove-certs​

Remove locally stored SDK authentication certificates (does not require a connected device).

aria_gen2 auth remove-certs

auth remove-ble-creds​

Remove all locally stored BLE credentials for every paired device (does not require a connected device).

aria_gen2 auth remove-ble-creds

User Account Commands​

Log in to a Project Aria account. This group is served by the Project Aria Login library rather than the device CLI, so it does not need a connected device.

user login --username <username>​

Log in to Project Aria.

Options:

  • --username (required): Username or email for authentication
  • --verbose: Enable verbose debug logging (must precede the subcommand)
aria_gen2 user login --username user@example.com

user verify​

Verify the stored authentication token.

aria_gen2 user verify

user logout​

Log out from Project Aria and discard the stored token.

aria_gen2 user logout

Device Commands​

Control and query device information.

device list​

List all connected USB devices. Add the global --ble-scan flag to also report which BLE-paired devices are in range.

aria_gen2 device list

device status​

Get current device status — battery, charging state, Wi-Fi, thermals, default recording profile, and device mode.

aria_gen2 device status

device data-quality-stats​

Get per-sensor data quality statistics during an active recording or streaming session.

aria_gen2 device data-quality-stats

Device Profile Commands​

device profile list​

List available device profiles, including both pre-defined and custom profiles on the device.

aria_gen2 device profile list

device profile add <profile>​

Add a single custom profile to the device. The operation is non-destructive — existing profiles are left in place. Once added, the custom profile can be used with recording start --profile or streaming start --profile.

Positional arguments:

  • profile (required): Path to a profile JSON file containing a single profile
# Add a custom profile to the device
aria_gen2 device profile add /path/to/custom_profile.json

# Verify the profile was added
aria_gen2 device profile list

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

device profile remove <name>​

Remove a single custom profile from the device by name.

Positional arguments:

  • name (required): Name of the profile to remove
aria_gen2 device profile remove my_custom_profile

device profile pull <name>​

Pull a profile JSON from the device by name.

Positional arguments:

  • name (required): Name of the profile to pull

Options:

  • --output, -o <path>: Output file path for the profile JSON
aria_gen2 device profile pull my_custom_profile -o ./my_custom_profile.json

Text-to-Speech Commands​

device tts start --tts-text <text>​

Start text-to-speech rendering on the device.

Options:

  • --tts-text (required): Text to convert to speech
aria_gen2 device tts start --tts-text "Hello, this is a test"

device tts stop​

Stop text-to-speech rendering.

aria_gen2 device tts stop

WiFi Commands​

device wifi scan​

Scan for nearby WiFi networks.

aria_gen2 device wifi scan

device wifi connect​

Connect to a WiFi network.

Options:

  • --ssid <ssid> (required): WiFi network SSID
  • --password <password>: WiFi network password
  • --auth <type>: Authentication type (default: wpa)
    • Values: none, eap, wpa, wep
  • --hidden: Connect to hidden network
  • --username <username>: Username for enterprise mode (EAP)
  • --disable-other: Disable other WiFi networks
  • --skip-internet-check: Skip internet connectivity check
# Connect to WPA network
aria_gen2 device wifi connect --ssid MyNetwork --password mypassword

# Connect to open network
aria_gen2 device wifi connect --ssid OpenNetwork --auth none

# Connect to enterprise network
aria_gen2 device wifi connect --ssid CorpNetwork --auth eap \
--username user@example.com --password mypassword

device wifi forget --ssid <ssid>​

Forget a WiFi network.

aria_gen2 device wifi forget --ssid MyNetwork

device wifi keep-on --set <0|1>​

Configure WiFi keep-on setting.

Options:

  • --set (required): 0 to disable, 1 to enable
aria_gen2 device wifi keep-on --set 1

WiFi Hotspot Commands​

device hotspot start​

Start WiFi hotspot on the device.

Options:

  • --wifi-band <band>: WiFi frequency band (default: BAND_5GHZ)
    • Values: BAND_2GHZ, BAND_5GHZ, BAND_6GHZ
  • --channel-bandwidth <bandwidth>: Channel bandwidth (default: BW_40MHZ)
    • Values: BW_20MHZ, BW_40MHZ, BW_80MHZ, BW_160MHZ
aria_gen2 device hotspot start --wifi-band BAND_5GHZ --channel-bandwidth BW_80MHZ

device hotspot stop​

Stop WiFi hotspot.

aria_gen2 device hotspot stop

device hotspot status​

Get WiFi hotspot status.

aria_gen2 device hotspot status

Recording Commands​

Control on-device recording and manage recordings.

recording start​

Start recording on the device.

Options:

  • --profile <profile_name>: Recording profile name. When omitted, the device's default recording profile is used — read it from aria_gen2 device status
  • --json-profile <custom profile json>: Custom profile json file
  • --recording-name <name>: Name for the recording file

Multi-device options — see Multi-Device Recording & Streaming:

OptionDefaultDescription
--all-Enable multi-device recording. Discovers all connected devices, assigns time domain mapping roles, and starts recording on all of them
--broadcaster <serial>smallest serialSerial of the device to use as time domain mapping broadcaster (requires --all)
--disable-time-domain-mapping-Disable automatic time domain mapping when using --all
--time-domain-mapping-mode <mode>-broadcaster or receiver
--time-domain-mapping-channel <N>first allowed channelSub-GHz radio channel. Allowed values depend on the connected glasses' country code, which requires an active Aria app session on the device: ETSI permits 0–2, FCC permits 10–40. See Time Domain Mapping
--time-domain-mapping-broadcaster-id <N>autoA non-zero uint32 shared by every device in the session. Required for --time-domain-mapping-mode receiver. Generated automatically for a broadcaster, and for all devices orchestrated by a single --all call
--time-domain-mapping-rate-hz <N>2.0Time domain mapping rate in Hz
--cross-device-camera-sync-Receiver devices synchronize their CV camera triggers to align with the broadcaster's trigger timing
--cross-device-camera-sync-offset-us <N>0Offset in microseconds for cross-device camera sync. Positive = trigger after the broadcaster, negative = before. Only valid for receivers — rejected for broadcasters
# Start recording with the device's default profile
aria_gen2 recording start

# Start recording with a specific profile
aria_gen2 recording start --profile profile10

# Start recording with a custom profile
aria_gen2 recording start --json-profile custom_profile.json

# Start recording with custom name
aria_gen2 recording start --recording-name my_recording_001

# Start a synchronized recording on every connected device
aria_gen2 recording start --profile profile9 --all

recording stop​

Stop the current recording.

Options:

  • --all: Stop recording on all connected devices
aria_gen2 recording stop

recording list​

List all recordings on the device.

aria_gen2 recording list

recording info <uuid>​

Get information about a specific recording. The UUID may be given positionally or through -u / --uuid.

Options:

  • --uuid, -u (required): Recording UUID
aria_gen2 recording info 123e4567-e89b-12d3-a456-426614174000

recording delete <uuid>​

Delete a specific recording. The UUID may be given positionally or through -u / --uuid.

Options:

  • --uuid, -u (required): Recording UUID to delete
aria_gen2 recording delete 123e4567-e89b-12d3-a456-426614174000

recording download [uuid]​

Download a specific recording, or every recording in a multi-device session. The UUID may be given positionally or through -u / --uuid.

Options:

  • --uuid, -u: Recording UUID to download. Required unless --session is given
  • --output, -o: Output path for the recording file
  • --session <id>: Multi-device session ID to download all recordings for. See Multi-Device Recording & Streaming
# Download to current directory
aria_gen2 recording download 123e4567-e89b-12d3-a456-426614174000

# Download to specific path
aria_gen2 recording download --uuid 123e4567-e89b-12d3-a456-426614174000 \
--output /path/to/recordings/

# Download every device's recording from a multi-device session
aria_gen2 recording download --session <session-id> --output /path/to/recordings/

recording download-all​

Download all recordings from the device. Files are named <uuid>.vrs.

Options:

  • --output, -o: Output directory for recording files
aria_gen2 recording download-all --output /path/to/recordings/

recording delete-all​

Delete all recordings from the device.

aria_gen2 recording delete-all

Multi-Device Recording Sessions​

Sessions started with recording start --all are tracked on disk at ~/.aria/multi-device-session/<id>.json.

recording sessions list​

List all multi-device recording sessions.

aria_gen2 recording sessions list

recording sessions info <session-id>​

Show details of a multi-device recording session — roles (broadcaster/receiver), per-device recording UUIDs, time domain mapping config, and active/stopped status.

Positional arguments:

  • session-id (required): Session ID to query
aria_gen2 recording sessions info <session-id>

Streaming Commands​

Control device streaming and manage streaming certificates.

streaming start​

Start HTTP streaming from the device.

Options:

OptionValuesDefaultDescription
--profileProfile namemp_streaming_demoStreaming profile name
--json-profilePath to JSON file-Streaming profile JSON file for custom configurations. See custom profile example
--interfaceusb, wifi_sta, wifi_sapusbStreaming interface. Use usb for USB streaming, wifi_sta for WiFi network streaming, wifi_sap for on-device hotspot streaming
--batch-period-msInteger (ms)0Batch period for messages during streaming. Default 0ms for real-time streaming. Set to > 0ms to reduce thermal load for wireless streaming
--urlURL stringhttps://oatmeal_server.local:6768Streaming endpoint URL
--streaming-cert-nameCertificate name-Pre-installed streaming certificate name
--verify-server-certs / --no-verify-server-certsFlag pairNo verificationVerify server certificates
--use-ephemeral-certsFlag-Use ephemeral streaming certificates on both device and local host
--local-certs-dirPath-Local streaming certificates directory
--keep-streaming-on-disconnectionFlag-Continue streaming after WiFi disconnection
--header"name:value" or "name=value"-HTTP headers to send with streaming requests. Accepts multiple values

Multi-device options — --all, --broadcaster, --disable-time-domain-mapping, --time-domain-mapping-mode, --time-domain-mapping-channel, --time-domain-mapping-broadcaster-id, --time-domain-mapping-rate-hz, --cross-device-camera-sync and --cross-device-camera-sync-offset-us behave exactly as they do for recording start. See Multi-Device Recording & Streaming.

Examples:

# USB streaming (default)
aria_gen2 streaming start

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

# Hotspot streaming with 800ms batch period
aria_gen2 streaming start --interface wifi_sap --batch-period-ms 800

# USB streaming with custom profile JSON
aria_gen2 streaming start --json-profile /path/to/custom_profile.json

# Start streaming with custom URL and extra HTTP headers
aria_gen2 streaming start --url https://192.168.1.100:8080 \
--header "x-conductor-tier:prod" "x-conductor-session:test"

# Start synchronized streaming on every connected device
aria_gen2 streaming start --profile profile9 --all

streaming stop​

Stop streaming.

Options:

  • --all: Stop streaming on all connected devices
  • --remove-ephemeral-certs: Remove ephemeral streaming certificates from the local host. To uninstall certs on both device and host, use streaming uninstall-certs instead
  • --local-certs-dir <path>: Local streaming certificates directory
aria_gen2 streaming stop
aria_gen2 streaming stop --remove-ephemeral-certs

streaming profiles​

List the streaming profiles the device supports.

aria_gen2 streaming profiles

WebRTC Streaming Commands​

WebRTC is an alternative transport to HTTP streaming and needs no streaming certificates. See WebRTC Streaming for the supported topologies.

streaming webrtc start​

Start a WebRTC streaming session.

Options:

OptionDefaultDescription
--signaling-url (required)-Signaling server URL, e.g. tcp://<host>:<port>. An https:// scheme selects TLS signaling, which the device can only use against a server certificate chaining to its built-in trust anchor — there is no trust-anchor option here, unlike the receiver's --ca-root
--profilemp_streaming_demoStreaming profile name
--json-profile-Streaming profile JSON file
--interfacewifi_stawifi_sta (Wi-Fi network) or wifi_sap (on-device hotspot). WebRTC is Wi-Fi only
--roomdefaultSignaling room/channel id
--room-password-Optional shared secret to join the signaling room. Must match what the receiver passes to aria_streaming_viewer --room-password
--auth-token-Bearer token presented to the signaling server
--stun <url>-STUN server URL, e.g. stun:<host>:<port>. Repeatable
--turn <url,user,cred>-TURN server as url,username,credential. Repeatable
--pcie-batch-period-ms10Batch period for messages through the PCIe channel. Minimum 10
--ntp-sync-Sync the device clock against an NTP server before starting the session. See below
-r, --record-Also record to VRS on-device during the WebRTC streaming session
--recording-profile-Recording profile name to use (requires --record)
--recording-json-profile-Recording profile JSON file to use (requires --record)
# Same-network direct peer-to-peer
aria_gen2 streaming webrtc start --signaling-url tcp://<host-ip>:9000 \
--profile low_latency_streaming --interface wifi_sta

# Cross-network through a signaling server, syncing the device clock first
aria_gen2 streaming webrtc start \
--signaling-url tcp://example.com:8443 \
--profile low_latency_streaming \
--room my-room --auth-token "$AUTH_TOKEN" \
--stun stun:example.com:3478 \
--turn turn:example.com:3478,aria,"$TURN_PASSWORD" \
--interface wifi_sta \
--ntp-sync

--ntp-sync: a signaling server may refuse a device whose clock has drifted, because the authentication handshake is timestamped and stale handshakes are rejected. --ntp-sync makes the device sync its clock against an NTP server before the session starts. The device must be able to reach that server over Wi-Fi, and the sync is a precondition rather than best-effort: if it fails, the session does not start.

-r / --record: records to VRS on the device for the duration of the streaming session, so you get a full-rate on-device capture alongside the live stream. --recording-profile and --recording-json-profile select the recording profile and are independent of --profile, which selects the streaming profile. One streaming webrtc stop ends both the stream and the recording.

Recording while streaming is WebRTC only

aria_gen2 streaming start (HTTP) has no --record flag. In Python, device.start_streaming(record=True) fails with OperationNotAllowed unless a WebRTC config was set first via set_webrtc_streaming_config().

streaming webrtc stop​

Stop the active WebRTC streaming session.

aria_gen2 streaming webrtc stop

Streaming Certificate Commands​

streaming install-certs​

Install streaming certificates on both the device and the local host.

Options:

  • --use-ephemeral-certs: Generate and install ephemeral certificates
  • --local-certs-dir <path>: Local streaming certificates directory
  • --device <serial>: Device serial for multi-device cert installation. Repeat for multiple devices. When specified, certs are generated once and installed on all of them
aria_gen2 streaming install-certs --use-ephemeral-certs

# Install one shared cert across two devices
aria_gen2 streaming install-certs --device SERIAL1 --device SERIAL2

The command prints the installed certificate name (for example cert_1769712774692532015), which is what streaming start --streaming-cert-name expects.

streaming install-certs user-defined-certs​

Install user-defined streaming certificates.

Options:

  • --cert <file>: Certificate file (PEM format)
  • --key <file>: Private key file (PEM format)
  • --key-password <file>: Private key password file
  • --ca-root <file>: CA root certificate file
  • --cert-name <name>: Certificate name
aria_gen2 streaming install-certs user-defined-certs \
--cert publisher.crt \
--key publisher.key \
--key-password key_password.txt \
--ca-root ca_root.crt \
--cert-name my_streaming_cert

streaming uninstall-certs​

Remove streaming certificates from both device and local host.

Options:

  • --local-certs-dir <path>: Local streaming certificates directory
aria_gen2 streaming uninstall-certs

Multi-Device Streaming Sessions​

streaming sessions list​

List all multi-device streaming sessions.

aria_gen2 streaming sessions list

streaming sessions info <session-id>​

Show details of a multi-device streaming session — roles, profile, time domain mapping config, streaming cert name, and active/stopped status.

Positional arguments:

  • session-id (required): Session ID to query
aria_gen2 streaming sessions info <session-id>

Diagnostic and Utility Tools​

The following standalone CLI tools help with device setup, troubleshooting, and data visualization.

aria_doctor​

Resolve internet connectivity issues and configure open ports when first connecting to the device.

This tool helps troubleshoot and fix common networking problems when setting up a new device connection.

Options:

  • -v, --verbose: Increase output verbosity
aria_doctor

aria_diagnostics​

Collect error logs and diagnostic information from the device and save them to diagnostics.zip.

This tool is useful for troubleshooting device issues and gathering logs for support.

Options:

  • -v, --verbose: Increase output verbosity
aria_diagnostics

The diagnostic archive will be saved as diagnostics.zip in the current directory.

Linux Users

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

sudo apt install net-tools

aria_streaming_viewer​

Visualize real-time streaming data from the device — images, IMU, and the other sensor outputs in the active streaming profile.

Start order does not matter

The viewer is the HTTP server that the device pushes to, so aria_gen2 streaming start and aria_streaming_viewer can be run in two terminals in either order — the device retries until the viewer is up. What HTTP streaming does require is that host and device use matching streaming certificates: run aria_gen2 streaming install-certs once and pass its name via --streaming-cert-name. WebRTC needs no certificate setup.

General options:

  • --real-time: Enable real-time streaming with reduced queue sizes. Without it the visualization may lag
  • --interpolate: Interpolate hand pose data for visualization (default: use the closest data point)
  • --jpeg-quality <quality>: JPEG quality for image visualization (default: 50)
  • --rerun-memory-limit <limit>: Rerun memory limit (default: 4GB)
  • --blueprint <path.rbl>: Path to a custom Rerun blueprint file to use instead of the auto-generated layout
  • --show-latency: Show real-time latency metrics in Rerun and in the terminal (RGB camera only)
  • --latency-offset-ms <ms>: Estimated Rerun display pipeline latency in ms, added to the total (default: 100)
  • --no-exit-on-viewer-close: Keep receiving after the Rerun viewer window is closed (default is to shut down)
  • --transport <http|webrtc>: Transport used to receive the stream (default: http)

--transport http options (mirror HttpServerConfig fields):

  • --http-address <address>: Address the HTTP streaming server binds (default: 0.0.0.0)
  • --http-port <port>: Port the HTTP streaming server binds (default: 6768)

--transport webrtc options (mirror WebRtcConfig fields):

  • --signaling-url <url>: Signaling server URL <scheme>://<host>:<port>, scheme tcp, https or http. Same spelling as the device's --signaling-url, and the only way to select TLS signaling. Supersedes --signaling-host / --signaling-port
  • --signaling-host <host> / --signaling-port <port>: Signaling server host and port for tcp signaling
  • --ca-root <root>: Trust anchor for an https signaling URL — a named root (Public, MetaProd, MetaCloud, Test, matched case-insensitively) or a path to a PEM CA bundle (default: Public, the system root store)
  • --no-verify-server-certs: Accept any signaling server certificate. Allowed only against a loopback signaling host (localhost, 127.0.0.1, ::1) — it accepts an attacker's certificate too. For a remote self-signed deployment use --ca-root <path-to-PEM>
  • --stun <url> / --turn <url>: STUN and TURN server URLs
  • --turn-username <user> / --turn-password <password>: TURN credentials
  • --auth-token <token>: Bearer token presented to the signaling server
  • --room <id> / --room-password <password>: Signaling room to join, and its optional shared secret
  • --listen <port>: Direct-P2P listen port (no signaling server)
  • --no-audio-controls: Disable the terminal audio controls (mic mute key and level meter)
# Basic usage
aria_streaming_viewer

# Real-time mode with hand pose interpolation and a larger Rerun buffer
aria_streaming_viewer --real-time --interpolate --rerun-memory-limit 4GB

# Same-network direct peer-to-peer over WebRTC
aria_streaming_viewer --transport webrtc --listen 9000
info

If the viewer starts but shows no data, see the Viewer Not Showing Data troubleshooting guide.

aria_multi_device_streaming_viewer​

Live Rerun visualization for two or more Aria Gen2 devices streaming simultaneously, with time-domain-mapping-corrected timestamps for synchronized cross-device replay.

Options:

  • --jpeg-quality <quality>: JPEG decode quality for image visualization (default: 50)
  • --rerun-memory-limit <limit>: Rerun memory limit (default: 4GB). Buffering scales roughly as N devices × per-frame size, so pass a larger value (e.g. 16GB) for long multi-device sessions
  • --broadcaster <serial>: Explicit broadcaster device serial. By default the lowest-sorted serial is assumed to be the broadcaster, matching the CLI default. Use this flag only if you passed --broadcaster to aria_gen2 streaming start
  • --expected-device-count <N>: Strict mode — hard-error if fewer than N connected devices are present after the connection-wait window. Default is passive: accept whatever connects
  • --skip-tdm-validation: Proceed even when one or more receivers fail the time domain mapping validation window. Logically impossible cases (TDM from the broadcaster, no TDM at all) still hard-error
  • --port <port>: HTTP server port (default: 6768). Override only when running alongside aria_streaming_viewer on the same host, since both default to 6768
  • --streaming-cert-name <name>: Name of the cert the connecting devices will present. The viewer verifies the installed cert's name matches and exits before any device connects on mismatch, turning a silent TLS-handshake failure into a clear startup error. When omitted, the viewer uses whatever cert is installed; if nothing is installed it exits — it never auto-generates
Install certs first

Unlike aria_streaming_viewer, this viewer never auto-generates certificates. Run aria_gen2 streaming install-certs --device <SERIAL> --device <SERIAL> once before the first session.

aria_multi_device_streaming_viewer --expected-device-count 2

See Multi-Device Recording & Streaming for the full workflow.

aria_rerun_viewer​

Visualize a downloaded VRS recording in Rerun.

Options:

  • --vrs <path> (required): Path to a VRS file
  • --skip-begin-sec <seconds>: Seconds to skip at the beginning of the VRS file
  • --skip-end-sec <seconds>: Seconds to skip at the end of the VRS file
  • --enabled-streams <labels...>: Enable specific viewers by stream label, e.g. camera-rgb eyegaze (default: all)
  • --subsample-rates <stream=rate...>: Subsampling rates per stream, e.g. camera-rgb=2 (default: vio_high_frequency=10, bringing 800 Hz down to 80 Hz)
  • --rrd-output-path <path>: Save an .rrd file instead of spawning a viewer window
aria_rerun_viewer --vrs ~/Downloads/recording.vrs

# Only RGB and eye gaze, skipping the first 5 seconds
aria_rerun_viewer --vrs recording.vrs --enabled-streams camera-rgb eyegaze --skip-begin-sec 5

Common Usage Examples​

Quick Start: Stream from Device​

# 1. Authenticate
aria_gen2 auth pair

# 2. Start streaming
aria_gen2 streaming start

# 3. Stop streaming
aria_gen2 streaming stop

Record Data on Device​

# Start recording
aria_gen2 recording start --recording-name experiment_001

# ... wait for recording to complete ...

# Stop recording
aria_gen2 recording stop

# List recordings
aria_gen2 recording list

# Download recording
aria_gen2 recording download -u <uuid> -o ./recordings/

Connect Device to WiFi​

# Scan for networks
aria_gen2 device wifi scan

# Connect to WiFi
aria_gen2 device wifi connect --ssid MyNetwork --password mypassword

Work with Multiple Devices​

# List devices
aria_gen2 device list

# Connect to specific device by serial
aria_gen2 --serial 1M0XXXXXXX device status

# Record on every connected device, then inspect the session
aria_gen2 recording start --profile profile9 --all
aria_gen2 recording stop --all
aria_gen2 recording sessions list

Debug Issues​

# Check authentication
aria_gen2 auth check

# Get device status
aria_gen2 device status

# Get per-sensor data quality during an active session
aria_gen2 device data-quality-stats

Additional Resources​

For troubleshooting common issues with device connection, authentication, recording, or streaming, please refer to the Troubleshooting Guide.

Key points:

  • Most commands require a connected device (via USB)
  • Authentication (auth pair) must be performed before first use
  • On-device recording and streaming cannot run simultaneously, except through streaming webrtc start --record
  • Global options such as --serial and --device-ip go before the subcommand
  • If you encounter connection issues, run aria_doctor to resolve networking problems
  • For detailed troubleshooting steps, see the Troubleshooting Guide