Skip to content

Auto-updates

Kangentic checks for updates automatically so you’re always on the latest version.

The app checks for new versions every four hours via electron-updater, which looks at published GitHub Releases. When an update is available, behavior depends on your platform:

PlatformUpdate MechanismUser Action
Windowselectron-updater (NSIS)Downloads in the background and installs on the next restart. The release-notes dialog (below) offers Restart to update to apply it right away
macOSelectron-updaterDownloads in the background and installs on the next restart. The release-notes dialog (below) offers Restart to update to apply it right away
Linuxelectron-updater (deb, rpm)Downloads in the background, then waits for you to choose Restart to update in the release-notes dialog

A Mac on macOS 12 or older is not offered v0.44.0 or later. The update feed carries the release’s minimum macOS version, and the updater skips a build the machine cannot open, so the install stays on the last version that runs there. Update macOS to move on (see Installation).

Each machine updates within its own architecture. Since v0.46.0 the macOS feed lists both the Apple Silicon and the Intel build, and the updater takes the one that matches the Mac, so an Apple Silicon Mac never lands on the Intel build under Rosetta. Linux x64 and arm64 each read their own feed.

Linux gained auto-updates in v0.36.0. The deb and rpm builds both carry an update manifest, so electron-updater picks the matching package-manager updater and installs the new package the same way you installed the first one. The one deliberate difference from Windows and macOS: Linux never installs silently when you quit. Installing a system package needs elevation (pkexec, gksudo, kdesudo, beesu, or sudo), and a password prompt appearing as the window disappears is a bad moment for it, so the download stays staged until you press Restart to update.

Dismissing that prompt cancels the update rather than failing it. Since v0.40.0 Kangentic recognizes a declined authentication dialog for what it is instead of treating it as a broken install, so declining costs you nothing beyond staying on the version you are running. The download is already staged, so Restart to update is there to press again whenever you are ready. On a desktop with no working elevation prompt at all, npx kangentic@latest is the fallback.

When a downloaded update is ready, Kangentic opens a centered dialog titled with the new version, rendering that release’s notes as markdown so you can see what you are getting before restarting. It offers Restart to update, Later, and a link to the GitHub release. The notes are baked into the update manifest at build time, so no extra network call is made. The changelog keeps every release’s notes on one page, including the versions you skipped.

The dialog auto-opens once per version, and the auto-open deliberately does not steal keyboard focus from a running terminal. Choosing Later leaves a small title-bar indicator you can click to reopen it whenever you are ready. A release that ships without notes falls back to a plain update toast.

The first time you launch a version you have not run before, Kangentic shows a What’s New dialog titled with the release (Kangentic v0.46.0) and renders that build’s notes. It is the counterpart to the pre-restart dialog above, not a repeat of it: this one has already updated you, so it offers no Restart to update action.

It opens once per version. Kangentic records the version in lastWhatsNewShownVersion as soon as the check runs, so the dialog does not reappear on later launches of the same build, and a build that ships without release notes records the version silently rather than opening an empty dialog. A fresh install does not mistake its first boot for an upgrade: when no config file existed at launch, Kangentic records the running version as already shown before the window opens, so the notes first appear after a later update.

To install a specific version:

Terminal window
npx kangentic@0.2.0

The launcher version matches the app version. This downloads the exact matching release.

To roll back to a previous version, run npx kangentic@X.Y.Z with the desired version number. On Windows, the NSIS installer replaces the current version. On macOS, the .app is replaced in ~/Applications/.

On Linux, the package managers disagree about going backwards. Fedora’s dnf install performs the downgrade without complaint, so there npx kangentic@X.Y.Z rolls back on its own. apt install, zypper install, and plain rpm -U all refuse a downgrade, so on those distros download the older artifact from GitHub Releases and run the explicit downgrade command: sudo dpkg -i <file>.deb, sudo zypper install --oldpackage <file>.rpm, or sudo rpm -Uvh --oldpackage <file>.rpm.

  • Verify the release is published (not a draft) on GitHub
  • The app checks every four hours - restart the app to trigger an immediate check
  • On macOS, check System Settings > General > Software Update for pending restarts

Kangentic cannot update from a read-only volume

Section titled “Kangentic cannot update from a read-only volume”

On macOS, an app that is still running from the mounted DMG, or from the quarantined copy macOS makes of one, cannot write over itself, so every update fails. Nothing about that is transient: the install stays on its version forever until somebody moves it.

Since v0.43.0 Kangentic says so, once per run, with a toast naming the fix: move Kangentic to your Applications folder. Drag it there, launch it from there, and updates resume. It is the one updater failure that reaches you at all; the rest are logged and counted but left silent, because there is nothing you could do about them.

Delete %LOCALAPPDATA%\kangentic-updater\ and restart the app.

The updater keeps its downloads in a cache directory of its own, separate from the app’s data directory (kangentic, without the suffix), so clearing it never touches your projects, boards, or session history. A half-downloaded installer lives in the pending/ subfolder.

Kangentic is free and open source. A star helps other people find it.

Star on GitHub