Skip to content

ThinkWatch Lite 2026.9.22

Choose a tag to compare

@github-actions github-actions released this 28 Sep 02:36
· 93 commits to main since this release
39391bd

Upgrade notes:

  • The bundled core is now 0.54.0, which speaks control-plane protocol 27. A remote server has to run core 0.54.0 too: this version does not connect to an older core, and 2026.9.21 and earlier do not connect to 0.54.0.
  • Request history is emptied. The request store changed format, so the requests recorded by an earlier version are removed when the new core first starts. Settings, keys and upstreams are kept.

Time to first token: latency now counts to the first token of the answer instead of to the response headers. The headers of a streamed response usually come back as soon as the upstream receives the request; the first token comes only after the upstream has queued the request and read the prompt. Traffic, the overview and the upstreams page show this time, and the response-header time moves into the request details.

Generation speed: a new figure, in tokens per second, is measured from the first token to the end of the answer.

  • Traffic: hovering a request's latency shows its first token, total time, generation time and speed.
  • Request details: the speed is one of the five figures at the top, and the bar is split into the wait for the first token and the generation.
  • Overview: a new Generation speed section gives the median speed by model and by upstream.
  • Upstreams: the timing column shows the median first token, with the median speed below it.

Some requests have no speed because it cannot be measured honestly:

  • responses that are not streamed;
  • cancelled and failed requests;
  • generations shorter than half a second;
  • answers whose model reasoned without showing it, when the upstream does not report how many tokens the reasoning took.

Menu bar:

  • The generation speed in the menu was wrong: a single response that was not streamed could push it to tens of thousands of tokens per second. It now uses the same measurement.
  • After the computer slept through midnight, Today kept showing the previous day's tokens and cost until a request came in or the menu was opened. It now catches up as soon as the computer wakes, and when the clock or the time zone is changed. The traffic page, which shows only the time for today's requests, and the keys page's usage over the last 24 hours catch up the same way.

Routing: a model name that is not among the suggestions is kept, in a rule's model condition, in Change model to and in the dry run. Before, closing the suggestions cleared a name the list did not have, such as a relay's own model name or a model released after the upstream's list was fetched, and turned a shorter name back into the suggestion picked earlier.

Downloads

Platform File
macOS, Apple silicon ThinkWatch-Lite-2026.9.22-arm64.dmg
Windows, x64 ThinkWatch-Lite-2026.9.22-x64-setup.exe
Windows, ARM64 ThinkWatch-Lite-2026.9.22-arm64-setup.exe
Linux, x86_64 ThinkWatch-Lite-2026.9.22-x86_64.AppImage
Linux, aarch64 ThinkWatch-Lite-2026.9.22-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-lite

On 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 | sh

Both 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.22-arm64.dmg.sha256

On Linux:

sha256sum -c ThinkWatch-Lite-2026.9.22-x86_64.AppImage.sha256

On Windows, in PowerShell, the following prints True when the installer matches:

(Get-FileHash .\ThinkWatch-Lite-2026.9.22-x64-setup.exe).Hash -eq (Get-Content .\ThinkWatch-Lite-2026.9.22-x64-setup.exe.sha256).Split()[0]

The Homebrew cask and the Linux install script check the SHA-256 themselves.

What's Changed

  • Use core v0.54.0: time to first token and generation speed by @fylorn in #240
  • Keep model names typed outside the suggestions in the routing dialogs by @fylorn in #237
  • Re-aim the menu bar's "Today" when the system wakes or the clock jumps by @fylorn in #242
  • chore: 2026.9.22 by @fylorn in #241

Full Changelog: v2026.9.21...v2026.9.22