ThinkWatch Lite 2026.9.16
Upgrade note: the proxy configuration now rejects misspelled field names, such as typ written for type. Such fields used to be ignored; after the upgrade, a configuration that contains one does not pass validation and the gateway does not start. A proxy configuration that was edited by hand should be checked before upgrading.
Remote connections: the app can now connect to a core running on another machine, such as a Linux server. A remote connection is added in Settings → Connection with its address, port and key, and once the connection test succeeds the app can switch to it. Installing and configuring the server side is described in docs/server.md in the ThinkWatch-Core repository. The app connects to one core at a time: while it is connected to a remote core, the local core is stopped and its data is kept. When switching, the clients already connected on this computer can be pointed at the server in the same step.
When a connection fails, the interface remains usable. At launch the app waits up to about 8 seconds, then shows the Not connected page, where the connection can be retried, edited or switched to this computer. If the connection drops while the app is running, pages become read-only and a notice is shown once; it is removed automatically when the connection returns. The menu in the menu bar, or in the tray on Windows and Linux, has a new Connection submenu. When Option is held at launch (Alt on Windows), or after two launches in a row did not finish, the connection choice is shown first.
In remote mode: the Clients and MCP pages check and change the client configuration on this computer; Settings is divided into two groups, the app on this computer and the configuration on the server; ChatGPT accounts sign in with a device code only; the diagnostic bundle is not offered.
The control channel between the app and core now begins with an encrypted handshake, and local and remote connections use the same key, which is written in the configuration file. Connecting clients, MCP management and the client configuration scan are now carried out by the app itself.
Downloads
| Platform | File |
|---|---|
| macOS, Apple silicon | ThinkWatch-Lite-2026.9.16-arm64.dmg |
| Windows, x64 | ThinkWatch-Lite-2026.9.16-x64-setup.exe |
| Windows, ARM64 | ThinkWatch-Lite-2026.9.16-arm64-setup.exe |
| Linux, x86_64 | ThinkWatch-Lite-2026.9.16-x86_64.AppImage |
| Linux, aarch64 | ThinkWatch-Lite-2026.9.16-aarch64.AppImage |
Each file is published with a .sha256 file beside it. latest.json is the manifest for in-app updates, and install.sh is the Linux install script.
On macOS, Homebrew installs the same disk image:
brew install --cask thinkwatchproject/tap/thinkwatch-liteOn Linux, the install script downloads the AppImage for the machine's architecture, checks its SHA-256 and installs it as ~/Applications/ThinkWatch-Lite.AppImage:
curl -fsSL https://github.com/ThinkWatchProject/ThinkWatch-Lite/releases/latest/download/install.sh | shBoth commands install the latest release. First-launch steps for each platform, such as removing the quarantine attribute from a copy downloaded on macOS, are described in the README.
Verifying a download
A .sha256 file holds the SHA-256 of the file followed by its name. With both files in the current directory, on macOS:
shasum -a 256 -c ThinkWatch-Lite-2026.9.16-arm64.dmg.sha256On Linux:
sha256sum -c ThinkWatch-Lite-2026.9.16-x86_64.AppImage.sha256On Windows, in PowerShell, the following prints True when the installer matches:
(Get-FileHash .\ThinkWatch-Lite-2026.9.16-x64-setup.exe).Hash -eq (Get-Content .\ThinkWatch-Lite-2026.9.16-x64-setup.exe.sha256).Split()[0]The Homebrew cask and the Linux install script check the SHA-256 themselves.
What's Changed
- Adopt clients, edit MCP and scan client configs in the app instead of core by @fylorn in #180
- Remote mode: wire client adoption into connections, trim what only works locally by @fylorn in #182
- Control handshake: connect to local and remote cores through tw-link (P2) by @fylorn in #183
- chore: 2026.9.16 by @fylorn in #184
Full Changelog: v2026.9.15...v2026.9.16