JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3698
  • Score
    100M100P100Q111715F

Package Exports

  • altimate-receipts

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (altimate-receipts) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

๐Ÿงพ receipts

See what your AI coding agent actually did โ€” not just what it says it did.

Deterministic ยท local ยท reads the agent's own transcript ยท never grades your code.

npm CI License

npx altimate-receipts          # no install, no account โ€” reads your last agent session

The problem

Your agent writes the code now. You review the diff โ€” but the diff is only the result. It can't show you the work behind it:

  the agent's work    โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ   1 hour ยท 90 commands ยท 40 files
  what you review     โ–ˆโ–ˆโ–ˆ                             the final diff

The test that failed and got retried until green, the file quietly deleted, the check weakened to pass, the "all done!" that wasn't โ€” it's all in the part you didn't read.

What receipts does

It reads the transcript your agent already saved and shows you what it actually did โ€” cited to the line, deterministic, on your machine.

Your tests say whether the code is good. Receipts says what the agent did.

On a pull request

The comment receipts leaves on the PR โ€” the events that deserve a human's eyes, then the full append-only record. No grade, no verdict:

Agent work record โ€” claude-code ยท 16 files ยท spent โ‰ˆ $13.72 on this PR

push 2 ยท 7289522 โ€” +0 new ยท 0 cleared ยท 1 open ยท transcript covers 16/16 changed files

Sanity-check

  • src/cli.ts:699 โ€” Silently swallowed an error in cli.ts ยท error hidden ยท evidence tool-1983-0

Other 15 files: nothing detected.

tests: 564 passed (parsed from runner output in transcript)

Record โ€” pushes, files, checks, custody (append-only)
push events change cost
1 ยท 2026-06-12 +0 new ยท 0 cleared ยท 1 open โ€”
2 ยท 7289522 ยท 2026-06-12 +0 new ยท 0 cleared ยท 1 open $13.72

Checks ("not detected" means this check found nothing โ€” not that nothing exists)

check reading
swallowed errors 1 detected
destructive ops not detected
CI/CD tampering not detected
โ€ฆ 14 more checks not detected

a record of the agent's process, not a code review ยท entries are never edited or removed ยท re-derivable (L1) ยท 0 model calls

Real output โ€” the PR that built this very feature, wearing its own record: the masthead carries the PR's attributed agent spend, the ledger shows per-commit cost, and the one flagged event is the author's own swallowed error.

In your terminal

npx altimate-receipts prints the same record as a card:

  โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
  โ•‘ ๐Ÿงพ  RECEIPTS โ€” Agent Work Record                        proof, not vibes โ•‘
  โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

  Session  Pull latest main branch
  Agent    claude-code ยท claude-fable-5
  Scope    44h 18m ยท 1k msgs ยท 407 tools ยท 342M tok ยท $713.90

  โ”Œโ”€ RECORD โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚ 3 critical ยท 4 high ยท 2 medium                                           โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

  CRITICAL
   โ›” Destructive op: git checkout -- .github/meta/commit.txt
      data-loss risk
   โ›” Destructive op: git reset --hard origin/main
      data-loss risk
   โ›” Destructive op: rm -rf /tmp/codex-gaps
      data-loss risk
  HIGH
   โš ๏ธ  Edited a file it never read: SPEC-0074-m75-store-ref-default.md
      clobber risk ยท SPEC-0074-m75-store-ref-default.md
   โš ๏ธ  Force-pushed over remote history
      history overwrite
   โš ๏ธ  Rewrote git history made earlier this session
      history rewritten
   โš ๏ธ  Stuck loop wasted $8.75 / 3m 12s
      $8.75 ยท 3m 12s
  MEDIUM
   ๐Ÿ” Bash failed 10ร— before succeeding
      10 retries
   ๐Ÿ” Edit failed 4ร— before succeeding
      4 retries
     โ–ธ 1 minor (collapsed)

  EVIDENCE
   21 files changed ยท 55 edits ยท 308 commands ยท tests ran โœ“ ยท 13 destructive ops ยท cache 100%

  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  โœ… Verified by Receipts  ยท  deterministic  ยท  0 model calls  ยท  evidence, not judgement
  what it did โ€” not whether it's correct. your tests are the oracle for success.

