Skip to content

ThinkWatch Lite 2026.10.12

Choose a tag to compare

@github-actions github-actions released this 10 Oct 06:43
· 19 commits to main since this release
a1f4894

Upgrade notes:

  • The bundled core is now 0.68.0, with control-plane protocol 44. A remote server must be upgraded to core 0.68.0 together with the app: this version does not connect to a server on 0.67.1, and 2026.10.11 and earlier do not connect to 0.68.0.
  • The request history, stored payloads and the security log are cleared on the first start.

Overview:

  • The Overview is one screen of six cards — Tokens, Cost, Cache hits, Requests, First token and Traffic — each with its number and the change against the previous period. Cache hits shows how input was split between cache reads, new input and cache writes; the other cards have a small chart over time.
  • Hovering any chart shows the same point in time on every chart; the value appears on the card under the pointer. First token shows the median and 95th percentile; stretches without requests are bridged with a faint dashed line.
  • A strip above the cards lists what needs action — failed requests, tool calls that were cut, upstream problems, unpriced requests — and is hidden when there is nothing.
  • The table below lists requests, tokens, cost, cache hits and first token by model, upstream or key, and the generation speed by model or upstream.

Traffic:

  • How much each request sent to its upstreams and received from them is recorded, as it crossed the network, together with the proxy it went out through. A request's Timeline shows Egress, Upload and Download, and hovering the token count in the Traffic table shows the upload and download.
  • Upstreams › Proxies has a Traffic · 24 h column, with 7 and 30 days on hover.

Content:

  • A request's Content tab has two views, Parsed and Raw, both live while the request runs. Parsed shows the conversation, with the answer appearing as it streams, thinking and tool-call arguments included. Raw shows the request and response lines, headers and bodies, with each streamed event appended; Follow latest keeps the newest in view. Client side and Upstream side show what the client and the upstream each exchanged with the gateway, which differ when the format is converted or a plugin rewrites the request. Secrets are replaced as in what is stored.
  • Places a security rule matched are marked in both views, in the colours of the security log; a folded part that holds one carries a dot.

Security log:

  • Each entry opens in place to show every place the rule matched, with the text around it; the rule as it was when it matched; and exactly what was done — the placeholder a secret was replaced with, the tool call that was cut and the notice the client received, or the refusal the client received. The entries of a request's Timeline open the same way.
  • Export saves the selected period as JSON or CSV.

Codex on a ChatGPT account:

  • Finished turns are recorded as finished, with their tokens and cost. Codex closes the connection as soon as it has read the end of the answer, and these turns were recorded as cancelled; longer sessions also recorded no tokens.

Upstreams:

  • Some OpenAI-compatible relays and Gemini-format upstreams write "error": null in every streamed chunk. Such a chunk was taken for an error from the upstream: the request failed at its first chunk and moved to the next upstream, and a converted stream ended with an error and lost its text. These streams now work.

Routing:

  • On the routing map, requests in flight move along their path from the key to the upstream.

Menu bar:

  • The cost is written without the ≥ and ~ marks, as short as the token count ($41.20). The opened menu still marks an estimated cost or one that is only a lower bound.

Fixed:

  • Pressing Space on the Overview no longer scrolls the window into blank space.

Downloads

Platform File
macOS, Apple silicon ThinkWatch-Lite-2026.10.12-darwin-arm64.dmg
Windows, x64, installer ThinkWatch-Lite-2026.10.12-windows-x64-setup.exe
Windows, x64, portable ThinkWatch-Lite-2026.10.12-windows-x64-portable.zip
Windows, ARM64, installer ThinkWatch-Lite-2026.10.12-windows-arm64-setup.exe
Windows, ARM64, portable ThinkWatch-Lite-2026.10.12-windows-arm64-portable.zip
Linux, x86_64 ThinkWatch-Lite-2026.10.12-linux-x86_64.AppImage
Linux, aarch64 ThinkWatch-Lite-2026.10.12-linux-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 Windows, the portable ZIP runs without installation or administrator rights: extract it to any writable folder and start ThinkWatch Lite.exe. Its settings stay in the data folder beside it, separate from an installed copy, and it updates itself in place.

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.

The ThinkWatch Lite page describes each feature, and the documentation covers installing, connecting clients and routing.

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.10.12-darwin-arm64.dmg.sha256

On Linux:

sha256sum -c ThinkWatch-Lite-2026.10.12-linux-x86_64.AppImage.sha256

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

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

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

What's Changed

  • CI: name the macOS job, and check Rust formatting in a job of its own by @fylorn in #303
  • Overview: Space no longer scrolls the window into blank space by @fylorn in #304
  • Routing map: in-flight requests flow along their path by @fylorn in #305
  • Menu bar: write the cost like the token count, 41.20$ by @fylorn in #306
  • 2026.10.12: Overview, traffic, live content and security log detail; pin core v0.68.0 by @fylorn in #307

Full Changelog: v2026.10.11...v2026.10.12