Skip to main content
The ados command runs on every node. It opens the terminal dashboard, reports status, pairs and unpairs the node, updates and uninstalls the agent, and inspects or tunes hardware, logs, networking, extensions, the profile, the radio link and recordings. Most flight-operations settings (MAVLink, video, network, remote access, ground-station role) live in the browser dashboard and in Mission Control. The CLI is for status, recovery and scripting. This page covers the ados command on the node. Building and signing extensions uses the same ados plugin group; the authoring commands and exit codes are on Plugin CLI reference.

All commands

Behaviour the table does not show:
  • ados --version prints the same value as ados version.
  • ados pair without options shows this node’s Mission Control pairing information. ados pair --role <drone|gs> binds the WFB radio in that role instead. See Pairing and WFB-ng pairing.
  • ados unpair --radio also wipes the WFB bind; --all releases both.
  • ados support-bundle writes one redacted archive locally and sends nothing anywhere. -o <path> chooses where it lands.
  • ados update --profile <drone|ground-station|workstation|compute> re-runs the upgrade against a different node profile. On a drone or ground station the update is refused while the vehicle is armed or its arm state is unknown; --force-armed overrides that refusal here and in the installer. See Updating.
  • ados install --status and ados install --resume form a hidden, advanced command. --status shows the last install result and which checkpoints are done or missing; --resume re-runs the installer to finish a partial install.

Subgroups

Every subgroup except ados logs is hidden from ados --help so the first-run surface stays short. All of them are supported, and ados <group> --help works for each one.

ados

Run ados on the node or over SSH:
In an interactive terminal it opens the terminal dashboard: Links, Autopilot, Video, Link and Services panels, with quick actions on a (install radio driver, pair, logs, radio status, update, restart radio, unpair, reboot). Press q or Ctrl-C to exit.
ados terminal dashboard showing the verdict line, Links, Autopilot, Video, Link and Services panels

The terminal dashboard on a drone node.

The Logs quick action runs ados logs tail. With the Black Box store off (the default), it prints how to follow journalctl -u ados-supervisor -f instead. Without a TTY, ados prints the same summary as ados status.

ados status

A short, support-friendly summary:
Example output:
For scripts:
The JSON output is the same setup status the browser dashboard and Mission Control read.

ados update and ados uninstall

ados update re-runs the installer in upgrade mode. It updates the daemons and the CLI and keeps the device identity and config. --check-only reports the current and latest version without installing, and --json prints current_version, latest_version and update_available. See Updating for platform behaviour and rollback. ados uninstall removes the agent. --purge removes the config as well, and --yes skips the prompt:

ados plugin

ados plugin drives the extension host through the agent’s /api/plugins routes. Each extension runs as its own unit (a systemd unit with cgroup limits on Linux, a LaunchAgent on macOS) with a capability-gated IPC channel. In more detail:
  • ados plugin install <source> takes a local .adosplug path, an HTTPS archive URL on the agent’s download allowlist, a built-in plugin id, or a first-party catalog id such as com.altnautica.world-engine. It shows the requested permissions and grants the ones you approve.
  • enable adds the extension to the supervisor’s restart set and disable removes it; both take effect at runtime. remove purges on-disk state unless --keep-data is passed.
  • ados plugin perms <id> --grant <perm> grants a declared permission and --revoke <perm> drops one, at runtime.
  • ados plugin logs <id> prints the last 100 lines of the extension’s stdout and stderr (--lines N, --follow). --service <name> reads a declared service’s log instead of the main runner’s.
  • pin, unpin and auto-update <id> <on|off> control auto-update per extension.
  • lint, test, sign and keygen are authoring aids. keygen makes a developer key, not a production publisher key.
install and perms --revoke ask for confirmation. Pass --yes to skip it. install --yes refuses high- or critical-risk permissions; grant those interactively or with ados plugin perms <id> --grant <perm>. enable, disable and remove do not prompt. The operator guide is Plugins. Signing keys are covered on Signing keys.

ados diag

Per-hop verdicts on the subsystems that fail most often. Reach for these before journalctl: each one reports what it measured and how. ados diag link reports the decode verdict and the pairing state separately. A box can be paired and decoding nothing, and the two answers point at different faults. When neither end measured packet loss it says so, rather than reporting zero loss. ados diag storage reads back wear the box records continuously. Check it first on a node that reboots on its own: undervoltage and thermal throttling both show up there. See Drone Agent diagnostics.

ados hardware

udev runs ados hardware bust-cache on USB add and remove so the next API call re-probes.

ados logs

Query the Black Box store: logs, telemetry history, discrete events and hardware samples in a local database that survives reboots. The store is off by default. With it off, these commands print how to read the journal instead (journalctl -u ados-supervisor -f, or any ados-* unit), which is the log of record. Turn it on with logging.store.enabled: true; see Black Box. ados logs push uploads to your paired cloud account. For a support case use ados support-bundle, which writes a redacted archive locally and sends nothing. ados logs status --openapi prints the OpenAPI document of the log query API.

ados network

ados network regulatory region <CC> takes an ISO 3166-1 alpha-2 code (for example US, DE) and applies after a restart. ados network regulatory unrestricted clears the pin, which is the default posture. ados network ap-passphrase reads /etc/ados/ap-passphrase and prints the value on its own line, so it works in a script or a pipe without a TTY. It never generates one: asking a unit that has never started its access point is an error. The file is mode 0600, so run it as root. The terminal dashboard shows the same value in its Link panel. See Regulatory for the region posture.

ados profile

The installer accepts four profiles (drone, ground_station, workstation, compute). ados profile set persists only the two flight profiles; a workstation or compute node is chosen at install time with --profile. See Node profiles. ados profile set ground_station --role <direct|relay|receiver> sets the ground-station role; --no-restart skips the restart of profile-sensitive units.

ados radio

ados radio set-tx-power is refused above tx_power_max_dbm. ados radio pair local opens a local over-radio bind window; run it on both nodes within the window. ados radio pair auto on re-arms auto-pair only while unpaired. TX power limits, channels and link automation are on WFB-ng. Binding is on WFB-ng pairing.

ados config

Inspect and migrate /etc/ados/config.yaml. A migration runs under the config lock and keeps keys the current schema does not know. ados config migrate --check reports what would change and writes nothing. See Configuration.

ados mcp

Token acceptance at the LAN auth edge is off by default. A minted token is honoured only after ados mcp enable. ados mcp enable and disable need sudo; --no-restart writes the config without restarting the control front. ados mcp mint requires --scope (repeatable); --ttl-days defaults to 30 and --node adds an advisory fleet-connector allowlist. ados mcp revoke --all revokes every token by rotating the salt. Scopes are read, safe_write, admin, flight, destructive and secret_read. See MCP server.

ados record

Recording is continuous and segmented, so clip cuts from segments already on disk rather than starting a new capture. See Video pipeline.

Next steps

Terminal dashboard

The live view ados opens in a terminal.

REST API

The HTTP API the CLI and Mission Control call.

Drone Agent diagnostics

Read ados diag verdicts in depth.

Configuration

The config file and its schema.
Last modified on October 11, 2026