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.


Global Options​

These go before the subcommand, not after it.

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.

FlagDescription
--serial <serial>Target a specific device by ADB serial. Mandatory when several devices are plugged in over USB
--device-ip <ipv4>Target a device by IP address instead of USB
--bleConnect over BLE instead of USB/Wi-Fi. Uses the only BLE-paired device; add --serial when several are paired. Recording and streaming are not available over BLE. The CLI also falls back to BLE on its own when a device is not found over USB/Wi-Fi — see BLE Device Control
--ble-scanIn device list, scan to report which BLE-paired devices are in range. Off by default because it costs a few seconds
--ble-scan-timeout <sec>How long --ble-scan runs (default 12). BLE discovery latency is irregular, so shorter windows report present devices as missing
-v / --versionPrint the installed SDK version and exit
aria_gen2 --serial 1M0YDB5H7B0020 device status

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 status​

Purpose: Report battery, charging state, Wi-Fi, thermals, the device's default recording profile, and device mode.

aria_gen2 device status

aria_gen2 device data-quality-stats​

Purpose: Report per-sensor data quality statistics — drop counts, quality score, sequential drops, timestamp errors — during an active recording or streaming session.

aria_gen2 device data-quality-stats

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 add​

Purpose: Add a custom profile JSON file to the device for use with recording or streaming. Non-destructive — existing profiles are left in place.

ArgumentRequiredDescription
<profile>YesPath to a JSON file containing a single custom profile (positional)
aria_gen2 device profile add /path/to/custom_profile.json

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


aria_gen2 device profile remove​

Purpose: Remove a custom profile from the device by name.

ArgumentRequiredDescription
<name>YesName of the profile to remove (positional)
aria_gen2 device profile remove my_custom_profile

aria_gen2 device profile pull​

Purpose: Download a profile's JSON from the device by name.

FlagRequiredDescription
<name>YesName of the profile to pull (positional)
-o / --outputNoOutput file path for the profile JSON
aria_gen2 device profile pull my_custom_profile -o ./my_custom_profile.json

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.

aria_gen2 auth unpair​

Purpose: Unpair this PC from the device. The device must be connected over USB or Wi-Fi: the command revokes this PC's certificate on the glasses, then removes it locally, so the glasses stop accepting this PC and the Companion App no longer lists it.

If the glasses cannot be reached, the local certificate is still removed and a warning says the glasses may still trust it. Revoke it in the Companion App, or reconnect the device and run auth pair followed by auth unpair.

FlagRequiredDescription
--bleNoUnpair BLE instead: revoke this PC's BLE credential on the glasses over BLE, then remove it locally
--local-onlyNoWith --ble, only remove the local BLE credentials, without contacting the glasses (for glasses that are gone or reflashed)
aria_gen2 auth unpair

Expected Output:

[AriaGen2Cli:App][INFO]: Revoked this host's certificate on device 1M0YDB5H7B0020 and removed it locally

aria_gen2 auth remove-certs / aria_gen2 auth remove-ble-creds​

Purpose: Clear locally stored credentials. Neither needs a connected device.

  • remove-certs — remove any locally stored SDK authentication certificates. This does not revoke them on the glasses; use auth unpair for that
  • remove-ble-creds — remove all locally stored BLE credentials, for every paired device
aria_gen2 auth remove-certs
aria_gen2 auth remove-ble-creds

Account Commands​

aria_gen2 user login / verify / logout​

Purpose: Log in to a Project Aria account. No device required — this group is served by Project Aria Login, not the device CLI.

CommandFlagsDescription
user login--username (required)Log in to Project Aria
user verify—Verify the stored authentication token
user logout—Log out and discard the stored token
aria_gen2 user login --username user@example.com
aria_gen2 user verify

Recording Commands​

aria_gen2 recording start​

Purpose: Start a recording on the device.

Prerequisites: Device authenticated (aria_gen2 auth check)

