Start with one thing · Check your AI bill

Quickstart: Billing Guard

You came here because a bill looked wrong. Billing Guard recomputes what your sessions should have cost from their own token counts and compares that with what the provider charged. Detection is plain deterministic code: it spends no model tokens, and it stores nothing.

Three steps

  1. Run it. npx repoops-billing-audit. It signs you in once with a verified email, then runs on your machine.
  2. Read the coverage line before the findings. Each provider reports its own state independently, so you can see what was checked and what could not be.
  3. Add a provider key when you want a real reconciliation. Set the Admin or Cost API key for Anthropic, OpenAI, Bedrock or Azure, in any combination. Every configured provider is pulled; one provider failing never blocks another.

It is useful before you add any key

With no provider key it runs in telemetry-only mode: it recomputes each day's expected cost from your local token counts against a versioned rate card, prints that, and says plainly what it cannot verify. It never invents a finding to fill the gap, and it never reports a difference it did not measure.

Real time only, by design
The audit stores nothing and keeps no history. Each run writes one evidence bundle to your working directory, shaped for a finance dispute. Recorded cost history is the local app and the hosted dashboard, not this command.

Exit codes, for CI

0 reconciles clean, 1 means findings, 2 is a configuration error. That makes it usable as a scheduled check rather than something you remember to run after a bill surprises you.

Then what

The reconciliation reads the same session records as attribution, so once both are running a cost spike resolves to the sessions that caused it rather than to a month.

Going deeper

Billing Guard covers the reconciliation engine and the tolerance band. The CLI covers every flag, including the drafted dispute email. The desktop bundle covers running it from Claude Desktop.

Last updated