One local-first desktop widget for your AI coding usage, quotas, and reset times.
Track Cursor, Codex, Claude Code, GitHub Copilot CLI, Devin, and Antigravity across macOS, Windows, and Linux. No telemetry. Existing credentials are never copied into or stored by the tracker.
The real application rendered in its offline synthetic demo mode. No provider was accessed.
If this saves you from checking six different usage screens, star the repository and request the provider you want supported next.
Quick start · Supported providers · Privacy model · Project status
Source preview: the source is ready for review and compatibility testing. Public binary downloads are not available while signing, notarization, and release-supply-chain work is completed.
Every AI coding tool reports usage differently. Some expose rolling quota windows, some show spend, and others provide only local counters or cached credits. Checking several dashboards interrupts the work those tools are meant to accelerate.
AI Tools Usage Tracker brings the available signals into one compact, always-on-top view without sending your activity to another analytics service.
- Developers using several AI coding assistants.
- Teams comparing quotas across subscriptions.
- Heavy AI-tool users who regularly hit rolling limits.
- Privacy-conscious users who do not want another hosted analytics dashboard.
- One dashboard for multiple AI coding tools.
- Usage, remaining allowance, and reset times where the provider exposes them.
- Clear Live, Local, Cached, and Unavailable states.
- A single-row compact mode sized to the enabled providers.
- Explicit permission controls for each provider.
- Local normalized snapshots only—never raw provider responses.
- No telemetry, analytics, remote configuration, or automatic updates.
| Provider | What the tracker can show | Availability |
|---|---|---|
| Cursor | Spend, Total/Auto/API usage, reset time | Live, experimental |
| Codex | Rolling quota usage and reset times | Live |
| Claude Code | Account limits or session context | Live via Claude Code status line |
| GitHub Copilot CLI | AI credits consumed on this device | Local |
| Devin | Daily, weekly, and included usage | Cached |
| Antigravity | Remaining AI credits | Cached |
Every provider is off until you explicitly enable it.
Technical data sources and important limitations
| Provider | Exact source | Important limitation |
|---|---|---|
| Cursor | Cursor's pinned desktop usage RPC | Undocumented private interface; reads one existing access token only after explicit opt-in |
| Codex | Official local codex app-server process |
The app-server interface is documented as experimental |
| Claude Code | Official status-line payload | Requires Claude Code; Claude Desktop Chat and free Claude.ai accounts do not expose this source |
| GitHub Copilot CLI | Aggregate numeric values in the local CLI event database | Shows usage generated on this device, not the remaining account allowance |
| Devin | Exact normalized plan record in Devin's local cache | The cache schema is undocumented and can change |
| Antigravity | Exact model-credit record in Antigravity's local cache | The cache schema is undocumented and can change |
Local cache cards are marked Cached after 30 minutes. Private or undocumented interfaces are experimental, default-disabled, strictly parsed, and designed to fail closed.
- Python 3.11 or newer
- Tk support
git clone https://github.com/mohitkale/ai-tools-usage-tracker.git
cd ai-tools-usage-tracker
python3 scripts/usage_widget.pyThis command runs the source version for the current session. It does not build an app bundle, install the app, or add it to Login Items.
If a Homebrew Python installation does not include Tk, install the matching
python-tk@<version> formula.
Create the app bundle and copy it to a stable location:
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements-build.txt
.venv/bin/python scripts/build_app.py
ditto "dist/AI Usage Tracker.app" "/Applications/AI Usage Tracker.app"Quit the running app before replacing its installed bundle.
Register the installed bundle as a macOS Login Item:
osascript \
-e 'tell application "System Events"' \
-e 'try' \
-e 'delete login item "AI Usage Tracker"' \
-e 'end try' \
-e 'make login item at end with properties {path:"/Applications/AI Usage Tracker.app", hidden:false}' \
-e 'end tell'Launch the installed copy immediately with:
open "/Applications/AI Usage Tracker.app"macOS may ask Terminal for permission to manage Login Items. You can verify the entry under System Settings → General → Login Items.
The Login Item stores an absolute path. Future builds in dist/ do not
automatically replace the installed copy. After rebuilding, run the ditto
command again; because the Login Item continues to point to the same
/Applications/AI Usage Tracker.app path, it does not need to be registered
again.
To remove automatic startup:
osascript -e 'tell application "System Events" to delete login item "AI Usage Tracker"'git clone https://github.com/mohitkale/ai-tools-usage-tracker.git
cd ai-tools-usage-tracker
py scripts\usage_widget.pyThe official Python installers for Windows normally include Tk.
sudo apt install python3-tk
git clone https://github.com/mohitkale/ai-tools-usage-tracker.git
cd ai-tools-usage-tracker
python3 scripts/usage_widget.pyThe first launch connects to nothing. Open Settings, review the permission requested by each provider, and enable only the tools you want to track.
python3 scripts/usage_widget.py --demoDemo mode renders synthetic in-memory data. It cannot read provider files, start provider processes, use the network, or save settings.
Every provider is disabled by default. The Settings screen explains the exact files, processes, or network access requested before a provider is enabled.
Use the minus button to switch to a draggable single-row provider strip; use plus to restore the detailed view. Compact mode keeps only provider balances, expand, and close controls visible. Its width adapts to the enabled providers. The main widget uses the same frameless behavior on macOS, Windows, and Linux.
The walkthrough below moves from the detailed dashboard to compact mode and then to the explicit provider-permission screen.
- All providers are default-deny.
- Permissions are scoped per provider; enabling one grants nothing to another.
- The tracker does not enumerate an operating-system keychain, credential manager, browser storage, or home directory.
- Existing provider credentials are never copied into tracker settings.
- Raw provider payloads are ephemeral and never stored.
- Network destinations are adapter-specific allowlists; cross-host redirects are rejected.
- Logs and errors are tested against synthetic credential canaries.
Read SECURITY.md, the threat model, and the widget data-flow documentation for the complete contract.
| Area | Status |
|---|---|
| Source publication | Ready |
| macOS, Windows, and Ubuntu test suites | Passing in CI |
| Windows and Ubuntu packaged smoke tests | Passing in CI |
| macOS tester DMG | Available to build locally; ad-hoc signed |
| Public binary release | Blocked on signing, notarization, and remaining supply-chain gates |
The current version is intended for source-based compatibility testing. Do not redistribute CI bundles or local tester builds as official releases. See the release-readiness audit and roadmap.
Bug reports, documentation improvements, platform testing, and carefully scoped provider work are welcome. Start with CONTRIBUTING.md and read the security rules before proposing a provider integration.
AI Tools Usage Tracker is an independent open-source project. It is not affiliated with, endorsed by, or sponsored by Cursor, OpenAI, Anthropic, GitHub, Devin, or Google. Provider names are used only for compatibility identification. See the trademark policy.
- Collector CLI
- Provider data verification
- Demo and screenshot capture
- Packaging and release status
- Security policy
- Threat model
The project source is licensed under the Apache License 2.0. Dependency and redistribution notices are in THIRD_PARTY_NOTICES.md.