
Claude Code ends a session with a confident summary. "All tests pass." "Committed." "Fixed." Most of the time that is true. Sometimes the last test run failed, the files changed after the run, or the commit never landed. Reading the whole transcript to find out is slow, so I usually did not.
So I built Kalun. After a session it reads the transcript Claude Code already keeps on your machine and writes two Markdown files: a flight log of what happened, and a receipt that checks every claim in the final message against the evidence. Each claim comes back observed, partial or unverified, with the reason and the step it points to.

Three answers, not two
A claim is never just true or false. Kalun uses three statuses so it does not overstate what it can see.

Unverified means Kalun found no support, not that the claim is false. A receipt is evidence, not a verdict.
The blind spot
My first version missed something obvious. When Claude delegates work to a subagent, the parent says "I fixed it" but the edit was made somewhere else, in a separate transcript. Kalun had nothing to check the claim against. It now reads those transcripts too, tags every event with the agent that made it, and follows sessions running in git worktrees. If a subagent transcript cannot be found, the receipt says so instead of guessing.
What it is not
It watches and never steers. It is Claude Code only, local files only, and standard library only. There is no server, account, model call or telemetry, and nothing leaves your machine.
Try it
pip install git+https://github.com/wickedhardflip/kalun
kalun report # latest session for this folder
The repo includes made-up transcripts, so you can see a caught claim in 30 seconds without a real session.
What is next
It is Claude Code only for now. I am using it on my own sessions every day and tightening the patterns from real misses. Next up: claims about things that are not file paths, and edits made through shell commands. If there is interest in other coding tools, I will look at that later.
If a receipt looks wrong to you, send me the sentence it got wrong and what the transcript showed. I do not need the transcript.
