Skip to content
MrJev

jev-belay

Claude Code Stop hook that checks the transcript for evidence before letting a "done" through, and spends one four-question Jev call only when files changed with no passing check since. Fails open on every error path.

View on GitHub →

Hands-on review

A Claude Code stop hook that only spends a call when the evidence looks wrong: files changed, nothing checked, and the agent says it's finished.

Good for

  • Stopping an agent from declaring victory without running anything
  • A gate that costs nothing on most turns: local evidence decides first
  • Redaction that actually runs: 14 patterns, and home paths rewritten

Watch out for

  • The README says only counts are sent; failed check commands go too
  • Nine stars, fifteen commits
  • It nudges rather than blocks, which is the right default and not a guarantee

Tested Sep 20, 2026 at 98f39e044920 · Node in Docker against the bundled fake backend; 74 tests, 69 passing, 5 needing a live key

How we reviewed this: we drove the hook in Docker against its own fake backend, ran its tests (69 passing, 5 skipped for want of a live key) and inspected a captured request. We made no Jev calls.

What it does

jev-belay, by valentynkit, hooks the end of a Claude Code turn. It reads the transcript locally first, and only asks anything when the shape is suspicious — files were changed, no check passed afterwards, and the closing message claims completion. The author reports that this means most stops never reach the model at all.

When it does ask, four questions go out: does the message claim done, does it claim verification, does verification apply here, and what was the outcome.

The redaction is real — fourteen secret patterns, and $HOME rewritten to ~ — and there’s a corpus plus a measurement tool in the repository, along with a “known limits” section that says which numbers haven’t been measured yet.

One correction to the README

It says what leaves the machine is “your prompt, the closing message, two counts. No tool inputs, no diffs”. In fact the state includes the failed check commands themselves — redacted and truncated, but real command strings, not counts. Worth knowing if your test commands carry arguments you’d rather not send.

Verdict

The design is right: evidence gathered locally, a call only when it matters, a nudge rather than a block. For a fifteen-commit project the discipline is notable.

For related gates, see Abide and pi-warden.

See how it compares with other tools in Best Jev tools, tested hands-on.

Review updated Sep 20, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.

More in Guardrails & Safety

Abide

★ 619▲ 9

coldteadotai/abide

Hooks into Claude Code, Codex, and OpenCode, and asks Jev one question per rule whether each edit breaks your AGENTS.md or CLAUDE.md rules.

TypeScriptReviewed

Jevmind

★ 186

dealerdefi/Jevmind

Nine skills over one brain: a shell-command gate, a diff triage, a router and more, each decision appended to a hash-chained ledger that names any record edited afterwards. Runs offline on local reflexes or against Jev.

PythonReviewed

pi-warden

★ 177▲ 2

DevMortimer/pi-warden

Guardrails for the Pi coding agent. Jev judges every write and edit against the rules in pi-warden.md.

TypeScriptReviewed

Get new Jev projects every week

New Jev releases, pricing changes, and the best new projects, once a week. No spam; unsubscribe anytime.

Powered by Buttondown. See our privacy policy.