Overview & result
Bouncer uses a Claude Code PreToolUse hook. Deterministic fast paths and hard rules handle obvious cases, while Jev answers seven configurable policy questions in one call for ambiguous tool actions. The author's calibration found several dangerous commands scored surprisingly low on the relevant Jev question, motivating hard rules.
From the original post
A judgment layer for agents. The first thing it judges is Claude Code tool calls.
A PreToolUse hook answers a handful of plain-English questions about each proposed tool call — using a fast System One model (TypeSafe Jev) rather than a frontier LLM, so it can run on every call for about four cents a day. The questions and the thresholds live in a YAML file you own.
How Jev fits in the loop
- Inspect a proposed Claude Code tool call before execution.
- Apply deterministic allow and hard-deny rules first.
- Ask Jev configurable Noul policy questions for remaining ambiguous cases.
- Use YAML thresholds and the configured mode to log, prompt or deny.
How to reproduce
- Inspect the source implementation at https://github.com/clownware/bouncer.
- Configure local Jev API credentials and register required tool/model bindings.
- Execute test prompts and observe decision latency and routing outputs.
Why this build matters
Shows both the usefulness and limits of a fast judgment model: irreversible actions need deterministic safety floors, not probability alone.
Reported performance
Reported by authorCost: ~$0.04/day
Limitations
- Each question has to pass calibration on labelled fixtures (by default 0.85 accuracy among answers at 0.8 confidence or higher) before you rely on it.
- The cost of about four cents a day is the author's figure.
- In seatbelt mode it stays silent until one of nineteen deterministic rules matches.