What's new in 2.0
Cost correctness
- Cache writes billed by TTL — Anthropic charges 1.25× base input for a 5-minute cache entry but 2× for a 1-hour one. TokenMeter 1.x applied the cheaper rate to everything; this understated cost by up to ~6% in cache-heavy months.
- Server tool calls are billed —
web_search_requestsis now charged per request, not per token. - Bundled price table ships current — the offline fallback pricing table is regenerated at release time so new models are never silently unpriced.
Plan value
Settings → Plan. Tell TokenMeter what you pay (Claude Pro, Max 5×/20×, ChatGPT Plus/Pro, pay-as-you-go, or custom) and the Overview reframes cost as a return-on-plan multiple, anchored to your renewal day.
Budgets & notifications
Settings → Budgets. Ceilings on the 5-hour block, day, week, or billing period, with alerts at 50/80/100% and anti-spam de-duplication per window instance.
Prompt-cache analysis
The Overview panel shows your cache hit rate and what caching is actually saving you against the same traffic billed with no cache tiers — the most actionable number in the app.
Attribution
History now breaks usage down by git branch, session, subagent, and skill — not just by model.
Export
CSV/JSON export for any period, with per-event cost and full attribution. CSV output is formula-injection-safe.
Menu-bar & launch behavior
Live status-item readout (tokens, cost, block progress, or plan multiple). The app no longer force-opens its window on every launch.
Update checks
Settings → General checks GitHub Releases for a newer version — no auto-download, no auto-install, no telemetry.
Performance
Persisted read offsets and day-bucketed rollups: cold start ~34s → ~2s, refresh 349ms → 0.098ms on a 343 MB / 25,000-event log tree.
Settings navigation
Settings is now a sidebar list instead of an unlabeled icon strip.
See the README for full details.