FlagRequiredDefaultDescription
--profileNodevice defaultRecording profile (e.g. profile8, profile9, profile10). When omitted, the device's default recording profile is used — read it from aria_gen2 device status
--recording-nameNotimestampCustom name for the recording
--json-profileNo—Path to a custom JSON profile file
--cross-device-camera-syncNo—Multi-device: receivers align their CV camera triggers to the broadcaster's trigger timing
--cross-device-camera-sync-offset-us <N>No0Multi-device: microsecond offset for cross-device camera sync. Positive = after the broadcaster, negative = before. Receivers only
--allNo—Multi-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-mappingNo—Multi-device: skip TDM, coordinate start/stop only (requires --all)
--external-broadcaster-id <N>No—Multi-device: start every device as a TDM receiver locked to an external broadcaster with ID N (requires --all; excludes --broadcaster, --disable-time-domain-mapping, --time-domain-mapping-mode, --time-domain-mapping-broadcaster-id)
--time-domain-mapping-mode <mode>No—TDM role for this device: broadcaster emits the timing signal, receiver locks onto a broadcaster's ID
--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>NoautoNon-zero TDM broadcaster ID shared by every device in the session; devices reject 0. Required with --time-domain-mapping-mode receiver; generated automatically for a broadcaster and for every device in a single --all call
--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
--allNo—Multi-device: stop recording on all connected devices

To target one device out of several, pass the global --serial before the subcommand: aria_gen2 --serial <serial> recording stop.

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-msNo—Message batching period (required for wireless)
--profileNomp_streaming_demoStreaming profile
--urlNo—Remote server URL for remote streaming
--streaming-cert-nameNo—Use the named certificate already installed by install-certs instead of generating and installing a new pair. See Start Order and Streaming Certificates
--verify-server-certsNooffVerify the streaming server's certificate. Verification is off by default; pass this flag to enable it
--use-ephemeral-certsNo—Use ephemeral certs on device and host instead of the persistent pair
--local-certs-dirNo—Local streaming certificates directory
--keep-streaming-on-disconnectionNo—Keep streaming after Wi-Fi disconnection
--header "name:value"No—Extra HTTP headers to send with streaming requests. Accepts multiple values
--cross-device-camera-syncNo—Multi-device: receivers align their CV camera triggers to the broadcaster's trigger timing
--cross-device-camera-sync-offset-us <N>No0Multi-device: microsecond offset for cross-device camera sync. Receivers only
--allNo—Multi-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-mappingNo—Multi-device: skip TDM, coordinate start/stop only (requires --all)
--external-broadcaster-id <N>No—Multi-device: start every device as a TDM receiver locked to an external broadcaster with ID N (requires --all; excludes --broadcaster, --disable-time-domain-mapping, --time-domain-mapping-mode, --time-domain-mapping-broadcaster-id)
--time-domain-mapping-mode <mode>No—TDM role for this device: broadcaster emits the timing signal, receiver locks onto a broadcaster's ID
--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>NoautoNon-zero TDM broadcaster ID shared by every device in the session; devices reject 0. Required with --time-domain-mapping-mode receiver; generated automatically for a broadcaster and for every device in a single --all call
--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 webrtc start​

Purpose: Start a WebRTC streaming session instead of HTTP. See WebRTC Streaming for the two supported topologies.

