Your agent says “all tests pass.”
Check the receipts.
Coding agents end every task with a confident summary. receipts runs what they wrote and checks every claim against what actually happened: backed, contradicted or never ran.
Four steps. Watch each one happen.
Every box lights up while its model is working, with a live clock. Nothing is pre-recorded: a run calls three sponsors' APIs and executes real code.
Does the work
Gets a ticket. Writes the code, its own tests, and the “done” message it would send you.
Actually runs it
Executes the agent's tests. This output is the only evidence anyone gets.
Finds every claim
Reads the message and the whole log, lists each claim and quotes the exact log line behind it.
Rules on each one
One call, every claim: backed, contradicted or never ran, each with a probability.
The code the agent wrote
Don't take the agent's word for it.
Every run below really happened, including real pull requests by GitHub's Copilot coding agent. Nothing is planted. Click one to replay it.
Add it to your agent.
receipts is also an MCP tool. Your agent calls it before it says “done”, learns which claims it can't back up, and fixes them first. Works in Claude Code, Cursor, Codex, Windsurf or any MCP client. No model keys needed.
receipts_run_and_check
Runs your tests (or any command), captures the real output, and checks the agent's “done” message against it.
receipts_check
Checks a message against a log you already have: a CI log, a terminal session.
receipts: 0 backed, 1 contradicted, 2 never ran. - CONTRADICTED (100%) All 12 tests pass | log: "FAILED (failures=2)" - NEVER RAN (99%) Added the parser | log: nothing - NEVER RAN (100%) lint is clean | log: nothing Fix or remove contradicted claims, and either verify or soften never-ran claims, before reporting to the user.
- Download receipts_mcp.py: one file, Python standard library only.
- Register it with the command above.
- Ask your agent to finish a task. Before it reports, it calls receipts and fixes what it can't prove.
Docs: docs/MCP.md. Self-host: set RECEIPTS_URL to your own deployment.