AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
macOS menu bar and Windows tray tracker for Claude Code, Codex, Antigravity, and Grok CLI quota, tokens, and cost. No LLM API calls, so watching your quota never costs you tokens.
Developer toolsPython · HTMLGitHub @aqua5230OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
macOS menu bar & Windows tray app pinning Claude Code, Codex, Antigravity & Grok CLI quota, burn rate, and cost to your screen. Local-first, no LLM API calls. HTML reports, 14 themes.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Quota visibility for Claude Code, Codex, Antigravity, and Grok CLI, built into the macOS menu bar and Windows system tray.
Running out of quota mid-session is expensive — especially during a long refactor or debugging run that depends on Claude Code. usage surfaces 5-hour and weekly limits before you hit the wall, and keeps them visible the whole time. There's no command to run and no page to open; the answer is just there, where you already look.Read the full README ↗usage puts your 5-hour and weekly limits in the macOS menu bar or Windows system tray, and turns a quota red as it nears its limit. Hitting the limit halfway through a long refactor is a bad way to find out you were running low. Now you see it coming. There's nothing to run and no page to open.
繁體中文 · 简体中文 · English · 日本語 · 한국어 | Discussions | Landing page
Install · Features · Themes · Comparison · Troubleshooting
Runs on macOS 12 or newer and Windows 10/11.
brew install --cask aqua5230/usage/usage
brew upgrade --cask usage keeps it current. Prefer a direct download? Get usage.app.zip from the latest release, unzip it, and drag usage.app into Applications.
Download usage-windows.zip from the latest release, unzip it, and run usage.exe. No installer is needed. See Windows Support.
uvx usage-cli
Opens the terminal interface with nothing to install; uv prepares Python 3.13 by itself. For a persistent usage command, run uv tool install usage-cli. On Linux, usage setup installs the Claude Code status line too. This path has no menu bar or tray app.
usage.app in Finder → Open once.Then click the menu bar or tray icon.
usage needs data from at least one of Claude Code, Codex, Antigravity, Grok CLI, or Muse Code, or a running Claude Desktop app.
If you've used Codex, usage picks up its history automatically. For Claude Code, click the "Set Up Status Line" button in the app popover to install the sync hook.
Restart the relevant tool afterward (on macOS, fully Cmd+Q Claude Code and re-open it; on Windows, restart your terminal or start a new session).
The same button also sets up a status line for the Antigravity CLI and for Grok CLI when they are installed on your machine, and does nothing at all when they aren't. Any status line you configured there yourself is backed up first and restored when you turn the switch off. The switch is ⚙ Settings → Claude Code → Sync quota via status line; with it off, the Claude quota stops updating.
Once set up, the bottom of the Claude Code window will show a status line like this:
Gemini ⇄ tag to cycle through the separate Claude / GPT and Gemini 4 Argon pools; the choice is remembered. Argon has a weekly limit only./clear or /compact before the context window bloats, and says why the prompt cache missed.| Feature | What it does | Default · quota use |
|---|---|---|
| Progress Concierge | A new session starts with your last request, uncommitted changes, and unfinished todos already handed to the AI. No /resume, no recap. | Off · no extra model calls |
| Token Saver | Asks Claude Code and Codex for shorter, plainer replies while keeping code and error messages byte-exact. In an A/B test on real sessions, late replies stayed ~40% shorter instead of drifting 84% longer. | Off · no extra model calls |
| Side pane | Quotas, other conversations, and background jobs next to your work. See the side pane. | Off · no extra model calls |
| Beginner Mode | Explains up to three technical terms from each answer in one plain line, then brings them back for review. | Off · a little Claude quota |
| Quota-Aware Mode | When a quota runs low, Claude tells you before a big task that would use it, and lets you do a smaller part or wait for the reset. | Off · no extra model calls |
| Auto-start 5-hour session | Right after a 5-hour quota resets, sends each tool one tiny message so the next window starts counting right away. | Off · negligible quota |
| Token-waste health check | A daily scan of your logs for repeated file reads and noisy output. Say "show me" and the AI walks you through fixes. | Comes with Progress Concierge · no extra model calls |
usage status --json hands your Claude Code, Codex, Antigravity, Grok, and Muse quota to Starship, tmux, or your own scripts. Ready-made snippets.usage setup on Ubuntu./resume a conversation that sat long enough for its cache to expire, it warns how many tokens the next message will re-send and suggests /compact first./terms opens your term history. Picking terms asks Claude Haiku through your Claude Code, and pauses while your 5-hour quota is at 90% or more.claude --resume and codex resume.See your quota, other conversations, and background jobs without leaving Claude Code. Available on macOS and Windows.
What you’ll see
How to enable
/reload-plugins./usage-dash./config.Switch between 16 visual themes directly from the UI:
As of October 2026. ccusage and TokenTracker read many more AI tools; usage focuses on five and their quotas.
| Feature | usage | ccusage | TokenTracker |
|---|---|---|---|
| Menu bar or system tray app | macOS, Windows | — | macOS, Windows, Linux |
| Token and cost reports | ✅ | ✅ | ✅ |
| Live 5-hour and weekly quota | ✅ | Estimated Claude 5-hour blocks only | ✅ |
| Muse Code quota | ✅ | — | — |
| Service status from official status pages | Claude, Codex | — | 8 providers |
| Claude Code helpers (Token Saver, Progress Concierge, Beginner and Quota-Aware modes, side pane, health check) | ✅ | — | — |
| AI Update Daily | ✅ | — | — |
| Open-source license | AGPL-3.0 | MIT | MIT |
usage to read.uvx usage-cli) runs on Linux.Windows has the full core experience: the system-tray UI with the same 16 themes as macOS, the Claude Code status-line hook, and Codex history parsing all work natively. The tray UI requires Microsoft Edge WebView2 Runtime, which is normally included with Windows 10 and 11.
The system-tray icon shows the remaining session quota percentage for Claude or Codex. Choose Tray Display Source → Claude Code / Codex in the right-click menu or panel menu; the change applies immediately and survives restarts (default: Claude). If Codex has no session window, the icon uses its weekly quota instead and the tooltip identifies that window. Missing quota data shows --. The tooltip summarizes both tools, with the selected source first. Left-click opens the quota themes in WebView2. Right-click also provides Reset Panel Position and Quit; panel switching, refresh, launch at login, and update checks are in the panel menu.
Enable Show Taskbar Quota in either menu for a transparent Codex: 92% label inside the taskbar, immediately left of the notification area. It follows taskbar position, scaling, and light/dark theme, and hides during fullscreen use or taskbar auto-hide. Click the label to open the panel. If buttons leave insufficient space, it moves just outside the taskbar. The normal app icon remains as a menu entry point; the label follows the selected source and quota window. Right-click the label to open the same menu as the tray icon.
The panel opens at the bottom-right of the working area rather than next to the tray icon, and update prompts use a system Yes/No dialog.
If the menu bar shows --, it's usually not broken — there's just no local data yet.
| Symptom | Likely cause | Fix |
|---|---|---|
Menu bar shows -- | No data yet, or Claude Code hook not refreshed | Run one Codex conversation. For Claude Code, click "Set Up Status Line" (from source: python3 main.py --setup) |
ImportError from main.py inside usage.app | The bundled main.py needs the bundle's own interpreter and cannot be run by hand | Don't run that copy. Click "Set Up Status Line" in the app, or clone the repo to run from source |
| Accidentally hit "Quit" | Process terminated | Relaunch usage.app from Spotlight or Applications. (launchctl start com.lollapalooza.usage only works if you enabled Launch at Login.) |
| Status says "N minutes stale" | Claude Code isn't running | Open Claude Code and let it run |
| Codex section is empty | No Codex history found | Run a Codex conversation to generate logs |
| Today's cost shows $0.00 | Model pricing missing | Delete ~/.usage/pricing_cache.json or check USAGE_DEBUG=1 |
| Antigravity card is missing | Antigravity CLI not installed or not signed in | Install and sign in to the Antigravity CLI; the card appears automatically once a background quota fetch succeeds |
usage reads its local plan-usage history. No cookies, login tokens, or API calls are needed. Reset times appear only when its local cache confirms them; they are never estimated.agy -p /usage, which makes no model call; if that fails, it is fetched from Google's official quota endpoint with the OAuth credential the Antigravity CLI already stored after sign-in — read from macOS Keychain, Windows Credential Manager, or a local token file depending on CLI version. usage never writes that credential back and keeps any refreshed access token in memory only; the call itself reads quota metadata.usage runs muse exec --json through Muse's own sign-in and saves the returned quota to ~/.usage/muse_quota.json. This connects to Muse and makes a real model call, using a little Muse quota. It runs in an empty folder with --no-session-log. With Muse installed and a conversation available, it fetches the first snapshot; later probes require a snapshot over 30 minutes old and a newer Muse conversation. After failure, it waits at least 30 minutes and requires new Muse usage before retrying. Hide its card under Hide sections.~/.usage/glossary.json.usage saves daily totals to ~/.usage/usage_snapshot.json and ~/.usage/year_ledger.json every 6 hours, so reports keep older days. Nothing leaves your machine. When you move to a new computer, copy the whole ~/.usage/ folder too.When Claude Code quota files are unavailable, usage reads Claude Desktop's local plan-usage-history.json, including Microsoft Store installations on Windows. When a recent response in its local Chromium block-file HTTP cache matches the organization, usage also reads the exact session and weekly reset times. Newer cached observations take precedence over throttled history samples; older cache must match the percentages. Missing, unsupported, expired, or inconsistent cache data leaves the countdown unknown.
Desktop samples normally update every 5–15 minutes. The panel shows the observation age, marks it stale after 30 minutes, and stops displaying it after two hours. The most recent organization sample is used; custom desktop profiles are not discovered. These quota caches contain no per-project token counts. Desktop sessions that also write compatible Claude Code logs under ~/.claude/projects/ are counted by the existing project/token reports.
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
Team roles:
Privacy policy: this program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it. See Privacy & Data Sources for the network calls usage makes on your behalf and how to avoid them.
Building from source, configuring custom agents, or running the terminal TUI? See the development docs.
Licensed under AGPL-3.0-only (see LICENSE). If you fork or redistribute a modified version, please credit the original author and link back to: https://github.com/aqua5230/usage