Skip to content

Updating Offsite

Offsite ships as separate parts that update separately: the app on each device and the host on each machine that runs your sessions. They share one protocol line, and a newer host always accepts older apps.

Every version reads line.number, for example 0.2.3. The line (0.2) is the protocol the host and the apps speak; it is the same for all of them. The number counts the releases of that one part: the host, the Mac app, the iPhone app and the Android app each have their own. A fix in the iPhone app is a new iPhone number; nothing else moves. Each app shows its version, its build time and the version of the host it is connected to in its settings.

The Mac app checks for updates on its own and offers Update Offsite when one is available. It downloads the new build, verifies its signature and swaps itself. The iPhone and Android apps update through their stores.

The host lives in ~/.offsite on the host machine and is updated from any app: every app shows Update Host next to a host that is behind the latest release, and runs the update for you. The host downloads its new components over HTTPS from get.offsite.sh, verifies them and swaps them in place.

Updating the host restarts its service. Your sessions are not killed by this: they live in tmux, which outlives the service. Connected apps reconnect on their own.

An app needs a host on its own line or newer:

The host’s lineWhat happens
the app’s line or newerthe app connects. A host accepts apps from older lines until a release says otherwise, and the release notes name that line
older than the app’sthe app says so and offers Update Host right there; one tap brings the host to the current release and the app connects

Nothing runs half-way: until the host is updated the app does not use it, so there is no silent “my typing does nothing”.

Every release of every part has an entry on offsite.sh/releases, grouped by day. The Mac update prompt links to the Mac entry; the stores show the entry of their app.