User repository on GitHub
Pytest plugin for semantic assertions on LLM output using Jev's calibrated probabilities.
- Forks
- 1
- Last pushed
- Updated Sep 2026
Repo stats from the GitHub API, cached Oct 2026.Homepage
Jev directory
User repository on GitHub
Pytest plugin for semantic assertions on LLM output using Jev's calibrated probabilities.
Repo stats from the GitHub API, cached Oct 2026.Homepage
Test what your LLM app's output means, not the exact words. Semantic assertions for pytest, judged by TypeSafe's Jev, a model that returns calibrated probabilities instead of text. Same verdicts as Claude Sonnet 5 on the example tests, 5× faster and 110× cheaper. Benchmark · real runs of jev-1.13 through OpenRouter. Quick start · Usage · Benchmark · Examples. All the claims about one text go to Jev in a single request. When a prompt change breaks the reply, the failure shows which claims broke and how sure Jev was:
Quoted from the project's README. Read the full README.
def test_refund_reply(jev):
reply = support_bot("I was charged twice for order #1042.")
jev.expect(
reply,
holds=["apologizes to the customer", "says the duplicate payment was refunded"],
lacks=["blames the customer", "asks for a password or a full card number"],
)Watch out
MIT-licensed and not affiliated with TypeSafe; needs Python 3.10+ and pytest 7.4+, plus a TYPESAFE_API_KEY or OPENROUTER_API_KEY, and asserted text is sent to the provider.
Short answers drawn from the linked project or page.
Posts, threads, and videos about this entry from around the web.
X: Agent Handoff Gate: agents verify what they hand off
X: Jev as an LLM guardrail inside Agentgateway
X: Vercel's fx safety reviewer, measured at 18× faster
Reddit: Early experiments wiring Jev into Pi as a safety layer and model router.
Original write-ups on what this entry is for.
Posts from builders shipping with Jev right now.