tiennm99 6f5fb3fc80 fix(bubble): provider-tinted bar fill, tighten countdown gap
Two visible regressions from the previous pass:

1. Codex bars still rendered orange even though the accent stripe was
   white — `ring_color_for_percent` only knew the percentage, not the
   provider, so it returned the Claude-style orange/amber/red ramp for
   both models. Replaced with `bar_fill_color(model, is_dark, pct)`:

   - <60%   → accent_color_for(model, is_dark)  (Claude orange / Codex
              white-on-dark / Codex charcoal-on-light)
   - 60-80% → amber  (#E0A040)
   - 80-95% → red    (#C45020)
   - ≥95%   → deep red (#A01818)

   Alarm bands stay model-agnostic so an approaching limit always looks
   the same. The "safe" band carries the provider's identity. Mirrored
   into the panel via `bar_color_for(model, percent, is_dark)`.

2. Big visible gap between bar end and countdown text — the column
   was sized for the old combined "100% · 23h" probe string (~9 chars)
   but the bubble now renders countdown-only (~3 chars). Probe template
   shrunk to "999d" so the right column is no longer ~70 px reserved
   for ~14 px of text. Countdown also flipped from DT_RIGHT to DT_LEFT
   so "3h" / "19h" sit immediately next to the bar with just the
   `label_pad` gap, instead of floating at the bubble's far edge.

Inline-percent contrast calc uses `bar_fill_color` so the
luminance-based foreground colour responds to the new white/charcoal
Codex bars (black-on-white in safe band, white-on-amber/red in alarm).

Side effect: `ring_color_for_percent` is gone — it had no internal
callers outside the two replaced sites. `bar_fill_color` is now the
only public bar-color helper.
2026-05-16 11:47:06 +07:00

Windows License: Apache 2.0

Claude Code Usage Bubble

A floating, draggable circular bubble that shows your Claude Code and/or Codex usage on Windows — inspired by the floating "memory boost ball" UX of 360 Security and IObit Advanced SystemCare.

Drop it anywhere on screen, drag it around, snap it to a monitor edge, left-click for a panel with both your 5-hour and 7-day windows, right-click for the menu.

Acknowledgements

Inspired by CodeZeno/Claude-Code-Usage-Monitor, which solves the same "how close am I to the Claude Code limit?" problem with a horizontal taskbar widget. This project takes the UX in a different direction — a floating, draggable circular bubble that the user can place anywhere on screen — and is a clean-room implementation: the HTTP client, provider polling, credential discovery, localisation, tray rendering, and self-updater are all written from scratch against the same public APIs (Anthropic, ChatGPT, GitHub Releases).

What you get

  • A circular floating bubble showing your current 5-hour Claude Code or Codex usage as a percentage and a colored progress ring
  • Drag anywhere — the bubble snaps to monitor work-area edges when released
  • Resize with Ctrl + MouseWheel on the bubble (32128 pixels)
  • Left-click the bubble for an expanded panel with both 5h and 7d bars plus reset countdowns
  • Right-click for refresh, displayed models, update frequency, language, startup, updates, exit
  • Optional system tray icons (one per enabled model)
  • Auto-hide when a fullscreen app is in the foreground (games, video, presentations) — reappears when you leave fullscreen

Who this is for

Windows 10/11 users who already have Claude Code (CLI or App) installed and signed in. Codex support is optional — install and sign in to the Codex CLI, then enable Codex from the right-click Models menu.

If you use Claude Code through WSL, that is supported too. The monitor can read your Claude Code credentials from Windows or from your WSL environment.

Requirements

  • Windows 10 or Windows 11
  • Claude Code (CLI or App) installed and authenticated
  • Optional: Codex CLI installed and authenticated, if you want Codex usage

Install

Until packaged binaries are published, build from source:

git clone https://github.com/<your-fork>/claude-code-usage-bubble
cd claude-code-usage-bubble
cargo build --release

The binary lands at target/release/claude-code-usage-bubble.exe.

Use

Run claude-code-usage-bubble.exe. The bubble appears near the bottom-right corner of your primary monitor on first launch. Drag it where you want it, release to snap to the nearest edge if you let go close to one.

  • Left-click the bubble to open the expanded panel (5h + 7d + countdowns)
  • Right-click for refresh, models, update frequency, language, "Start with Windows", updates, exit
  • Drag anywhere — it floats on top of all other windows
  • Ctrl + MouseWheel on the bubble to resize it
  • Tray icon (if enabled): left-click toggles the bubble visibility, right-click opens the same menu

Models

Use the right-click Models menu to choose what is shown:

  • Claude Code is enabled by default
  • Codex can be enabled alongside Claude Code or shown by itself

When both models are shown, each gets its own bubble that you can position independently.

Diagnostics

claude-code-usage-bubble.exe --diagnose

This writes a log file to:

%TEMP%\claude-code-usage-bubble.log

Settings are saved to:

%APPDATA%\ClaudeCodeUsageBubble\settings.json

Privacy and security

What the app reads:

  • Your local Claude Code OAuth credentials from ~/.claude/.credentials.json
  • If needed, the same credentials file inside an installed WSL distro
  • If Codex is enabled, your local Codex credentials from $CODEX_HOME/auth.json or ~/.codex/auth.json

What the app sends over the network:

  • Requests to Anthropic's Claude endpoints to read your usage
  • Requests to ChatGPT's Codex usage endpoint, if Codex is enabled
  • Requests to GitHub only if you use the app's update-check feature

What the app stores locally:

  • Bubble position(s) per model
  • Bubble size
  • Polling frequency
  • Language preference
  • Last update check time
  • Displayed model preferences

What it does not do: send credentials to any third-party server, run a backend service, collect analytics, upload your project files, or write to your Codex auth.json directly.

License

Apache License 2.0 — see LICENSE.

S
Description
Floating, draggable bubble showing Claude Code and Codex usage on Windows. Drag anywhere, snap to edges, click to expand.
Readme Apache-2.0 1.4 MiB
Languages
Rust 100%