Expand description
Canonical in-memory representation of “how much have I used my plan”.
Each vendor’s snapshot lives in its own variant — this is deliberate. Anthropic exposes three windows + extra credits; OpenAI Codex exposes two windows + credit balance + message-count ranges; OpenRouter is a single credit-balance number with daily/weekly/monthly totals; Z.AI is a list of token + MCP buckets. Forcing them into a shared shape would either drop information or paper over genuine differences.
Renderers (widget tooltip, TUI tab) consume a VendorSnapshot directly,
not a flattened shape — so each vendor controls its own presentation while
sharing the pacing math, color thresholds, and Pango primitives.
Structs§
- Anthropic
Snapshot - Anthropic-specific snapshot — three rolling windows plus optional pay-as-you-go credit balance.
- Cents
- Money expressed in cents to dodge float roundoff.
- Extra
Usage - “Extra usage” pay-as-you-go block (claudebar’s
extra_usage). - Open
AiCredits - Open
AiSnapshot - OpenAI Codex OAuth — mirrors Anthropic’s two-window + extras pattern.
- Open
Router Snapshot - OpenRouter — credit balance + lifetime/daily/weekly/monthly usage from
/api/v1/creditsand/api/v1/key. - Usage
Window - A single usage window — generic enough that every vendor with a notion of “% used vs. when does it reset” can express itself with it.
- ZaiSnapshot
- Z.AI / BigModel — list of buckets with discriminated types. We project the two we care about into named fields (5h tokens, weekly tokens, MCP).
Enums§
- Open
AiSource - Vendor
Snapshot - Discriminated union of vendor-specific snapshots. The widget and TUI match on this to pick a renderer.
Functions§
- anthropic_
severity - Worst-of severity class for the Waybar bar text color. Mirrors claudebar:606-620 — “extra usage only matters when a rate limit hits 100%”.