Skip to content

Releases: aqua5230/usage

v0.21.0

19 Jun 23:53

Choose a tag to compare

Added

  • Summon Spirits — an animated companion in your menu bar: a new "Summon Spirits" menu item toggles a small white silhouette that runs next to your usage percentages — a phoenix for Claude, a dragon for Codex. It animates faster the harder you burn tokens (idle -> paused, heavy -> sprinting), driven entirely by your local burn rate. Off by default; the on/off state is remembered. No network, like everything else.
  • usage export command: dump your usage totals to CSV straight from the terminal.
  • CSV download in the HTML report: the report's share dialog can now export the project/model breakdown as a CSV file (replacing the old copy-file-path action).

v0.20.3

18 Jun 09:45

Choose a tag to compare

Fixed

  • Forked Codex conversations no longer replay parent history as new usage: Codex can embed a timestamp-rewritten copy of the parent conversation in a fork JSONL. The loader now matches and excludes that replay while retaining both the original parent usage and new post-fork usage. (#40, by @ericweichun)
  • Codex reasoning tokens are no longer charged twice: reasoning_output_tokens is already included in Codex's output_tokens, so JSONL and SQLite usage readers now price the output total once. (#40, by @ericweichun)

v0.20.2

16 Jun 10:34

Choose a tag to compare

Fixed

  • Codex model attribution now falls back to turn context: newer Codex sessions can store the model in turn_context.payload.model, while state_5.sqlite may not have a matching thread row yet. The reader still prefers SQLite when available, but now uses the turn context as a fallback so cost estimates and model distribution no longer collapse to unknown or $0. (#38, by @ericweichun)
  • Animated quota rows no longer restart on every panel refresh: panels with animated quota tracks, including Prism Arcade, Black Hole, and Aquarium, now mount each quota row once and update it in place instead of rebuilding the markup on every status update. This prevents the CSS animation flicker during normal refreshes. (#39, by @ericweichun)

v0.20.1

13 Jun 17:34

Choose a tag to compare

Changed

  • Context-window nudge reframed around quality, and fires earlier (≥70%): the status line reminder added in 0.20.0 was framed around cost, but Claude Code (and Codex) auto-compact at ~80% and prompt caching makes resent context cheap — so the cost angle added little. What actually degrades as a conversation grows is quality: models lose the middle of long inputs well before the window fills. The nudge now triggers at 70% — ahead of the lossy automatic compaction — and suggests taking control yourself: /clear when switching tasks, or /compact to keep the focus you choose. The dollar figure was dropped.

v0.20.0

13 Jun 10:17

Choose a tag to compare

Added

  • Status line nudges /clear when the context window goes heavy (≥80%): once a Claude Code conversation fills its context window past the red zone, the status line appends a one-line reminder. Past that point every turn resends a heavy context — pricier turns and a faster rate-limit burn, both of which /clear resets. The nudge shows the context % and, when available, the session cost, in all five languages.

Fixed

  • Codex 5h quota no longer goes stale on long-lived sessions: the rate-limit reader scanned Codex session files newest-date-directory first and stopped at a scan limit, which could skip the file that was actually modified most recently when a long session keeps appending to an older creation-date directory. It now sorts all visible session files by modification time, so the menu bar always reflects the newest snapshot. (#37, by @ericweichun)

v0.19.1

12 Jun 03:18

Choose a tag to compare

Fixed

  • Hidden Claude Code section no longer leaks a setup error: Codex-only users who hid the Claude Code section still saw a "status file not found — run python3 main.py --setup" message in the popover footer, plus an "Install Hook" button. Both are Claude Code-specific and are now suppressed while the section is hidden; the footer falls back to a neutral synced status. (#36, reported by @ilss0902)

v0.19.0

11 Jun 09:23

Choose a tag to compare

Added

  • Hide Claude Code section: a new "Hide Sections ▸" submenu in the Switch Panel menu lets you hide Claude Code and Codex independently, so Codex-only users can hide the Claude Code card from every panel theme and the Claude Code percentage from the menu bar (Codex then leads the readout). Every panel keeps its "Switch Panel" button reachable — when the Claude Code card is hidden, the button moves to the next visible card. (#35, requested by @ilss0902)

Changed

  • Hiding a provider now also hides its percentage from the menu bar (previously "Hide Codex Section" only hid the popover card). With both providers hidden, the paw icon stays in the menu bar as the click target.
  • Shorter settings menu: the "Automatically Check for Updates" row is gone — update checks simply stay on by default (still honored if disabled in ~/.claude/usage-preferences.json), and the two hide toggles are consolidated into the "Hide Sections ▸" submenu.

v0.18.0

10 Jun 19:33

Choose a tag to compare

Added

  • Health-check diagnosis on every new conversation: usage now runs a background diagnosis engine against your Claude Code session logs and, when it finds meaningful waste, quietly appends a one-line reminder to the Progress Concierge's opening handoff. Say "show me" and the model reads the full snapshot (~/.claude/usage-diagnosis.json) and explains findings with specific suggestions. The reminder is suppressed for 7 days once a fingerprint is seen, re-surfaces when the diagnosis changes, and is skipped entirely when the snapshot is stale (>48 h).
  • Five-rule diagnosis engine (analyzer/diagnoser.py): detects repeated file reads, polluter directories (node_modules, .venv, dist, …), anomalous session sizes, noisy Bash output, and repeated Bash commands. Findings are ranked by estimated token waste so the most actionable finding is always surfaced first.
  • Daily diagnosis snapshot (usage_diagnosis_snapshot.py): the menu-bar app refreshes ~/.claude/usage-diagnosis.json once per day in the background so the cost estimate is always fresh when you open a new conversation.

Fixed

  • Anomaly-session waste estimates are no longer inflated ~9×: the engine previously counted the entire token total of an anomalous session as waste and priced every token at the full $3/MTok input rate. Long sessions are dominated by cache reads billed at a tenth of that ($0.30/MTok), and the work done in the session isn't waste at all — only the excess over the project baseline is. Cost is now split by token type and scaled to the excess share (real-data result: $254 → $27).

v0.17.1

10 Jun 11:30

Choose a tag to compare

Fixed

  • Lepidoptera panel no longer shifts when the project list is empty: the panel was vertically centered, so with no project data the cards floated to the middle of the popover and jumped when projects appeared. It now top-aligns like the other panels, with the project card absorbing the extra height, so the layout stays stable whether or not projects are listed.

v0.17.0

10 Jun 11:08

Choose a tag to compare

Added

  • New "Lepidoptera" panel theme: a cyanotype blueprint plate inspired by the Fable 5 launch — deep Prussian-blue ground with a cyan engineering grid, the Claude Code and Codex logos mounted in cyan registration frames, monospace engineering readouts, corner crop marks, and white technical line-art butterflies drawn as schematics (construction circles, centerlines, wingspan dimensions) that drift and beat their wings across the panel. Pick it from "Switch Panel". Honors prefers-reduced-motion.