Skip to content

Repository files navigation

Claude Usage Widget for Windows

Track your Claude.ai usage limits in real time from a tiny widget that sits in an empty spot of your Windows 11 taskbar. Free, open source, no telemetry.

License: MIT Windows Latest release Downloads

The widget on the Windows 11 taskbar showing a single session bar

The widget on the Windows 11 taskbar showing the session and weekly bars

A thin bar that drops into a free spot of your taskbar and shows your Claude usage at a glance, without stealing a single pixel from the windows you actually work in. Show one bar for the smallest footprint, or two or three side by side.

A lightweight desktop tool that shows your Claude.ai session limit, weekly limit and Sonnet limit as live progress bars so you never get cut off mid-conversation. It is designed to sit on a free spot of the Windows 11 taskbar in its compact essential mode: low profile, never overflows the screen, never blocks your work. The position you choose is remembered across restarts, so once you place it you never have to touch it again.

Features at a glance

  • Lives on the taskbar in a compact essential mode, or as a full window when you want the detail
  • Three live usage bars: session (5h), weekly (7d) and the per-model weekly limit, each with a reset countdown
  • Pick the bars you want: show one, two or three at once, side by side or stacked; the same choice applies to both modes
  • Multiple accounts: save several Claude logins, switch instantly, each with its own name and colour
  • Bar colours your way: a fixed colour per bar (with an in-app picker), or a dynamic palette that tracks the usage level
  • Refresh countdown shown as a quiet pulsing dot or as a numeric value, your choice
  • Threshold toast notifications when session usage crosses 25 / 50 / 75 / 90 / 95 / 100 %
  • Win11 taskbar progress overlay under the app icon, colour-coded by usage
  • Always on top, never steals focus, position remembered across restarts and updates
  • One-click setup with the companion browser extension, or a manual fallback
  • Auto-update from GitHub, three languages (EN / IT / JA), no telemetry

Why this widget

If you use Claude.ai for hours every day (developers on Claude Code, writers, researchers, students), you have probably hit the dreaded "You've reached your usage limit" message at the worst possible moment. Anthropic does not surface your usage anywhere while you work: you have to dig into a settings page.

This widget keeps that information one glance away:

  • Session bar (5 hours): how much of the rolling 5-hour window you have burned
  • Weekly bar (7 days): how much of your weekly quota you have used across all models
  • Per-model bar (7 days): the weekly limit for the model Claude.ai scopes it to; the bar is labelled with that model's name
  • Reset countdown: exactly when each bar refreshes (reset 22:10 (52min))

Each bar has its own fixed colour so you can tell them apart at a glance, and you can change any of them from a built-in colour picker. Prefer a colour that tracks urgency instead? Switch on the dynamic palette and every bar is coloured by its usage level: blue when low, amber in the middle, red when high.

Built to live on the Windows 11 taskbar

This is the feature that sets the widget apart. In essential mode it collapses to a single thin bar that fits right into the empty stretch of the taskbar, next to the clock or your pinned icons. You see your usage all the time, and it never gets in the way.

  • Sized for an empty spot of the taskbar. Switch to essential mode (right-click the bar, or double-click the orange corner dot) and the widget shrinks to a low-profile strip that sits above the taskbar without spilling onto the desktop. Drag the orange dot to make it as narrow as the gap you have: a single bar goes down to 150 px, three side by side to 315 px, depending on what you keep on screen.
  • Stays out of the way of every other window. The widget is a floating tool, hidden by default from the taskbar button list and from Win+Tab, so it never steals focus and never appears in the alt-tab rotation. It uses Win32 WS_EX_NOACTIVATE, so clicking the widget never moves your foreground window.
  • Always on top, even over the taskbar. Topmost is re-asserted continuously, plus on focus and visibility events, so it never slips behind another app or the taskbar's own panel.
  • Position is always saved. Drag it once to wherever you want it (above the taskbar, on a second monitor, in a corner) and it stays there across restarts, refreshes and updates. Auto-saved on every successful refresh as a backstop against force-kills.
  • Survives monitor changes. If you unplug a monitor, dock, or rearrange your displays, the widget stays on screen instead of vanishing, and returns to its spot when the original monitor comes back.
  • Smooth expand / collapse. The optional extra bars grow upward, never down, so the widget's bottom edge stays anchored exactly where you placed it.

A compact display, set up your way

Essential mode is flexible. Show just the session bar for the smallest footprint, or put two or three bars side by side on a single row so you can watch session, weekly and Sonnet usage at the same time without ever expanding the widget.

