Repository navigation
v0.6.4
·
21 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Upgrading: brew upgrade burn-o-meter (or reinstall with pipx/uv), then run burn-o-meter statusline install once to get Claude's rate-limit percentage live from Claude Code. Existing data is corrected automatically on the first scan: subagent usage is added, and Codex sessions on a local model are relabelled not metered.
Added
- Claude's rate-limit percentage, live from Claude Code. Claude Code receives
the service's own 5-hour and weekly figures on every response and passes them to
its status line command;burn-o-meter statusline installmakes that command
burn-o-meter, which keeps the two percentages and their reset times, discards the
rest of the payload (working directory, transcript path, session id), and prints
5h 43% · 7d 19%as the status line. An existing status line is kept and still
shown;uninstallrestores it, and so does./uninstall.sh, so removing
burn-o-meter never leaves Claude Code calling a deleted binary. Opt-in:
./install.shsuggests it rather than editing Claude Code's settings for you.
The reset time is the service's own rather than derived. Found because the menu bar read 0% on a window Claude Code had taken
to 43%: the desktop app's last sample predated the window, and it wrote no
other for over half an hour. todayshows Claude's percentage, with its age and reset time, alongside
Codex's. It had shown only Codex's, and told Claude users no quota was stored.
Fixed
- Subagent usage was never counted. Claude Code writes a subagent's turns to
<session>/subagents/agent-<id>.jsonl, not to the session's transcript — none of
their messages appear in the parent file — and the adapter read only the latter.
Found by comparing stored totals against Claude Code's own per-session figures.
The pattern names the transcript exactly, so the.meta.json, tool output and
notes beside it stay unread. - …and a subagent message kept its first, partial copy. Unlike a session's
transcript, a subagent's is written while a message streams, so the first copy
carries a fraction of the output: across real sessions, 49 output tokens in
first copies against 17,686 in the finished ones. The copy with the most output
now wins, within a scan and across scans, and a later copy with less never
lowers a stored figure. - Codex pointed at a local model was reported as unpriced. Codex records who
served a session (model_provider) and the adapter did not read it, so a model
on Ollama or LM Studio said "rate unknown" where the truth is "no rate exists".
It is now not metered, like the same model through OpenCode or Kimi Code.
Verified by running Codex 0.156 against Ollama; sessions already scanned are
re-read once on upgrade and corrected in place. - Any unrecognised option started a second copy of the app. The app treated
a flag it did not know as no flag at all, soburn-o-meter.app/…/burn-o-meter --helpput a second meter in the menu bar and never returned.--helpnow
lists the options, and an unknown one exits with an error. - A reset time was claimed for a window nobody had opened. With the five-hour
figure at 0%, the gap between two idle desktop samples was taken for first use,
and a reset five hours after it was reported for a window that did not exist.
A 0% reading now carries no reset time. python -m burnometerdid not run, though the engine records it as the
fallback way to invoke itself when noburnometerexecutable is on the PATH.