Updating the Agent
ados update moves the agent to the latest version on the main branch. It re-runs the canonical installer in upgrade mode, which is the one path that actually updates the agent (the Rust daemons and the CLI). Your device identity and config are preserved.
What ados update does
The command fetches the latest scripts/install.sh from the main branch and runs it with --upgrade. What happens next depends on the platform:
- Linux. The prebuilt installer is refetched and the full install chain re-runs, elevating with
sudo. It updates the Rust service binaries, the systemd units, and the CLI, then restarts the agent.
- macOS. The source checkout is updated with
git pull and rebuilt. macOS is a development target and does not run systemd or radio hardware.
Both paths keep /etc/ados/config.yaml, the device ID, and pairing state intact.
By default the command asks for confirmation before it installs.
Flags
Check without installing
Example output:
Update without a prompt
Machine-readable check
Checking the installed version
ados version prints the installed version. It works even when the agent service is down.
Updating with the install one-liner
ados update is a wrapper around the installer’s upgrade mode, so you can run the same upgrade by hand:
On macOS, run the one-liner without sudo.
Rolling back
There is no rollback API. To return to an earlier version, reinstall it by running the installer against that version’s commit or release. Fetch install.sh from the tag or commit you want (replace main in the URL) and run it the same way as a fresh install:
On macOS, run it without sudo. A reinstall preserves /etc/ados/config.yaml and pairing state, the same as an upgrade.
Test an update on a bench drone before you roll it out to a field fleet. Run ados update --check-only to see what version main is on, update the bench node, confirm it flies, then update the rest.