Claude Code session
Jev Belay
Claude Code Stop hook that blocks an unverified done: reads the transcript for evidence, asks Jev once, fails open on everything else
Install
/plugin marketplace add valentynkit/jev-belayFound in the project README. Check it for setup steps after installing.
git clone https://github.com/valentynkit/jev-belay.gitFrom the README
jev-belay Claude Code says "Done, tests pass." jev-belay checks whether anything ran before it lets that stand. A Stop hook. It reads the turn's transcript locally, and only when files changed and no check has passed since does it spend one Jev call, four questions, $0.00005, on whether the closing message is an unverified "done". If it is, the turn does not end: Claude gets the reason and goes back to run the suite. Every other stop costs nothing. Every error path lets the turn end. Measured on 100 labeled stops from a real corpus: AUROC 0.976 at telling a false done from an honest one, against 0.777 for judging the wording alone. At the shipped threshold it blocks 8 turns in 100, 7 of them rightly. Jev answers in 346 ms at the median. One real session, nothing typed for the camera, answers from jev-1.13.0. Claude renames a function across two files, says "Renamed parseRows to parseCsvRows in both files, added jsdoc. Tests updated to use new name", runs nothing, and gets blocked: 0.96 that it reports done, 0.89 that a test would apply, 0.11 that it claimed one ran, because it did not. It then runs the suite itself, finds a CRLF bug the rename exposed, fixes it. The next task ends on a passing check and the gate stays out of the way, free. demo/README.md has the one command that records it. A belay catches the fall. It does not stop the climb. Why Agents say done. Sometimes nothing ran, sometimes the suite ran and failed and the summary says pass anyway. Reading every closing message is the job you installed the agent to avoid, so the check has to be automatic, cheap, and wrong in the safe direction. The obvious version has been measured and it does not work. limpet published a calibration run over 1,500 real stops where its rule "don't say done without running…
Details
- Repository
- valentynkit/jev-belay
- Language
- JavaScript
- License
- MIT
- Last updated
- 9 October 2026
FAQ
What is Jev Belay?
Claude Code Stop hook that blocks an unverified done: reads the transcript for evidence, asks Jev once, fails open on everything else It is a session for Claude Code, from valentynkit/jev-belay on GitHub.
How do I install Jev Belay?
Run /plugin marketplace add valentynkit/jev-belay inside Claude Code, then follow the setup in the README.
Is Jev Belay popular?
valentynkit/jev-belay has 45 GitHub stars and 8 forks. It was last updated on 9 October 2026.
More sessions & history
Claude Converter
48FredyRivera-dev/claude_converter
A zero-dependency Python module for inspecting and converting coding-agent session files (.jsonl) — Claude Code, Codex, and Pi — into the messages format expected by Hugging Face Transformers.
AI Memory Reader
50nvwalj/ai-memory-reader
The native macOS & iOS app for browsing AI agent memory files — Claude Code, OpenClaw, Codex, Cursor, Gemini
Argot
52get-tmonier/argot
A statistical code analyzer built from your repository's history.
Claude Skillify
470xMH/claude-skillify
Open-source Claude Code plugin porting the internal /skillify skill: turn a finished session's repeatable workflow into a reusable SKILL.md you can rerun with a slash command.
Claude Session Tracker
48ej31/claude-session-tracker
Auto-save every Claude Code session to GitHub Projects. Never lose Prompt & Context again.
Search Sessions
47sinzin91/search-sessions
Fast CLI to search across all Claude Code session history
Browse the most popular Claude Code mods, all sessions & history, or the skills and MCP server directories.