A coding agent will sometimes write a file, run nothing, and announce that it is done. Canny hooks into Claude Code and Codex CLI, records what the agent actually did, and refuses to let it finish until a test, build or type check has passed since the last edit.
It keeps a simple split: facts go to plain code, which can block, and judgments go to Jev, which can only advise. A changed file, a failed command or a secret about to be written are facts. Whether a finishing claim is believable is a judgment.
Everything it records goes into an append-only ledger, it has no runtime dependencies, and the Jev check is optional. You build it yourself and add a TypeSafe API key if you want the judgment step.
What you get
- Full TypeScript source code under the MIT license
- The `canny` command line tool and the hooks for Claude Code and Codex CLI






