tokenpandaby panda

❯what am I looking at

⎿

A menu bar app that tells me if I am ahead of the clock on my Claude plan, or behind it.

Thu 14:20
❯ try a pace
clock
The item, the popover and every bar on this page follow.
fig. 1 the item in the menu bar and its popover, live. Sample figures, Thursday 14:20. Click the item to close it.

why build another one

⎿

Every time I looked at a percentage, I did the same calculation in my head. It is Thursday afternoon. 61% used. The week resets Sunday evening. Am I ahead of the clock or behind it? When does it run out if I keep going like this?

fig. 2 the weekly window as a ruler. It starts at 0h, the notch is the clock, the bar ends at the reset. The lines under it are the sum I kept doing.

I wanted that said in words and in clock time, not as a gauge.

Pacing itself is not new. Good tools do it, and they are listed further down. What I could not find was the combination: pace in words and clock time, read only from what Claude Code documents, nothing else touched, no network, and looking like Claude Code itself.

Inspired by Headroom, by open source in general and by building in public, I figured: let's be productive and just do it. Sorry Nike, it's an homage, not a steal.

what does it do

⎿

Pace, not percent. What I have used against how much of the window has passed, in one word. Under it, the clock time the limit lands if nothing changes, and what is left per hour:

The 5h window, the same way. Open sessions, each with its context window as a bar. Tokens by model and by project, counted from the transcripts already on the Mac.

The Mac's own numbers on a second tab: CPU, GPU, memory, and battery where there is one. One menu bar item is enough.

where do the numbers come from

⎿

By the rules:

  • ●It reads the status line, the one feed Claude Code documents for exactly this, and nothing else. The plan figures are four fields in it:
rate_limits.five_hour.used_percentage
rate_limits.five_hour.resets_at
rate_limits.seven_day.used_percentage
rate_limits.seven_day.resets_at
  • ●The token figures come from the transcripts Claude Code keeps on the Mac. Counts, model and time. Never what was written.
  • ●No login. No token. No endpoint. No network at all.
  • ●The honest consequence: the plan figures are as fresh as the last running session. Between sessions it says "as of 14:19". Stale in the pace window above shows how that looks.

why does it look like Claude Code

⎿

Because it is for Claude Code. Block bars, monospace, the reset as a clock time:

The terminal's own grammar, so there is nothing new to learn. It reads like the usage screen I already know, opened from the menu bar.

how do I install it

⎿

macOS 14 and later. Download tokenpanda.zip , the latest GitHub release. Unzip it and move the app into Applications. Every release lists the SHA-256 of its zip. Check it before you open it:

shasum -a 256 tokenpanda.zip

Or with Homebrew, from my tap:

brew install --cask tokenpandadev/tap/tokenpanda

The first launch, said plainly: the app is signed ad hoc, not notarised, so macOS will not open it the first time. Open System Settings, click Privacy & Security, scroll down, click Open Anyway. The warning comes back once more; click Open. From then on it opens like any app. The same step applies after a brew install. I would rather say that here than have you find out.

Then open Claude Code once. The app asks before it adds its status line entry to ~/.claude/settings.json. If you already have a status line, it keeps it.

what leaves my Mac

⎿

Nothing. The privacy statement, in five rules:

  1. 1This app makes no network calls. Usage comes from Claude Code's own status feed on this Mac.
  2. 2From a transcript it keeps the line type, the time, the ids, the model and the five token counts. Not what you wrote, not what Claude answered, not what the tools returned.
  3. 3It never opens memory files or tool results. It never reads the Keychain, a token, a cookie or a session key, and it never asks you to sign in.
  4. 4It writes the latest snapshot of each open session, the hook script, four weekly records and your preferences. No log file, no cache of transcripts, no copy of anything you wrote.
  5. 5Check it. The source is public; search it for URLSession. Run nettop on the app for an hour: zero connections.

The full statement is in the repo .

show me the good tools that came first

⎿

Many good tools exist, and I learned from them. One sentence each, with the link.

  • Headroom Mac stats and the Claude Code limits in one small menu bar item, in Swift, MIT. It is the reason I started.
  • Pacer Pace gauges for the 5h window, the week and each model, in a native Mac app. MIT.
  • TokenPace Coloured pacing bars for the Claude Code limits in the menu bar, so the pace is a glance.
  • Usage Pacer A notarised menu bar app that draws a pace line for Claude subscription usage. MIT.
  • ccusage The command line tool that started the token counting; one npx and the figures are there.
  • CodexBar Usage for Codex, Claude Code and many other providers in one menu bar item. Swift, MIT.
  • CCSeva A native Swift popover with a live view, burn rate, projection and weekly history.
  • claude-hud A status line inside Claude Code itself: context use, the active tool, running agents, todo progress.

where is the code

Open source, free, no account, nothing leaves the Mac. Issues and ideas welcome.

If it saved you a limit once, a coffee is welcome. Two ways, neither required:

❯