Skip to content

ThinkWatch Lite 2026.9.24

Choose a tag to compare

@github-actions github-actions released this 29 Sep 07:09
· 76 commits to main since this release
1e7dadb

Upgrade notes:

  • The bundled core is now 0.55.2, which speaks control-plane protocol 28. A remote server has to run core 0.55.2 too: this version does not connect to 0.54.0, and 2026.9.23 and earlier do not connect to 0.55.x.
  • Request history is kept.
  • A request that a routing rule sent as another model is now priced by the model it was sent as, so its cost can differ from what an earlier version showed (see Costs).

Amazon Bedrock upstreams: Amazon Bedrock is in the list of services.

  • Choose the region and one credential: a Bedrock API key; access keys, with a session token for temporary credentials; or an AWS profile, read from the AWS credential files on the machine the core runs on. Each can be written as ${VARIABLE}. With a remote core, the variables and the profile are read on the server. A profile that signs in or runs a command to get its keys cannot be used, and says so.
  • Check connection verifies the credential and lists the models the region can route to: foundation models, inference profiles such as us.anthropic.claude-… and global.…, and the account's own application inference profiles.
  • Requests in every client format are converted to Bedrock's Converse API and signed one by one. Streaming, usage, output redaction and tool-call inspection work as with other upstreams, and prompt-cache breakpoints and Claude's thinking are carried over.
  • Bedrock takes its own model IDs. A client that asks for Anthropic's names, such as claude-sonnet-4-5, needs a routing rule that changes the model to a Bedrock ID.
  • For a VPC endpoint or a proxy, enter its address and the region.
  • When AWS refuses a credential, its message names the account and the IAM identity; clients get the gateway's own sentence instead.
  • Replaying a request to a Bedrock upstream is refused: a replay sends the recorded request unchanged, and Bedrock takes only the Converse format, which no client sends.

Claude Code and Claude Desktop that used Bedrock directly:

  • Claude Code with CLAUDE_CODE_USE_BEDROCK turned on ignored the gateway address and kept calling Bedrock directly, although it showed as connected. The same held for its other provider switches: Mantle, Google Cloud's Agent Platform, Microsoft Foundry and Claude Platform on AWS. Connecting Claude Code now turns such a switch off in ~/.claude/settings.json, and restoring turns it back on exactly as it was. A switch turned on by an organization's managed settings cannot be overridden, so connecting is refused with the reason. The configuration check reports a switch that was turned on again later.
  • The confirmation lists the model variables that name no Bedrock model: those requests reach the gateway under Anthropic's model names and need a routing rule.
  • The confirmation says whether the gateway has an Amazon Bedrock upstream, and New Bedrock upstream… opens the new upstream filled in from the client's own settings: the region, a custom endpoint, and the credential as a ${VARIABLE} or a profile name. A key kept in plain text in the client's configuration is not copied; the notes say where it is. Claude Desktop's Bedrock configuration in use before connecting is recognized the same way.
  • Credentials in the env block of settings.json, such as the Bedrock API key and access keys that /setup-bedrock writes there, are masked in the change shown before connecting. A value written as an empty string is shown as "".

Web search through other formats: Claude Code runs each web search as a request that only an upstream in Anthropic's format can carry out. Sent to a Bedrock, OpenAI or Gemini upstream, the search tool was dropped and the model's own answer came back as the search results. Such a request now goes to the next upstream of the route, and otherwise fails with a message naming the tool and the upstream.

Costs:

  • A request that a routing rule sent as another model is priced by the model it was sent as. The traffic view still shows the model the client asked for.
  • Long-context prices apply from the threshold the price data gives (200K for Claude Sonnet 4 and 4.5, 272K for GPT-5.4 and later), and cache reads and writes count toward it.
  • A price the price data does not give, such as a one-hour cache write, is filled in and the cost is marked estimated. A Bedrock model the price data does not list borrows the price of the same model and is marked estimated.

Errors partway through a stream: an upstream that starts answering and then reports an error inside the stream, such as Anthropic's overloaded_error or Responses' response.failed, now leaves the request recorded as failed instead of finished, with the usage reported before the error.

Downloads

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

On Linux:

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

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

(Get-FileHash .\ThinkWatch-Lite-2026.9.24-x64-setup.exe).Hash -eq (Get-Content .\ThinkWatch-Lite-2026.9.24-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.55.0: Bedrock upstreams by @fylorn in #246
  • feat(adopt): turn off Claude Code's cloud-provider switches while it points at the gateway by @fylorn in #247
  • feat(clients): offer a Bedrock upstream built from the settings a client used by @fylorn in #248
  • Use core v0.55.1: a request that requires a tool it cannot carry over is not sent without it by @fylorn in #249
  • Use core v0.55.2: a Bedrock API key that is not valid fails the connection check by @fylorn in #250
  • chore: 2026.9.24 by @fylorn in #251

Full Changelog: v2026.9.23...v2026.9.24