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. 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
⚠ $2.68 recoverable
  101 trivial turns
--------------------------------
TOTAL....................$12.30
(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 billing you, cost so far, burn 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 billing you right now
$23.78 · $14/hr — cost so far, and what an hour costs
⚠ Bash loop ×5 — waste, flagged the moment it happens
An agent session replayed in a Claude Code-shaped terminal — tool rows scrolling above the input box, the aireceipts meter highlighted beneath it, cost ticking up as the session runs; host-supplied payload fields (context, quota) are simulated.

A replayed session — cost, tokens, and the waste flag re-priced 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 prices the session tool by tool — waste 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.05  (3 calls)
Edit.......................$0.05  (2 calls)
(thinking/reply)...........$0.03  (2 turns)
Write......................$0.03  (2 calls)
Read........................$0.02  (1 call)
-------------------------------------------
TOTAL.................................$0.18
same tokens on claude-haiku-4-5....$0.04 (78% less)
  (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 cost 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. What a change cost becomes as visible as what it changed.

The real aireceipts receipt comment on merged PR #189: three sessions — a Claude orchestrator sliced to this PR's turns plus two Codex helpers — $3.13 total.

Not a mockup — the receipt on PR #189 of this repo, $3.13. 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 — the Bash loop that burned money today becomes a standing rule tonight.

TODAY

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

TOMORROW

Bash loop ............. none
wasted ................ $0.00

// your agents

Works with the agents you already run.

Your agent works. You get the receipt.

Apache-2.0