QuotaBubble
Your AI usage limits, always in sight.
QuotaBubble is a small, frameless desktop widget that keeps the usage limits for your AI coding tools visible without opening a dashboard, terminal, or browser. It floats above your windows, fades to almost nothing when idle, and expands into a compact detail panel when you click it.
Features
- Frameless floating bubble — translucent, rounded, always on top, and it never steals keyboard focus.
- Fades away when idle — a configurable low opacity keeps it unobtrusive; hover to bring it back.
- Click to expand — see each usage window, the percentage used, and a live reset countdown.
- Drag anywhere — move it across monitors; the position is remembered.
- Tray icon — show/hide, settings, open logs, and quit.
- Resilient — refreshes every 5 minutes, caches the last good values, and keeps showing them (dimmed) through transient network or rate-limit errors.
- Local only — it reuses the credentials your tools already store and talks straight to the providers. No telemetry, no QuotaBubble server.
Supported providers
| Provider | Authentication |
|---|---|
| Claude Code | ~/.claude/.credentials.json |
| Codex | ~/.codex/auth.json |
| Google Antigravity | Windows Credential Manager (gemini:antigravity) |
| GitHub Copilot | Windows Credential Manager (…copilot-cli) |
| Cursor | Cursor IDE state.vscdb / auth.json (CURSOR_SESSION_TOKEN override) |
| OpenCode | ~/.local/share/opencode/auth.json / opencode.jsonc (OPENCODE_API_KEY override) or API key |
| DeepSeek | API key |
| OpenRouter | API key |
Providers are detected automatically. Enable or disable them in Settings; API keys are entered there and validated inline with a Test button. On Windows, Antigravity and Copilot read their existing sign-ins from Credential Manager. Cursor reuses the IDE session token from state.vscdb or auth.json (or CURSOR_SESSION_TOKEN).
Install
Windows
With winget:
winget install Izzet.QuotaBubble
Or with Chocolatey:
choco install quotabubble
Or download the latest QuotaBubble-windows-x64.zip from the Releases page, unzip it, and run QuotaBubble.exe.
The binary is not code-signed yet, so Windows SmartScreen may warn you. Choose More info → Run anyway.
From source (Python 3.11+)
git clone https://github.com/izzet/quotabubble.git
cd quotabubble
uv tool install --editable .
quotabubble
You can also install it as a standalone command with pipx: pipx install quotabubble.
Usage
- Idle — a faint bubble; hover to make it fully visible.
- Click — expand the detail panel; click again to collapse.
- Drag — grab and move it anywhere, including across monitors.
- Right-click / tray — Settings, Open logs, Show/Hide, Quit.
- Launch at login — enable it in Settings.
Settings
Idle opacity, fade delay, refresh interval (default 5 minutes), show percentage used vs. remaining, launch at login, and which providers are visible.
Where things live
On Windows:
| Path | Purpose |
|---|---|
%LOCALAPPDATA%\quotabubble\settings.json |
Settings |
%LOCALAPPDATA%\quotabubble\Cache\last_good.json |
Last-good snapshots |
%LOCALAPPDATA%\quotabubble\Logs\quotabubble.log |
Rotating log |
On macOS and Linux these map to the standard platform directories.
Development
uv sync
uv run ruff check src tests
uv run pytest -q
uv run pytest -q --cov=src/quotabubble --cov-report=term-missing # with coverage
CI gates on coverage (currently 78% minimum, see [tool.coverage.report] in pyproject.toml) and uploads results to Codecov.
See AGENTS.md for architecture and contribution conventions. The provider layer (src/quotabubble/providers/) is pure Python behind a Provider protocol, and platform specifics live in src/quotabubble/platform/.
Status
Windows is the primary, fully supported platform. Claude, Codex, Cursor, OpenCode, DeepSeek, and OpenRouter work anywhere; Antigravity and Copilot currently use the Windows credential store and need macOS/Linux implementations. API keys entered in Settings are stored in the OS credential store (Windows Credential Manager, macOS Keychain, Linux Secret Service) via keyring; if no OS keyring backend is available, they fall back to the local settings file.
License
Release files for quotabubble 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| quotabubble-0.2.3.tar.gz | 467.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| quotabubble-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 523.0 kB
Release files / quotabubble-0.2.3.tar.gz
| Download URL | quotabubble-0.2.3.tar.gz |
|---|---|
| Size | 467.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e53de5fb206bb49ba053273dd3eab68bbe3e74f637ee30264c7fd33018c8d92
|
|
BLAKE2b-256 checksum How to use checksums |
5ab9493bd7d754414f96e3f33566df34d761abf2fce8a296ca94dd3e22eaf969
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / quotabubble-0.2.3-py3-none-any.whl
| Download URL | quotabubble-0.2.3-py3-none-any.whl |
|---|---|
| Size | 55.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4afad8a56e9034179be62a0ef61508366293ff0b26089728be1628a7b7bb7c4f
|
|
BLAKE2b-256 checksum How to use checksums |
a852908e43ca9a342a7a7b159cf99503794a5da9fee46fffbb4f997fb2b03063
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|