Essential mode with the session and weekly bars side by side

  • Pick the bars you want. The Bars to show menu lets you choose which bars appear (any of session, weekly and the per-model bar; at least one is always shown). Bar widths adapt automatically and the window widens only as much as needed, growing to the left so the menu button stays put.
  • Hamburger menu on the multi-bar row: a small button opens the settings menu and keeps the reset labels clear of the bottom-right controls.
  • The corner dots say what they do. Hover the orange one and it tells you that dragging resizes the widget and a double-click switches mode; hover the white one and it says whether the click will open the full view or close it again.
  • Reset labels that shrink with the widget. A bar reads reset Sat 11:00 (2d 5h) when there is room, drops the word to Sat 11:00 (2d 5h) as you drag the widget narrower, and shows 11:00 (2d 5h) under each bar of the side-by-side strip, so you always know when each one refreshes even in the tightest layout.
  • Or decide what that line carries. Display > Under the bars switches the reset time and the time left independently. Keep both, keep the one you actually read, or turn both off and let the strip come down to what the bars themselves need. Nothing is lost either way: hovering a bar shows the reset in full, along with the account the numbers belong to.
  • Refresh countdown, your way. The time to the next data refresh is shown as a quiet pulsing dot on the session bar (default), or as a numeric value if you switch Countdown to Numeric. A Sync time toggle shows or hides the timestamp of the last update.

How narrow it goes

Every part of the strip is either optional or measured against what it actually draws, so the width you end up with is the width of what you chose to see.

On screen Minimum width
One bar, time left only 150 px
Two bars, time left only 242 px
Three bars, time left only 315 px

One bar at its minimum width

Two bars at their minimum width

Three bars at their minimum width

Those are with Sync time in bar off and Under the bars left with the time until reset alone. The defaults show more and need more: 193 px for a single bar and 418 px for three.

Up to 2.8.51 much of that width was reserved whether or not anything used it. The reset label was always drawn in full, so the widest form set the minimum; the word a failed refresh writes was reserved inside every bar even while nothing had failed; and each bar was given a fixed amount of room rather than what its own contents measure. All three are gone, which is what makes the numbers above reachable without anything being clipped.

A full view when you want the detail

Want a proper window? Double-click the orange corner dot (or pick Normal mode from the menu) and the widget becomes a standard window with a title bar, section labels and reset times. It stacks the same bars you selected, so your choice carries across both modes.

Standard mode with the usage bars stacked

Switch back to essential mode the same way. Whichever mode you choose is remembered, and the window always grows upward so it never jumps away from its taskbar spot.

Download

Download latest release - one-click installer (~15 MB)

Platform Windows 10 (1809+) and Windows 11, x64
Install size ~50 MB on disk
Auto-update Yes, in-app via GitHub Releases
Telemetry None
Source 100 % open source (widget.pyw)

Setup in under a minute

  1. Install ClaudeUsage-Setup.exe and launch the widget.
  2. Install the Claude Session Key extension (Chrome / Edge / Brave / any Chromium browser).
  3. Open Claude.ai and click the extension icon, then Copy to Clipboard. On Chrome it opens in the side panel, so it stays put while you paste.
  4. Paste the key into the widget's setup dialog. Done.

The widget connects to Claude.ai using the same browser session you are already logged into. No API key, no password, no OAuth.

Don't want to install the extension? The setup guide built into the widget shows how to grab the session key manually from your browser settings or DevTools. Two extra clicks.

Features

Live monitoring

  • Three usage bars with reset times and a live countdown to the next refresh
  • Auto refresh every 3 minutes by default, configurable from 10 seconds to 1 hour
  • Instant refresh when a reset time is reached, no waiting for the next tick
  • Threshold notifications: native Windows toast when session usage crosses 25 / 50 / 75 / 90 / 95 / 100 %, so you know you are approaching the limit even when focused on another window. Toggle on/off from the menu.
  • Optional Win11 taskbar progress overlay under the app icon: fill width tracks session usage, colour escalates from accent (0-74 %) to yellow (75-89 %) to red (90 % +). The same overlay Edge or Explorer paint during a download.

Display

  • Essential mode for the taskbar: compact, no title bar, one or several bars side by side, all controls condensed at the bottom right

  • Standard mode for desktop placement: full title bar, the selected bars stacked with labels and section dividers

  • Bars to show picker: choose which bars appear; the same choice drives both modes

  • Bar colours: a fixed colour per bar chosen from an in-app picker (four presets plus a full colour wheel), or a dynamic palette that colours every bar by its usage level

  • Dark or light theme: the light one is a full palette, not an inverted dark one. Tk builds a widget with the colour it is given, so the choice applies when the widget starts and the menu has a restart right under it

  • Countdown as a pulsing green dot (default) or as a numeric value, your choice

  • Sync time display toggle for the last-update timestamp

  • Native Windows 11 design language: DWM rounded corners, translucent background, anti-aliased pill buttons rendered with a 4x supersample

  • DPI-aware: tested at 100 %, 125 %, 150 %, 175 % and 200 % scaling; dialogs auto-size so nothing is clipped on high-DPI displays

