Release notes

FEATURE

Check quota directly via CLI for external terminal tools

If you want your Starship prompt or tmux status bar to show remaining AI quota, you no longer need to write custom Python scripts importing usage's internal modules. The new usage status command prints a concise one-line summary, and --json outputs a versioned JSON payload. Both read the same local files as the menu bar item, requiring zero network calls. Ready-made snippets in the development documentation make setup immediate. It is like a utility meter on a house: instead of calling a technician to disassemble the mechanical counter inside, a digital readout on the front now lets any display read current consumption without contacting the utility company.

FEATURE

Releases include build provenance and SBOM for verified security

When downloading release artifacts, you can now mathematically verify that your binaries were built directly from official source code. Every macOS and Windows release artifact now ships with a signed SLSA build-provenance attestation, verifiable in your terminal using the gh attestation verify <file> --repo aqua5230/usage command. In addition, the macOS release includes a CycloneDX software bill of materials (SBOM) detailing every bundled dependency. It is like buying packaged organic food: the box carries a certified supply-chain tracking seal proving the product was never swapped in transit, alongside a complete ingredient list that reveals every sub-component inside.

FEATURE

Offline price table tracks its check date and warns on fallback

When your network is down or upstream price lists cannot be reached, model cost calculations will no longer silently drift on outdated rates. When usage cannot fetch live pricing, it falls back to a built-in pricing table. That built-in table now records the exact date it was last synced against upstream and writes a warning to the log whenever it is engaged, making stale pricing immediately visible before it skews your cost totals. It is like an exchange counter whose electronic rate board goes dark: the teller pulls a printed rate sheet from the drawer, but the sheet now displays an inspection date stamp and a written notation is logged on the slip, ensuring no one calculates totals under the mistaken impression that prices are current.

BUGFIX

Python package includes all modules to stop ModuleNotFoundError crashes

Developers who install usage as a Python package will no longer hit instant crashes caused by missing files. Previously, the packaging allowlist included only 39 of the 74 top-level modules, causing installed copies to crash immediately with a ModuleNotFoundError. The packaging list now includes all 74 modules, and an automated regression test ensures no files are forgotten in future releases. It is like buying a boxed furniture kit whose packing checklist only listed half the necessary parts, leaving customers stranded mid-assembly without key screws or panels; the factory checklist now includes every single component, with a scanner verifying each box before shipment.

Original changelog

Original changelogCheck quota directly via CLI for external terminal tools
**`usage status` prints your quota for other tools to read.** Until now the only way to get quota out of usage was to import its internals from Python. `usage status` gives a one-line summary, `usage status --json` gives a versioned JSON payload, and both read the same local files as the menu bar — no network call. The [development docs](docs/DEVELOPMENT.md) include ready-made Starship and tmux snippets.
Original changelogReleases include build provenance and SBOM for verified security
**Releases now ship build provenance and an SBOM.** Every macOS and Windows artifact carries a signed SLSA build-provenance attestation, verifiable with `gh attestation verify <file> --repo aqua5230/usage`, and the macOS release includes a CycloneDX software bill of materials listing every bundled dependency.
Original changelogOffline price table tracks its check date and warns on fallback
**The offline price table now says how old it is.** When the upstream price list can't be reached, usage falls back to a built-in table; that table now records the date it was last checked against upstream and logs a warning when it is used, so a silently outdated price can be spotted instead of quietly skewing your cost totals.
Original changelogPython package includes all modules to stop ModuleNotFoundError crashes
**Installing usage as a Python package no longer leaves modules behind.** The packaging allowlist covered 39 of the 74 top-level modules, so an installed copy crashed with `ModuleNotFoundError`. The list is complete now and a test keeps it that way.