Skip to content

v0.6.4

Choose a tag to compare

@ankit-arora-369 ankit-arora-369 released this 28 Sep 20:09
· 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 install makes 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; uninstall restores it, and so does ./uninstall.sh, so removing
    burn-o-meter never leaves Claude Code calling a deleted binary. Opt-in:
    ./install.sh suggests 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.
  • today shows 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, so burn-o-meter.app/…/burn-o-meter --help put a second meter in the menu bar and never returned. --help now
    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 burnometer did not run, though the engine records it as the
    fallback way to invoke itself when no burnometer executable is on the PATH.