Always-on-top Windows widget visualizing local Claude Code usage (5h block, weekly, per-model)
Find a file
2026-05-09 16:00:49 +01:00
docs/screenshots README: replace ASCII mock with 4-theme screenshot grid (anthropic / instrument / editorial / retro) 2026-05-09 16:00:49 +01:00
scripts Polish for shipping: robust auto-detect, empty state, real icons, end-user README 2026-05-09 14:25:24 +01:00
src Settings overlay: cover the widget cleanly (was rendering below content because of a stacking-context fix from theme atmosphere layer) 2026-05-09 15:51:38 +01:00
src-tauri Bump version to 0.1.1 (themes release) 2026-05-09 15:53:03 +01:00
.gitignore Repo cleanup: untrack CLAUDE.md / memory.md (agent-internal); fix README link 2026-05-09 15:00:16 +01:00
index.html Add Svelte 5 frontend (App, TitleBar, BlockRing, ModelStack, WeeklyBar, Settings) 2026-05-09 00:07:02 +01:00
package.json Bump version to 0.1.1 (themes release) 2026-05-09 15:53:03 +01:00
README.md README: replace ASCII mock with 4-theme screenshot grid (anthropic / instrument / editorial / retro) 2026-05-09 16:00:49 +01:00
svelte.config.js Add Svelte 5 frontend (App, TitleBar, BlockRing, ModelStack, WeeklyBar, Settings) 2026-05-09 00:07:02 +01:00
tsconfig.json Add Svelte 5 frontend (App, TitleBar, BlockRing, ModelStack, WeeklyBar, Settings) 2026-05-09 00:07:02 +01:00
tsconfig.node.json Add Svelte 5 frontend (App, TitleBar, BlockRing, ModelStack, WeeklyBar, Settings) 2026-05-09 00:07:02 +01:00
vite.config.ts Add Svelte 5 frontend (App, TitleBar, BlockRing, ModelStack, WeeklyBar, Settings) 2026-05-09 00:07:02 +01:00

Claude Usage Widget

A small always-on-top Windows desktop widget that shows your live Claude subscription usage — the same percentages Claude Code's /usage command displays, refreshed every 5 minutes.

Themes

Pick one in Settings; it applies live. Each is its own typographic + chromatic system.

Anthropic — warm cream-on-charcoal, Newsreader serif + DM Sans, sunset-orange ring, soft radial halo. The default. Instrument — modular-synth panel, JetBrains Mono, chartreuse on slate, tick marks at 12/3/6/9, faint scanlines, bracket corners on the title bar.
Anthropic theme Instrument theme
Editorial — magazine artifact, Fraunces variable serif (optical-size axis), saffron on warm charcoal, italic labels, hairline rules. Retro CRT — 1980s home computer, IBM Plex Mono, phosphor green on near-black, scanlines + vignette, bracketed [ Claude Usage ] header, blink cursor in the corner.
Editorial theme Retro CRT theme

Install

  1. Download the latest Claude.Usage.Widget_<version>_x64-setup.exe from the Forgejo releases page.
  2. Run the installer. Windows SmartScreen will warn "unrecognized publisher" (it's not code-signed). Click More info → Run anyway.
  3. The widget pops up in the upper-left corner. Drag it where you want.

Requirements

  • Windows 10/11 with WebView2 Runtime (preinstalled on Windows 11; downloadable on Windows 10).
  • Claude Code installed and signed in.
    • Native Windows install (claude.exe on PATH) → works automatically.
    • Or installed inside WSL → also works automatically; the widget probes each distro to find one with claude.

Using it

  • The big ring shows your current 5-hour session percentage with a reset countdown.
  • The bars below show the rolling weekly limits (all models + Sonnet only).
  • Per-model breakdown (Opus / Sonnet / Haiku) shows how much of your local current 5-hour block came from each — derived from your local Claude Code transcripts. (Anthropic's /usage doesn't break this out, so we compute it ourselves.)
  • button (title bar) — force-refresh /usage right now.
  • — Settings (custom claude command, refresh interval, autostart, distro override).
  • × — quit.
  • The window is resizable — drag any edge.
  • System tray — there's a tray icon next to the Windows clock while the widget is running. Left-click to bring the window back if you lose it off-screen; right-click for Show / Hide / Refresh / Quit.

Troubleshooting

"Claude Code not found" — the widget couldn't find a claude to run. Make sure claude --version works in either PowerShell or a WSL shell. If it works in a non-default WSL distro, open Settings and set claude command to e.g. wsl.exe -d Debian bash -lc claude.

Ring shows "no /usage data" — the spawn worked but Anthropic's output didn't match the parser. Open Settings → Test /usage now → expand the raw output disclosure and file an issue with what's there.

SmartScreen blocks the installer — expected; the binary isn't code-signed. "More info → Run anyway".

Autostart toggle doesn't survive reboot — that's the dev build limitation. The released installer registers a stable path so autostart works correctly there.

Privacy

Everything stays on your machine. The widget:

  • Reads your local Claude Code config (~/.claude/projects/) for the per-model breakdown.
  • Spawns claude /usage to read live percentages — that command Anthropic serves from their backend over your existing Claude Code session, exactly the same as when you type /usage interactively. The widget never sees your OAuth token.
  • Stores its own settings at %APPDATA%\claude-widget\config.json.
  • Makes no other network calls.

Building from source

You need a Windows host with:

winget install Rustlang.Rustup OpenJS.NodeJS.LTS Microsoft.VisualStudio.2022.BuildTools
rustup default stable-x86_64-pc-windows-msvc
corepack enable
corepack prepare pnpm@latest --activate

Then in this repo:

pnpm install
pnpm tauri dev    # iterate
pnpm tauri build  # produces NSIS installer in src-tauri\target\release\bundle\nsis\

Filing issues / pull requests on the Forgejo repo is welcome.