The widget in the light theme

Accounts

  • Save multiple Claude logins and switch between them instantly; the widget refreshes to the selected account right away
  • Each row shows the name, email, plan and how that account is read, next to an avatar of your own: its initials, a short text of up to three characters, or one of thirty monochrome icons, over a background and a symbol colour you pick
  • The accounts window also says which account Claude Code is signed in as on that machine, which is not necessarily the account the widget is showing
  • One page per account: open it with Manage to see the plan, the subscription status, the organisation and the extra-usage state, rename it, pick its colour, and manage both credentials in one place
  • Adding an account that is already in the list updates it instead of creating a duplicate: the organisation decides, with the email as a fallback, so the same account is recognised however it was added

The accounts window

The account page, behind Manage, and the avatar picker behind the circle:

The account page Choosing an account avatar

Signing in with Claude Code

  • The widget can read your usage through the OAuth token Claude Code already keeps on your machine, instead of a pasted session key. Nothing to copy, and it renews itself every time the CLI runs
  • Works with Claude Code from the terminal and from the VS Code extension, which share the same login. It does not work with the Claude Desktop app, which keeps its credentials elsewhere
  • An account can hold both credentials at once. The login is preferred because it maintains itself, and if the token has expired the widget falls back to the session key without saying anything. You can also pin an account to one of the two
  • The token is tied to whoever signed in last. The widget checks that it belongs to the account it is about to display, so switching Claude Code accounts never shows one account's numbers under another account's name
  • Tokens last hours, not weeks. When one expires and there is no key to fall back on, the widget says to run claude once

Authentication and setup

  • Companion Claude Session Key extension copies your session key with one click; it opens in Chrome's side panel, and as a popup on Brave and on any browser without one
  • Built-in setup guide with manual fallback (browser settings or DevTools) if you would rather not install the extension
  • Multiple accounts: save more than one Claude login and switch between them in a click; each keeps its own credentials, name, email and plan
  • Two ways in: a session key from the browser, or the Claude Code login already on the machine. Adding an account starts by choosing between them
  • Multi-organization support: if an account belongs to more than one Claude org (personal + work), the widget uses /api/bootstrap to track the org Claude.ai itself routes to, not just the first one in the API response

Localization

  • Three languages: English, Italian (Italiano), Japanese (日本語)
  • The installer auto-selects the language matching your Windows system language

Updates and maintenance

  • Auto-update from GitHub releases with a single click: the new installer is downloaded, run silently, and the widget relaunches itself
  • Single-instance enforcement: launching the executable twice just brings the running widget to the front
  • Crash-resilient: structured logs in %LOCALAPPDATA%\Claude Usage\widget.log, separate crash.log capped at 256 KB, geometry auto-saved every refresh

Privacy

  • The widget sends data only to claude.ai/api/organizations/*/usage, the exact endpoint Claude.ai itself uses
  • No analytics, no telemetry, no third-party services, no phoning home
  • Session key stored locally in %LOCALAPPDATA%\Claude Usage\config.json
  • 100 % open source: every line of code is auditable

Controls

Title bar (standard mode)

Element Action
Claude icon + "Claude Usage" Drag to move
Current time System clock (HH:MM)
↻ Force immediate refresh
≡ Settings menu
✕ Quit (saves geometry)

Corner dots and hamburger

Control Gesture Action
White dot (left, essential mode) Click Expand the compact row into the full stacked view
Orange dot (right) Drag horizontal Resize widget width
Orange dot (right) Double-click Toggle essential / standard mode
☰ (essential mode) Click Open the settings menu
Either dot Hover A tooltip says what the gesture does
The line under a bar Hover The reset in full, and which account the numbers are for

Settings menu

Open it with ≡, the ☰ button, or by right-clicking the bar in essential mode. Quick actions sit at the top, then the categories, which open in a side panel.

The settings menu

  • Refresh and the Normal / Essential mode toggle (top level)
  • Display: countdown as a pulsing dot or a numeric value, the sync-time timestamp on/off, fixed or dynamic bar colours, the dark or light theme with a restart button beside it, the taskbar icon and its Win11 progress overlay, what the line under the bars carries (the reset time, the time left, both or neither), and which bars to show (each with a colour swatch). Hover any option for a short explanation.
  • Data & alerts: refresh interval (10 to 3600 s) and threshold notifications
  • Accounts: opens the accounts window directly (add, switch, rename, remove, update each session key), with a link to the Claude.ai usage page
  • General: language (EN / IT / JA), check for updates, open the GitHub repo, open config.json, run the connection self-test
  • Quit (top level)

Configuration

The widget manages its own config at %LOCALAPPDATA%\Claude Usage\config.json. Most users never need to edit it. Notable options:

{
  "accounts": [ /* one entry per account: name, credentials, colour and
                   avatar, managed from the Accounts window */ ],
  "active_account": "…",                 // id of the selected account
  "language": "en",                      // "en" | "it" | "ja"
  "theme": "dark",                       // "dark" | "light", applied at start-up
  "refresh_ms": 180000,                  // auto-refresh cadence
  "countdown_display": "dot",            // "dot" (pulsing) | "full" (numeric)
  "show_sync_time": true,                // show the last-update timestamp
  "show_reset_time": true,               // the reset clock on the line under the bars
  "show_reset_left": true,               // the time left on that same line
  "essential_bars": ["session"],         // bars to show, in both modes
  "bar_dynamic": false,                  // colour bars by usage level instead of per bar
  "bar_colors": {},                      // per-bar colour overrides from the picker
  "always_check_updates": false,         // skip the 24h update-check throttle
  "debug_tk_scaling": null               // simulate higher DPI for layout testing
}

