Agent updates
The agent updates on demand: nothing changes on a device until you (or your automation) ask for it. All entry points drive the same verified mechanism, so pick whichever fits the moment.
On the device itself
The installed binary manages its own updates:
thinr-agent update # check only (latest channel)
thinr-agent update --apply # apply if available
thinr-agent update --channel main --apply # from a specific channelUseful over an SSH session, in a local cron job, or baked into your own provisioning scripts.
From your workstation
thinr device update check <deviceId>
thinr device update apply <deviceId> [--channel latest]--channel chooses between latest, main, and develop. See release channels.
Across the fleet
For many devices, don't loop over them yourself: thinr fleet upgrade resolves what's outdated and rolls out with a canary first, then parallel batches, aborting if too many fail:
thinr fleet upgrade --dry-run # see what would be upgraded
thinr fleet upgrade -p edge-gateways -y # one product, no promptFull options in the thinr fleet reference.
From anything that can call a resource
Updates are also exposed as a regular device resource named update, so the web console, the REST API, and AI assistants (the thinr_update MCP tool) can drive them too:
thinr device resource <deviceId> update -i action=checkHow it works
- When an update is requested, the agent fetches the channel manifest (
https://get.thinremote.io/<channel>.json) and compares versions. - If newer, it downloads the binary for its architecture.
- The binary is verified against the SHA256 checksum in the manifest; a mismatch aborts and leaves the running binary untouched.
- The agent swaps the binary and exits; the init system restarts it on the new version, with the existing configuration. Expect a few seconds offline.
The deeper details (timeouts, CDN layout, troubleshooting) live in the update mechanism reference.
Pinning and rollback
Channel directories track their head, but every release is also archived immutably per version. Installing a pinned version is both the pinning and the rollback procedure; see release channels.