Prerequisites: Device authenticated (aria_gen2 auth check). No streaming certificates to install. A TLS (https://) signaling URL is the exception: the device accepts one only when the signaling server's certificate chains to a trust anchor built into the device — see Trusting a TLS signaling server.

FlagRequiredDefaultDescription
--signaling-urlYes—Signaling server URL, e.g. tcp://<host>:<port>. https:// selects TLS signaling, which the device can use only against a server certificate chaining to its built-in trust anchor — there is no trust-anchor option here, unlike the receiver's --ca-root
--interfaceNowifi_stawifi_sta or wifi_sap (WebRTC is Wi-Fi only)
--profileNomp_streaming_demoStreaming profile name
--json-profileNo—Streaming profile JSON file. Takes precedence over --profile when both are given
--roomNodefaultSignaling room to join
--room-passwordNo—Shared secret required to join the room. Must match the receiver's aria_streaming_viewer --room-password
--auth-tokenNo—Auth token presented to the signaling server
--stunNo—STUN server URL. Repeatable
--turnNo—TURN server as url,username,credential. Repeatable
--ntp-syncNo—Sync the device clock against an NTP server before starting the session. See below
--pcie-batch-period-msNo10PCIe batch period in ms (minimum 10)
-r, --recordNo—Also record to VRS on-device during the session. WebRTC only — see below
--recording-profileNo—Recording profile name to use (requires --record)
--recording-json-profileNo—Recording profile JSON file to use (requires --record). Takes precedence over --recording-profile
# 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

Replace example.com with your own host.

--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. Without the flag no clock sync is performed and the device starts the session on its default time source.

-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 or --recording-json-profile selects the recording profile — both require --record, and they are independent of --profile, which selects the streaming profile. One aria_gen2 streaming webrtc stop ends both the stream and the recording. See Recording While Streaming.

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().

Expected Output:

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

aria_gen2 streaming webrtc stop​

Purpose: Stop the active WebRTC streaming session.

aria_gen2 streaming webrtc stop

aria_gen2 streaming stop​

Purpose: Stop the active streaming session.

FlagRequiredDefaultDescription
--allNo—Multi-device: stop streaming on all connected devices
--remove-ephemeral-certsNo—Also remove ephemeral streaming certs from the local host
--local-certs-dir <path>No—Local streaming certificates directory

To target one device out of several, pass the global --serial before the subcommand: aria_gen2 --serial <serial> streaming stop.

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. Pinning that name on streaming start also makes the start order irrelevant — see Start Order and Streaming Certificates.


aria_gen2 streaming uninstall-certs​

Purpose: Remove streaming certificates from both the device and the local host.

aria_gen2 streaming uninstall-certs

aria_gen2 streaming profiles​

Purpose: List the streaming profiles the device supports.

aria_gen2 streaming profiles

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 the viewer

On HTTP, run aria_gen2 streaming start first and aria_streaming_viewer second, in two terminals. Pinning an already-installed certificate with --streaming-cert-name lets you run them in either order — see Start Order and Streaming Certificates for more details. WebRTC installs no streaming certificates, so the order never matters there — including when the signaling channel runs over TLS, which involves the signaling server's certificate rather than a per-device one.

aria_streaming_viewer --real-time --interpolate --rerun-memory-limit 4GB

WebRTC transport: add --transport webrtc to stream over WebRTC instead of HTTP — use --listen <port> for a same-network direct peer-to-peer connection, or --signaling-url (or the older --signaling-host / --signaling-port), plus --room, --room-password, --auth-token, --stun, --turn, --turn-username, --turn-password, for cross-network streaming through a signaling server. An https:// signaling URL puts the signaling channel behind TLS; --ca-root picks the trust anchor, see Trusting a TLS signaling server. See WebRTC Streaming and TLS on the signaling channel.

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

On WebRTC the viewer also shows terminal audio controls — press m to mute/unmute the microphone, and watch the incoming audio level meter. Add --no-audio-controls to turn them off; they are skipped automatically when the terminal is not interactive. See Terminal Audio Controls.

Custom layout: --blueprint <path.rbl> replaces the auto-generated Rerun layout with a saved Rerun blueprint. The SDK ships aria_video_focused_rerun_0.33.rbl with the example code; a blueprint can also be dragged onto the Rerun window or opened from its menu. The viewer exits with an error if the path does not exist. See Custom Layout with a Rerun Blueprint.

aria_streaming_viewer --real-time --interpolate \
--blueprint ~/Downloads/projectaria_client_sdk_samples_gen2/aria_video_focused_rerun_0.33.rbl

aria_multi_device_streaming_viewer​

Purpose: Live Rerun visualization for two or more Aria Gen 2 devices streaming simultaneously, with TDM-corrected timestamps for synchronized cross-device replay. Installed as a console script by the Client SDK — no sample export needed.

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 (this viewer never auto-generates one, unlike aria_streaming_viewer). Recommended sequence:

  1. aria_gen2 streaming install-certs --device <SERIAL> [--device <SERIAL>] (one-time, REQUIRED)
  2. aria_multi_device_streaming_viewer (terminal 1)
  3. aria_gen2 streaming start --profile profile9 --all (terminal 2)
FlagDefaultDescription
--broadcaster <serial>lowest-sorted serialExplicit broadcaster serial. Use only if you passed --broadcaster to streaming start
--expected-device-count <N>passiveStrict mode: hard-error if fewer than N devices connect within the wait window
--skip-tdm-validation—Proceed even when a receiver fails TDM validation. Logically impossible cases still hard-error
--port <port>6768HTTP server port. Override only when running alongside aria_streaming_viewer on the same host
--streaming-cert-name <name>installed certVerify the installed cert's name up front, turning a silent TLS-handshake failure into a clear startup error
--jpeg-quality <q>50JPEG decode quality
--rerun-memory-limit <limit>4GBBuffering scales as N devices × per-frame size; use e.g. 16GB for long sessions
aria_multi_device_streaming_viewer --expected-device-count 2

See Multi-Device Recording & Streaming → Live Visualization for the full workflow 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

aria_gen2 report​

Purpose: Report a problem to Meta. Files a bug report from the glasses and a report about this computer under the same debug session id, so support sees both as one issue.

Prerequisites:

  • Device connected over USB and authenticated.
  • Logged in to your Project Aria account (aria_gen2 user login --username <you>), so the report about this computer can be sent.
  • The glasses need Wi-Fi, because they upload their own report themselves.
FlagRequiredDescription
--descriptionYesWhat went wrong, in your own words
--errorNoError code or message, if you have one
--serialNoWhich glasses, when more than one is connected
--device-ipNoReach the glasses at this IPv4 address
--bleNoReach the glasses over BLE. With more than one pair paired over BLE, pick one with --serial
--verbosityNoClient SDK log level: trace, debug, info or error
--yesNoSkip the confirmation prompt. Required when reporting from a script

--serial, --device-ip, --ble and --verbosity also work before report, as for every other command. The other global options do not apply to report.

aria_gen2 report --description "streaming drops after 30s" --error DDS_TIMEOUT
aria_gen2 --serial 1M0YDB5H7B0020 report --description "recording stops early"

Expected Output:

Reporting sends the following to Meta:
- the tool and Python versions, and this machine's OS, CPU and disk, with a listing of your ~/.projectaria folder -- names, kinds and sizes only, never the contents
- a bug report captured by your glasses (their logs and state), which they upload themselves over their own Wi-Fi
- the Aria glasses attached to or paired with this computer, and the connected glasses' firmware, status (battery, temperature, and the name and address of their Wi-Fi network), recording and streaming state, and sensor data quality
- the logs Project Aria tools on this computer (Aria Studio, the MPS CLI, the login, and this report) kept from recent sessions: what they did and any errors, including server responses, your account name and id, and file paths (which can include your user name)
Continue? [y/N] y
Sent to Meta as report 424242 (debug session 7b70666c-134a-4a7a-9419-bbe77d1431d6).
If this is blocking your work, email AriaOps@meta.com (or ask on the Project Aria Discord) and include debug session 7b70666c-134a-4a7a-9419-bbe77d1431d6.

Quote the debug session id when you follow up with support: it finds both the report about this computer and the one your glasses filed.

If the report cannot be sent

When you are not logged in, or the computer is offline, the report is kept in ~/.projectaria/debug-reports and the command says so:

Not logged in to Project Aria, or the saved login could not be unlocked.
Not sent yet. Your report is saved on this computer.
Send it with: aria-debug-report drain

Run aria-debug-report drain once you are logged in or back online. Why it failed is written to the log, not the console.

What is shared

Exactly the lines listed in the prompt, and nothing is collected until you answer it. Answering anything other than y or yes cancels, and so does running without anyone to answer. Pass --yes to report from a script: the lines are still printed, without the question.

If the glasses cannot be reached, the command says so and files the report about this computer alone. When the cause is something you can fix, such as glasses that are asleep or not paired with this computer, it says what to do.

Project Aria session logs

The Project Aria tools on this computer write their logs to one folder, /tmp/logs/projectaria unless LOG_DIR in ~/.projectaria/projectaria.ini says otherwise. A report attaches the .log files there only if you agree to that line of the prompt, and only files that belong to you.

Wi-Fi required for the glasses' report

The glasses upload their own bug report over Wi-Fi after accepting the request, so keep them online until it finishes. If they have no usable Wi-Fi address, the command warns you: they cannot upload until that is fixed.