
aireceipts
Your AI coding agent just billed you. Here's the receipt. Cost receipts for Claude Code, Codex, Cursor, Gemini & opencode — no account, no upload.
Install with your AI
Paste into Claude Code, Cursor, or any agent — it reads the repo and wires the tool into your project.
Install and set up aireceipts (git-clone project) into my current project. Found on https://claudeers.com/aireceipts Repo: https://github.com/anandgupta42/aireceipts Homepage/docs: https://anandgupta42.github.io/aireceipts/ Detected install method: git-clone → git clone https://github.com/anandgupta42/aireceipts Category: devtools. Platforms: cli, api. Read the repo's README for exact setup and env vars, then install it and wire it into my project. Claudeers Health Verdict: active; community-verified: false. Confirm the source before running anything.
git clone https://github.com/anandgupta42/aireceipts
// compatibility
| Platforms | cli, api |
|---|---|
| Operating systems | — |
| AI compatibility | claude |
| License | Apache-2.0 |
| Pricing | open-source |
| Language | TypeScript |
Your AI coding agent used millions of tokens. Here is the observable cost floor.
not a mockup — a real receipt on a merged PR of this repo. The screenshot predates the current ≥ $X notation.
Read it live.
The meter runs while the agent drives · the receipt prints when the ride ends · and sticks with the PR
Why this exists. AI coding-agent usage is usually invisible — you see the diff, not the token ledger. aireceipts reconstructs an observable Standard-API list-price floor: live in your status bar, itemized when the session ends, attached to the PR. It is not an invoice or subscription allocation. Local and deterministic — transcripts never leave your machine, and a shared receipt carries figures plus the session's one-line title (drawn from your opening prompt, truncated) — never your diff, file contents, or transcript (how).
Start here — the meter, the receipt, the PR
Try it in ten seconds: npx aireceipts-cli — no install, no account (--demo shows a bundled example if you have no sessions yet). Then let it run like a cab ride:
1 · While the agent works — the meter. One settings line (setup)
pins aireceipts statusline under Claude Code's input box — and tmux, starship, or
PowerShell give Codex and OpenCode the same bar — ticking up as the session runs:

The line, segment by segment:
[aireceipts] Opus · ≥$4.20 · ≥$9/hr · 128k · ctx 42% · 5h 24% ↺2h13m
│ │ │ │ │ └ how much of your 5-hour cap is gone · when it resets
│ │ │ │ └ how full the context window is
│ │ │ └ how many tokens the session has used
│ │ └ observable Standard-API floor per hour
│ └ observable floor so far — cited prices, subagents included
└ which model is active right now
When a detector finds a stuck retry loop, a heuristic pattern flag appears right on the line; it is evidence to inspect, not a proven savings claim.
2 · When the session ends — the receipt. npx aireceipts-cli prints the itemized
receipt — cited floors on priceable tool rows, tokens-only buckets where evidence
is insufficient, heuristic patterns flagged (loops, context thrash, trivial spans), and the
cheaper-model line as arithmetic, not a prediction. The exact bytes:
- - - - - - - - - - - - - - - - - - - - - - - - -
AIRECEIPTS
“Add email format validation to the signup for…”
Claude Code · Jun 18 2026 09:30:30 UTC · 10m 30s
claude-opus-4-8 87% · claude-sonnet-5 13%
cache served 85% of input tokens
pre-edit: 11% of priced floor (1/10 turns)
(share before the first named edit tool)
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.1764
standard API-equivalent floor; not an invoice
same tokens on claude-haiku-4-5..........≥ $0.0392
(78% lower observable floor)
(arithmetic, not a prediction)
- - - - - - - - - - - - - - - - - - - - - - - - -
npx aireceipts-cli
github.com/anandgupta42/receipts
- - - - - - - - - - - - - - - - - - - - - - - - -
The final line identifies the open-source project that generated the receipt; the line above it is the install command. PR comments and their HTML artifacts make the same source-and-install destination clickable.
Every human ≥ $X is rounded down. Additive spend rows share one adaptive precision — two decimals for exact cents, normally four for fractional cents, and up to twelve for tiny positive evidence — and visibly sum to a TOTAL that never exceeds the raw machine aggregate. No row is rounded upward; if floating-point addition serializes just below the row-unit sum, the largest row is lowered by the excess unit(s). --json/--csv retain raw precision and explicit lower-bound semantics.
pre-edit is the share of the observable priced floor before the first edit-tool call (reading a receipt).
3 · When the PR ships — the receipt sticks with it. npx aireceipts-cli pr --post
attaches the observable cost floor of the sessions behind a PR as a comment. Generation stays local; a
drop-in CI check can require every PR to
carry one — a real one, live:
PR #189.
Want it automatic? A paste-ready
pre-push hook attaches the
receipt ref whenever a local session matches the pushed branch, from any agent, and the
CI check posts the comment for you.
What it tells you
- Which model is active, and the observable Standard-API floor so far — on every prompt, before the session is over, with your 5-hour cap countdown next to it.
- Where the observable usage went — priceable rows carry cited
≥floors; unmatched or unattributed components stay as tokens. Heuristic flags identify stuck loops, context thrash, and trivial turns without claiming avoidability. - The observable floor behind a PR — attributed across the sessions that built it, with same-tokens-on-a-cheaper-model arithmetic.
Supported agents
| Agent | Depth |
|---|---|
| Claude Code | Full: per-turn models, tools, cache tiers |
| Codex CLI | Per-turn parsing with request-granular context-tier pricing; cache-write usage is absent from traces |
| Gemini CLI | Full: per-turn models, tools, cache tokens |
| OpenCode | Full: per-message models, tools, cache read/write; aggregate-only residuals stay unattributed/tokens-only |
| Cursor | Honest degraded mode: session totals only (its logs carry no per-turn usage) |
Model prices move. A daily advisory tripwire cross-checks data/prices/ against an
independent dataset and opens an issue when they disagree; every table change lands
as a cited price-table PR.
Install — or let your agent do it
npm i -g aireceipts-cli
No account, no API key. The command is then aireceipts; or skip the install
and prefix any command as npx aireceipts-cli. Full walkthrough:
getting started.
Easiest: let your agent do it
You already have an AI coding agent. In Claude Code, Codex, or any agent with shell access, paste:
Read https://raw.githubusercontent.com/anandgupta42/receipts/main/README.md
and follow the "Instructions for agents" section: install aireceipts globally
and set up the Claude Code statusline.
The agent handles the npm install and the settings edit, and shows you a receipt when it's done.
Instructions for agents
If you are an AI agent asked to install aireceipts, do the following:
-
Install the CLI globally. Run
npm install -g aireceipts-cli, then confirm withaireceipts --version. If global installs are not permitted on this machine, fall back tonpx aireceipts-cliin the steps below and tell the user why. -
Set up the Claude Code statusline (skip if Claude Code is not installed, and say so). Add a
statusLineentry to~/.claude/settings.json:{ "statusLine": { "type": "command", "command": "aireceipts statusline" } }Merge into the existing JSON; do not overwrite other settings. If a
statusLineentry already exists, show it to the user and ask before replacing it. Ifaireceiptsis not on thePATHthat GUI-launched apps see, use the absolute path fromwhich aireceiptsas thecommandvalue. -
Verify. Run
aireceiptsto print a receipt for the newest session (aireceipts --demoif the user has none yet) andaireceipts setupfor detected agents. The statusline appears on the next Claude Code prompt. -
Show the user the result. Print the receipt and tell them the statusline is active. Optional next steps:
aireceipts install-hook(consent-gated end-of-session mini-receipt) andaireceipts integrations(snippets for Codex, OpenCode, Cursor, and GitHub PR receipts).
Everything else it does
| Command | What it does |
|---|---|
aireceipts | Receipt for the newest session (--list to pick another) |
aireceipts --mini | Six-line mini-receipt for the newest session |
aireceipts --details | Adds a DETAILS section — token composition, session shape, per-model split (classic template) |
aireceipts --template <name> / templates | Render a receipt style (classic, grocery, datavis); templates previews each — guide |
aireceipts setup | Found sessions, latest observable floor, week floor, and the integrations that fit your machine — guide |
aireceipts pr --post [--artifact] | Attach the receipt of the sessions behind a PR as a comment; --artifact also publishes a durable receipt page — guide |
aireceipts compare <a> <b> | Two sessions side by side — models, tools, flagged patterns, ratio when coverage is complete — guide |
aireceipts week | Trailing-7-day digest: totals, per-agent split, flagged patterns — guide |
aireceipts backfill [--out <dir>] | Bulk receipts across your existing session history; summary by default, one file per session with --out — guide |
aireceipts integrations [target] | Exact local snippets for Claude Code, Codex, OpenCode, Cursor, and GitHub — guide |
aireceipts --handoff | Paste-ready block that tells your agent what to do cheaper next time — guide |
aireceipts install-hook | Consent-gated Claude Code hook: every session ends with a mini-receipt — guide |
aireceipts statusline | Live observable-floor line in Claude Code's status bar, or any terminal via --cwd (tmux/starship/pwsh) — setup |
aireceipts --quota / --check-budget | Claude Code rate-limit window, read from the statusline stdin payload (silent otherwise); --check-budget exits 1 when your local budget cap is exceeded |
aireceipts --json / --csv / --svg / --png | Versioned schema, RFC 4180 rows, shareable SVG/PNG image — schema |
aireceipts stats | Local usage counters — receipts generated on this machine |
The honesty rules
Every displayed dollar uses a cited row (vendor URL, observed date, excerpt — checked by CI). Receipts are deterministic and golden-tested. No matching model row means tokens-only; cached reads/writes without a cited applicable rate contribute zero with a caveat. Codex supports deterministic request-level Standard-API floor arithmetic, not an exact invoice: traces omit cache writes, billing/auth route, request/invoice ids, discounts, and credits. Comparisons re-price identical tokens; they never predict. What a
receipt proves, and what it can't: docs/trust.md · aireceipts --methodology.
Telemetry
Anonymous diagnostics and usage signals, on by default (in CI too) — error classes,
duration buckets, parse-failure signatures, feature enums, and coarse buckets. Never
code, prompts, paths, titles, or dollar amounts. See exactly what a run would send:
aireceipts --telemetry-show. Kill it: AIRECEIPTS_TELEMETRY=off or
DO_NOT_TRACK=1. Schema and rationale: docs/telemetry.md.
Docs
User guide — get started, every command, pricing, troubleshooting (hosted docs · site). Also: FAQ · What a receipt proves · PR receipts · JSON schema · statusline.
Versioning & contributing
Pre-1.0 (0.x): minor versions may change behavior or output, patch versions
are fixes only. The receipt's byte-stability contract is the compatibility surface — a
change that breaks it is a major bump (changelog ·
releases). aireceipts is designed
and largely built by AI agents under a spec-driven harness — adversarially validated
specs, mutation-tested money paths, byte-golden outputs, and PRs that carry the receipt
of the session that built them (how and why). Human PRs are
welcome and run the same gates: CONTRIBUTING.md.
License
Apache-2.0.
Buy me a samosa
Every open-source project asks you to buy the maintainer a coffee. Not this one — buy me a samosa, and I'll explain.
// faq
What is aireceipts?
Your AI coding agent just billed you. Here's the receipt. Cost receipts for Claude Code, Codex, Cursor, Gemini & opencode — no account, no upload.. It is open-source on GitHub.
Is aireceipts free to use?
aireceipts is open-source under the Apache-2.0 license, so it is free to use.
What category does aireceipts belong to?
aireceipts is listed under devtools in the Claudeers registry of Claude-compatible tools.
// embed badge
[](https://claudeers.com/aireceipts)
// retro hit counter
[](https://claudeers.com/aireceipts)
// reviews
// guestbook
// related in Developer Tools
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Curs…
Use Garry Tan's exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA
AI coding assistant skill (Claude Code, Codex, OpenCode, Cursor, Gemini CLI, and more). Turn any folder of code, SQL schemas, R scripts, shell scripts, docs,…
Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.