Also real, reproduced verbatim: a 44-hour receipts development session, graded by the tool it was building โ€” the destructive ops, the force-push, and the $8.75 stuck loop are all the author's own. A clean session reads nothing detected (not a โœ… pass), because "not detected" is a fact about what was checked, never a verdict on your code.

What it catches that the diff and green CI don't

  • "Tests pass" โ€” did they? The run that printed FAILED right before the agent declared success.
  • Claimed vs. actually done. "Committed and pushed," "added the validation" โ€” checked against the trace.
  • Destructive ops. rm -rf, force-pushes, history rewrites.
  • Gamed checks. A weakened linter or tsconfig, an edited grader or test assertion.
  • Quiet churn. Files edited then reverted; loops that burned spend with nothing to show.

Every finding is cited to a line in the transcript, or it doesn't ship.

Why you can trust it

  • Deterministic โ€” no LLM in the path. Findings come from rules over the transcript. Same session in, same account out. There is nothing to hallucinate.
  • It never grades your code. It reports what happened, never whether it's good โ€” no letter grade, no "do not merge." Your tests stay the judge of correctness.
  • Near-zero false positives โ€” measured, not claimed. 100% precision on a 70-session labeled corpus; a 1% flag rate across 1,200 real local sessions, every flag adjudicated as a true positive, zero confirmed false positives (docs/eval.md).
  • Local-first. Runs entirely on your machine. No account, no upload, no telemetry.
  • Works with your agent. Claude Code, Codex, Cursor, OpenClaw โ€” one tool, one format.

Try it (10 seconds)

npx altimate-receipts            # your most recent agent session
npx altimate-receipts --list     # choose from recent sessions, any agent

No install and no signup โ€” it reads transcripts that are already on your disk.

Add it to your repo's PRs

npx altimate-receipts init

Commit the files it writes and merge the PR. From then on, every agent session attaches its Work Record to the PR automatically, before the push โ€” contributors install nothing. The hook rides along with git clone, the CLI is fetched on demand, and publishing a new release updates everyone. Every path is best-effort: a missing session or an unreachable registry never blocks a push.

Humans pushing from a terminal, other agents, or repos that won't commit .claude/ config โ†’ the onboarding guide has a one-command fallback for each.

Going deeper (optional)

  • receipts --json โ€” a portable, vendor-neutral in-toto Receipt carrying the same evidence, for feeding other tooling (schema).
  • Sign it. A Receipt can be Sigstore-signed and posted as a "Verified by Receipts" PR check (docs), then re-derived from its transcript to prove it wasn't hand-edited (trust model). Opt-in โ€” for when compliance or settlement needs make it concrete.
  • More surfaces. receipts guardrails (prevention rules for AGENTS.md), receipts trends (what your agent gets wrong over time), receipts mcp (for IDEs/agents, docs), SARIF for code-scanning, badges. Run receipts --help.

How it works

the agent's own local transcript (JSONL / SQLite)
  โ†’ adapter        normalize each agent's format to one session model (tool calls raw)
  โ†’ spans          edits ยท commands ยท reads ยท cost ยท destructive ops
  โ†’ detectors      deterministic, file:line-cited findings
  โ†’ Work Record    the human-readable account (default), or a signed --json Receipt

One pipeline, every agent, nothing leaving your machine. The full set of binding constraints (deterministic, evidence-not-judgement, near-zero-FP, local-first) lives in SPEC-0000.

Status

๐Ÿšง Early, and working today across Claude Code, Codex, Cursor, and OpenClaw. The detection engine is measured for fidelity (see trust, above); the roadmap lives in specs/. Receipts audits its own development โ€” every PR in this repo carries its own Work Record.

How we build

Spec-driven: every change starts from a spec in specs/ (template, contributing). See docs/ARCHITECTURE.md for the pipeline and the five extension surfaces (adapters, detectors, test parsers, guard rules, renderers) โ€” each has a one-seam checklist and a Claude skill (/add-detector, /add-adapter, /add-test-parser, /add-guard-rule).

License

Apache-2.0 ยฉ altimate.ai