Build from source

Requirements: Python 3.11+, PyInstaller, Inno Setup 6+, Pillow. Curl ships with Windows 10/11.

.\scripts\build.ps1

Output: releases/ClaudeUsage-Setup.exe. The script handles PyInstaller, copies the guide, runs Inno Setup, and zips the Chrome extension.

The widget is a single-file Python source (src/widget.pyw) using tkinter for the UI, Pillow for the anti-aliased dot and pill rendering, plus Win32 ctypes calls for taskbar integration (ITaskbarList3 for the progress overlay, DwmSetWindowAttribute for rounded corners, Shell_NotifyIcon for toast notifications).

Known behaviors

  • Windows 10: square corners (DWM rounded corners require Windows 11)
  • Session expiry: Claude.ai session keys typically last about 30 days or until you log out. The widget shows a clear notice when this happens; update the key from ≡ > Accounts
  • TLS via curl: the widget calls the curl found on PATH instead of Python's urllib, because Cloudflare in front of claude.ai fingerprints the TLS handshake (JA3) and blocks Python's OpenSSL stack. Windows ships a schannel build, which uses the Windows certificate store; the connection self-test says so when a different one comes first

Troubleshooting

The widget cannot reach claude.ai

Open ≡ > General > Connection self-test. It follows the path a request actually takes: curl and its TLS backend, name resolution, the TLS handshake with and without the certificate revocation check, any proxy in the way, curl's own configuration file, and finally the usage endpoint with your key. The first failing line is the cause. Copy report puts the result on the clipboard ready to paste into an issue; it contains no session key, organization id or email address.

What the report shows What it means
The handshake fails over a blocked revocation lookup, and succeeds without it A VPN, firewall or security suite is blocking the certificate authority's revocation endpoint (OCSP/CRL). The certificate itself is valid, and the widget's own requests retry without that lookup whenever they hit it. If the first failure was something else, the self-test says so instead.
The handshake fails both ways, with SEC_E_UNTRUSTED_ROOT or unable to get local issuer certificate Something is inspecting HTTPS traffic and re-signing it: a corporate proxy, or an antivirus with HTTPS scanning. Its root certificate has to be trusted by Windows.
A warning on curl and TLS backend A curl that does not use the Windows certificate store comes first in PATH (MSYS2, conda, or a tool that ships its own). Those builds validate against their own CA bundle, so they can reject certificates the browser accepts.
The usage API reports the key was rejected The session key expired. Renew it from ≡ > Accounts.

Where the logs are

%LOCALAPPDATA%\Claude Usage\ holds widget.log (rolling activity, including every self-test run) and crash.log if the widget ever fails to start. Neither contains your session key.

Contributing

This is a personal project shared because it might be useful to others. Bugs, feature requests and pull requests are welcome via GitHub Issues.

If the widget saves you a frustrating mid-conversation cut-off, a star on the repo is the best thank-you.

Disclaimer

This widget reads usage data from claude.ai/api/organizations/{id}/usage, the same internal endpoint Claude.ai uses to render the usage page in your browser. The endpoint may change without notice. The project is not affiliated with or endorsed by Anthropic.

License

MIT License © 2026 Niccolò Sabato. See LICENSE.


Keywords: Claude usage widget Windows, Claude usage bar, Claude usage toolbar, Claude.ai usage tracker Windows, Claude limits monitor, Claude desktop widget, Claude session limit tracker, Claude weekly limit, always-on-top Claude widget, Windows 11 taskbar Claude tool, Claude Code usage monitor, Anthropic Claude usage bar Windows.