Technology
Show HN: macOS menu bar gauges for your Claude Code quota
Key Points
Menu bar gauges for your Claude Code quota — one bar per account, like this: (drawn for dark menu bars — white outlines) - Each bar shows the 5-hour-window utilization for one account, colored green / orange (≥70%) / red (≥90%). - When the 5-hour window is fully used, the bar shows a countdown until reset ( 4:28 ) instead of the percentage. When the weekly limit is hit, the bar turns black with a countdown to the weekly reset ( 2D ) — that's the harder cap, whatever the 5-hour window says.
Menu bar gauges for your Claude Code quota — one bar per account, like this:
(drawn for dark menu bars — white outlines)
- Each bar shows the 5-hour-window utilization for one account, colored green / orange (≥70%) / red (≥90%).
- When the 5-hour window is fully used, the bar shows a countdown until
reset (
4:28
) instead of the percentage. - When the weekly limit is hit, the bar turns black with a countdown
to the weekly reset (
2D
) — that's the harder cap, whatever the 5-hour window says. - The dropdown lists full detail for every account inline: 5-hour and weekly windows, per-model windows where your plan reports them, extra-usage credits, and reset times.
- Refreshes every 5 minutes (SwiftBar filename convention) plus a manual "Refresh now" entry.
curl -fsSL https://raw.githubusercontent.com/grzegorz-raczek-unit8/claude-quota/main/install.sh | bash
Requires macOS and Homebrew. When macOS shows a Keychain permission dialog on the first refresh, click Always Allow.
The plugin reads your Claude Code OAuth token from the macOS Keychain
(read-only — it never refreshes or rewrites tokens, so it can't log you
out) and queries the same usage endpoint that Claude Code's /usage
screen
uses. No passwords, no scraping, no third-party services.
Note: that endpoint is internal to Claude Code and undocumented, so a future Claude Code change may require a small fix here.
git clone https://github.com/grzegorz-raczek-unit8/claude-quota.git
cd claude-quota
./install.sh
Either install path sets up SwiftBar
via Homebrew if you don't have it. If an account shows ⚠, its token went
stale from disuse — run that claude
CLI once and the widget recovers on the
next cycle.
By default the plugin auto-discovers accounts: every ~/.claude
/
~/.claude-*
config directory that has a Claude Code Keychain entry gets a
bar, labeled by the directory suffix (~/.claude-work
→ W
). A single
auto-discovered account shows no letter label — just the bar.
To pin or rename accounts (e.g. you use multiple CLAUDE_CONFIG_DIR
s), create
~/.config/claude-quota/accounts
with one path [label]
per line
(single-word labels):
~/.claude-work Work
~/.claude-priv Priv
To hide an account's menu bar gauge (its dropdown detail stays), use
Hide from menu bar under that account's row in the dropdown — or edit
~/.config/claude-quota/hidden
(one label per line).
Multiple accounts via CLAUDE_CONFIG_DIR
look like this in your shell rc:
claude() { CLAUDE_CONFIG_DIR="$HOME/.claude-work" command claude "$@"; }
claude-priv() { CLAUDE_CONFIG_DIR="$HOME/.claude-priv" command claude "$@"; }
Delete claude-quota.5m.py
from your SwiftBar plugin folder
(~/.swiftbar
by default).