⚠️ Read this first: Cowork is only readable when cloud is disabled
A Cowork session runs in one of two places, and it decides everything:
| Cowork session | Runs on | Readable? |
|---|---|---|
| Local (cloud disabled) | your PC | ✅ Yes — exact per-turn tokens |
Cloud (claude.ai/cowork/cse_…, tagged "Cloud" in the UI) |
Anthropic's servers | ❌ No |
Cloud sessions execute remotely and write no transcript to your machine, so
there is nothing on disk to measure — only the session's space memory files
sync down, with no messages and no token counts.
Turn cloud off for the Cowork sessions you want to track. A local session
writes a normal transcript with per-turn usage data, which this app reads
exactly and reliably — no workarounds involved.
Verified dead ends for cloud sessions: the VM disk (scanned twice — it holds no
token values at all), the app's local web storage, any local port, and Claude
Desktop's own accessibility tree, which exposes a context readout on the Claude
Code surface but not on Cowork.
This replaces the note in the previous README, which blamed a "VM cutover" and
claimed Cowork was unreadable outright. That explanation was wrong: local Cowork
sessions were readable the whole time.
What's new in v2.2
Surface-aware context window. Cowork runs a smaller window than other
surfaces. The Claude Code CLI carries a per-model table keyed by surface:
| Model | Cowork surface | Other surfaces |
|---|---|---|
claude-sonnet-5 |
500,000 | 967,000 |
Before v2.2 the app assumed 200k for these sessions, so the percentage ran past
100% the moment a session passed 200,000 tokens — exactly when the number starts
to matter. Now a Cowork sonnet-5 session is measured against 500,000, and the
amber/red bands land where they're useful.
Auto-compaction fires at window − 33,000 (a 20,000 output reserve plus
13,000 headroom). Verified three independent ways: the CLI bundle, live client
telemetry (1,000,000 → 967,000 and 967,000 → 934,000), and nine measured
compaction events on a 200k model, which fired at 167,287–171,567. So a Cowork
sonnet-5 session compacts near 467,000.
(The 500,000 Cowork figure comes from the CLI bundle and is not independently
confirmed. The window − 33,000 rule is.)
Practical takeaway: the model picker is the real lever — a 1M-class model
gives roughly six times the runway of a 200k one, with nothing to install.
Also documented
- The MSIX-container trap. Claude Desktop is a packaged app, so its data
lives under%LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\, not
the real%APPDATA%\Claude. A shell launched by Claude resolves into the
container automatically and looks fine, while the same program launched from
Explorer sees an empty%APPDATA%. Always test by launching from Explorer. - The stale-build symptom. A meter reporting zero Cowork sessions is usually
an old build launched by a stale shortcut, not a scanner problem. The window
title carries the version and build time — check it first.
What is deliberately NOT in this release
An unreleased v2.1 read Claude Desktop's HTTP cache to recover cloud
Cowork sessions. It is not included, for three reasons:
- Reading another application's browser cache is the behavioural signature of
an infostealer, and antivirus quarantined the build (HEUR:Trojan.Win32.Generic).
Shipping that to other people isn't reasonable. - It only produced a reading in roughly 2 attempts out of 9 — the cached
entry is evicted within minutes. - It is unnecessary: running Cowork with cloud disabled gives exact, reliable
readings from the ordinary transcript.
If cloud Cowork usage becomes available through a supported interface, a
contribution adding it would be very welcome.
Compatibility
Tested against Claude Desktop 1.24012.9.0 on Windows 11. Requires Windows 10
(1903+) or 11 — no installer, no admin rights, no SDK; it uses the .NET
Framework already in Windows.
Install
Download CoworkContextMeter-portable.zip, extract anywhere, run
CoworkContextMeter.exe. If SmartScreen warns (the exe is unsigned), choose
More info → Run anyway. If the list looks empty, run Diagnose.exe.
Credits
Originally built by Claude (Fable 5), June 2026. Compatibility work from
v1.1 onward — the storage-layout fixes, the MSIX container discovery, and the
local-vs-cloud investigation behind the note at the top — by
Claude (Opus 4.8 / Opus 5).
Bugs and fixes welcome from anyone — open an issue or send a pull request.