Every agent session is a blank check. Here’s the receipt.

The meter runs while the agent drives · the receipt prints when the ride ends · and it sticks with the PR.

Local and deterministic. Observable Standard-API floors, never invoices. No account; transcripts never leave your machine.

- - - - - - - - - - - - - - - -
          AIRECEIPTS
 Claude Code · Jul 02 2026 · 33m
- - - - - - - - - - - - - - - -
(thinking/reply)........≥ $5.36
Bash....................≥ $3.93
Read....................≥ $1.88
Write...................≥ $0.66
Edit....................≥ $0.38
TaskList................≥ $0.05
SendMessage.............≥ $0.04
⚠ flagged pattern ≈ $2.68
  101 trivial turns
--------------------------------
TOTAL..................≥ $12.30
Standard-API floor; not an invoice
(arithmetic, not a prediction)

// 01 · while the agent works

View the meter running.

One settings line pins aireceipts statusline under Claude Code’s input box — which model is active, observable floor so far, floor rate, context, and your 5-hour cap. tmux keeps it live for Codex and OpenCode too; starship and PowerShell refresh per prompt.

Opus — the model active right now
≥$23.78 · ≥$14/hr — observable floor so far and per hour
⚠ Bash loop ×5 — heuristic pattern, flagged the moment it happens
Historical agent-session replay with the aireceipts meter highlighted; it predates the current lower-bound glyph. Host-supplied context and quota fields are simulated.

A replayed session — the floor, tokens, and pattern flag computed by the real CLI at each step; host payload fields simulated. Set it up →

// 02 · when the ride ends

The receipt prints.

One command. No install, no account, no upload. aireceipts reads the transcripts your agent already writes to disk and computes a cited floor tool by tool — heuristic patterns flagged, and the cheaper-model line is arithmetic on the same tokens, never a prediction. New machine? --demo prints a bundled example.

$ npx aireceipts-cli

            AIRECEIPTS
Claude Code · 10m 30s · claude-opus-4-8 87%
Bash...................≥ $0.0517  (3 calls)
Edit...................≥ $0.0455  (2 calls)
(thinking/reply).......≥ $0.0310  (2 turns)
Write..................≥ $0.0290  (2 calls)
Read...................≥ $0.0192  (1 call)
-------------------------------------------
TOTAL.............................≥ $0.1767
Standard-API floor; not an invoice
same tokens on claude-haiku-4-5..≥ $0.0392
  (78% lower observable floor)
  (arithmetic, not a prediction)

Abridged from a golden-tested receipt — the terminal prints the full itemization, cache tiers and all.

// 03 · when the PR ships

The receipt sticks with the PR.

aireceipts pr --post attaches the observable floor of the sessions behind a branch to its pull request — one comment, kept current across pushes. A drop-in CI check can require every PR to carry one. The observed usage behind a change becomes as visible as what it changed.

The real historical aireceipts receipt comment on merged PR 189, with three sessions. It predates the current lower-bound notation.

Not a mockup — the historical receipt on PR #189 predates the current ≥ notation. Read it live →

// the handoff

Tomorrow doesn’t repeat today.

Every receipt ends with flags a machine can act on. --handoff turns them into a paste-ready block for your agent’s memory file — a repeated Bash loop can become a standing rule tonight without claiming proven savings.

TODAY

⚠ Bash loop ×5 · ≈ $0.08
# paste into CLAUDE.md:
- Bash loop ×5: change the input
  before a 3rd retry.

TOMORROW

Bash loop ............. none
flagged pattern ....... none

// your agents

Works with the agents you already run.

Your agent works. You get the receipt.

Apache-2.0