multi-turn inc.
INDEX

index

Token Burn

product

A full day with Claude Code burns roughly 50,000 to 200,000 tokens. Run Codex alongside it and the number climbs higher. Most people never see it. The one moment they do is when they hit the limit.

"You have reached the 5-hour limit."

By then it is already too late. The workflow breaks, and you wait for the reset. Typing /cost in the CLI shows the current session, but never the whole day. Multiple terminals, multiple projects, multiple agents are all burning tokens at once, and there is no way to see the total.

So I built Token Burn. A small app that lives in the macOS menu bar.

Token Burn menu bar

One cell holds two readings. The horizontal fill is what remains of the 5-hour quota; the vertical height is what remains of the 7-day quota. When there is room to spare the bars are full, and as the quota drains they shrink. Half a second is enough to check. While an agent is actually calling APIs, the bars twitch. A heartbeat.

The same grammar carries over to system load. Next to the service cells sits one more cell, where the horizontal fill is CPU, the height is GPU, and the color is memory pressure. Run agents long enough and it is not only tokens that burn — the Mac heats up too. I wanted how much is left and how hard you are pushing right now to read in a single visual language, side by side.

Click the icon and a panel opens. A circular gauge per service shows the 5-hour and 7-day quota remaining with a reset countdown ("3h 38m until reset"), and below it a token-burn chart moves between 1-hour, 24-hour, and 7-day scopes with a trackpad scroll. The numbers on the chart are API-equivalent costs that account for cache read and write pricing. Most tools show how much you have used; Token Burn shows how much is left, first. "47% remaining" changes behavior in a way that "53% used" does not.

Token Burn panel

The hardest part was not the screen but the accuracy of the numbers. At first the Codex token count was inflated nineteen-fold. Each session records a running total, and I was summing that total on every turn. Only after rewriting the accounting as per-turn deltas — and deduplicating the history copied into resumed or compacted sessions — did it line up with Claude's /stats. The data is parsed directly from Claude Code's session logs (~/.claude/projects/**/*.jsonl) and Codex's session logs (~/.codex/sessions/**/*.jsonl). An early version loaded whole session files, hundreds of megabytes each, into memory and pinned the CPU; now it streams each file and re-reads only the ones that changed. Nothing is sent to a server.

Since we are on the subject of load: when the Mac actually runs hot, Token Burn can — if you let it — take just the names of the top CPU processes and the thermal state, ask Claude through your own Anthropic API key, and tell you in one line what is cooking and how to cool it. It is opt-in, it does not run at all without a key, and the only thing that leaves the machine is process names and a thermal level. No tokens, no file contents.

System load diagnosis

The app is a read-only viewer from end to end, and paranoid about your tokens. It never asks for a new API key or password; it reuses the OAuth credentials the CLI already holds, and those tokens only ever go to each provider's own API hosts (a hard allowlist, so a tampered config file can't redirect them). Credential files are written with 0600 permissions, and auto-update is triple-checked: an Ed25519-signed feed, a notarization assessment, and a Developer ID pin, with downgrade protection.

Installing is one line.

brew install --cask multi-turn-inc/tap/token-burn

It needs macOS 26 (Tahoe) or later, with Claude Code or Codex CLI installed and authenticated. It is open source. GitHub: multi-turn-inc/ai-usage-meter

Token Burn | Multi-turn Inc.