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) |
| 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.
Install
Windows
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
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, DeepSeek, and OpenRouter work anywhere; Antigravity and Copilot currently use the Windows credential store and need macOS/Linux implementations. API keys are stored in the local settings file for now — moving them to the OS keyring is tracked in #3.
License
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quotabubble-0.1.2.tar.gz.
File metadata
- Download URL: quotabubble-0.1.2.tar.gz
- Upload date:
- Size: 175.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f07e855866439c72da78e3380f4ba9d09b56158e9db441b9239259b6956f0b02
|
|
| MD5 |
316b3d8ded4f2a504b6b3172051c8124
|
|
| BLAKE2b-256 |
e24b4bf4570b6caa517da37d94eded71d9a3f19d1a8ea2691090cce593aea554
|
File details
Details for the file quotabubble-0.1.2-py3-none-any.whl.
File metadata
- Download URL: quotabubble-0.1.2-py3-none-any.whl
- Upload date:
- Size: 40.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7bc8f0a6c53de4344fd39b8320ce318a3d3b01553aae17dfc382a9c16a4664db
|
|
| MD5 |
893dddc01efa3d810aa202d1e72d9b76
|
|
| BLAKE2b-256 |
8327890dcbf3d2ab8d68126f2225ffa7f168652e598158d27f1704a51b14e5df
|