Skip to content

2.0.0-beta.3 - 2026-04-13

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Apr 20:21
6bacef6

Release Notes

Fixed

  • Token & cost accuracy — Claude Code logs the same API response in multiple places (streaming chunks, sub-agent mirrors, /compact retries). CCMeter now dedupes by requestId (Anthropic's billing unit), eliminating the 2–3× over-counting previously observed on days with heavy sub-agent activity. Totals now match what Anthropic actually billed.
  • Multi-minute timeline accuracy — long streaming responses (extended thinking + large outputs) now correctly distribute their tokens across the minutes they actually spanned, instead of collapsing onto the final completion minute. active_minutes clustering, the minute-level heatmap, and rate-limit forecasts are all more accurate.
  • Code metrics on partial-overlap streams — when a non-canonical stream carries a unique Edit/Write block, its lines_suggested / lines_added / lines_deleted are preserved via zero-billing ghost markers, avoiding silent under-counting of code activity. Ghosts are deduped across multiple mirror files by timestamp so a 3-file (canonical + 2 mirrors) layout doesn't double-count line metrics.
  • Ghost events no longer leak into model breakdowns — zero-billing markers now carry an empty model field, so they fall through to ModelId::Other and are filtered out of model-share aggregations instead of producing phantom slices.
  • User-side patch dedup — patches replayed into sub-agent transcripts (Edit/Write acceptances) are now deduped by line uuid, fixing inflated lines_added and skewed efficiency scores on sub-agent–heavy days.
  • Cost fallback includes cache_creation — token-based cost estimation (used when raw costUSD is absent, i.e. Pro plans) now bills cache_creation at input_price × 1.25 instead of ignoring it. Closes a 5–15 % under-estimate on cache-heavy sessions.

Added

  • Versioned cache schema with automatic invalidation. ~/.config/ccmeter/history.json carries a schema_version; mismatches trigger a clean rebuild on next launch so accuracy fixes propagate without manual intervention.
  • One-time cache-state banner at the top of the dashboard:
    • "Cache rebuilt" (warning color) when a schema migration occurs.
    • "Cache was unreadable" (error color) when the on-disk file couldn't be read or parsed, with a hint to delete it if the issue persists.
    • Both dismiss on any keypress.
  • CCMETER_FORCE_BANNER env var for testing the banners after migration has already happened. Set to recovered for the corruption banner, anything else for the migration banner.

Documentation

  • README: new "Accurate token counting" section explaining the dedup methodology and what users should expect when upgrading from a pre-dedup version.

Install ccmeter 2.0.0-beta.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/hmenzagh/CCMeter/releases/download/v2.0.0-beta.3/ccmeter-installer.sh | sh

Install prebuilt binaries via Homebrew

brew install hmenzagh/tap/ccmeter

Download ccmeter 2.0.0-beta.3

File Platform Checksum
ccmeter-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
ccmeter-x86_64-apple-darwin.tar.xz Intel macOS checksum
ccmeter-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
ccmeter-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
ccmeter-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum