Skip to content

Updates

ThinkTerm never installs an update on its own. It checks, it tells you, and it waits for you to decide.

Checking

Settings → Software Update holds the whole picture: the version you are running, the latest release, when the check last ran, and what changed.

  • Check for Updates runs a check immediately.
  • Automatic Updates and Check Frequency decide how often that happens by itself — Off, Daily, Weekly, or an interval measured in days, hours or minutes.
  • What's New opens the release notes for the version being offered. View All Releases opens the full list.

When a check finds something, a dot appears rather than a window taking over the screen. A notification is posted alongside it — ThinkTerm update available — and clicking it lands on the same page.

Installing

Install Update replaces the files in place. The window in front of you keeps working while that happens, and ThinkTerm goes on running the version it started with.

That last part is the one people misread, so the confirmation says it outright: Installed ThinkTerm x.y.z. Quit and reopen ThinkTerm to use it. Nothing switches underneath a running session.

Who is allowed to replace the files

ThinkTerm only updates copies it installed itself — the ones that came from the install script. Every other way of installing has an owner: a package manager, Homebrew, Nix, the AppImage's own updater, or the person who ran cargo build. For those, ThinkTerm names the owner instead of writing over its files.

How this copy was installedWhat ThinkTerm does
Install scriptInstalls the update, keeping the same variant
ThinkTerm.app placed by handReplaces it where it sits, and adds the command-line tools under ~/.local/bin
AppImagePoints you at AppImageUpdate, or the new AppImage on the releases page
HomebrewTells you to run brew upgrade thinkterm
NixTells you to update through your Nix configuration
System package managerTells you to install the new package with apt, dnf, or whatever installed this one
Windows installerDownloads the new installer and runs it
Built from sourceTells you to pull the repository and build again
Not recognisedRefuses to replace it, and says to update it the way it was installed

From the command line

thinkterm update follows exactly the same rules as the button in Settings.

bash
thinkterm update              # check, then ask before installing
thinkterm update --check      # report whether a newer release exists, install nothing
thinkterm update -y           # install without asking
thinkterm update --version X  # install release X instead of the latest, downgrades allowed

Neither path reimplements the installer. Both hand the job to install.sh, which is the one place that knows the archive layouts and the swap between the desktop and server variants. The script is fetched from the default branch rather than from the release being installed, so a fix to the installer reaches every existing install at once instead of waiting for the next release.

Updating a remote server

A client and a server refuse to talk across a protocol change. The usual way that happens is your desktop being upgraded while the server on some host keeps running last month's build.

ThinkTerm already holds an SSH session to that host, so it can repair the mismatch itself rather than sending you off to log in by hand. On a version mismatch during attach, it offers to install its own release on the host, reads the host's install manifest first so a desktop install there keeps its GUI, and runs the installer over a second SSH session with the output relayed into the connection window.

What happens to the running sessions then depends on one setting:

Keep sessions when updating a remote serverthe running server hands its panes to the new version instead of stopping; nothing running in them ends.

With it off, ThinkTerm asks before stopping the old server, because stopping it ends every session it holds. That is never done unasked.

The handover itself is the same mechanism described in Remote — a running server passing its panes to a new binary without the sessions noticing.

  • Remote — how sessions survive disconnects, restarts and upgrades
  • Command Line — the rest of the thinkterm subcommands