jevclient
Unofficial async Python client for Jev with typed Noul, Choice and Score helpers, plus measured latency for batching up to 400 questions.
Overview
jevclient is an unofficial asynchronous Python client for TypeSafe's Jev, separate from the official typesafe-sdk, installed with pip install jevclient. You open an async client, call ask with a state and a dictionary of typed questions built with Noul, Choice and Score helpers, and read back typed results: the probability of yes for a Noul, the choice, probabilities and confidence for a Choice, and a score, legend, probabilities and confidence for a Score. The README's example asks whether to warn someone about a front door unlocked for 40 minutes, which area it concerns and how urgent it is.
It includes measurements from the Netherlands on 2026-09-17 showing that batching is nearly free in time: 3 questions took 712 ms, 25 took 690 ms, 100 took 714 ms and 400 took 1,336 ms, with input tokens growing from 521 to 15,417. The author notes batching is not free in money, because question text is billed as input tokens, so you should ask everything you need at once but keep questions concise. A Noul carries no confidence because the probability is the whole answer. MIT licensed.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Should someone be warned about this? | — |
| Choice | Which area is this about? | security · climate |
| Score | How urgent is it? | Ignore · Today · Right now |
How it works
- Create an async JevClient
- Call ask with state and typed questions
- Read typed answers
- Batch many questions per call to save time
Strengths
- Async API with typed helpers
- Published latency measurements for batching
- Simple install from PyPI
Caveats
- Unofficial client
- Question text adds input-token cost
Getting started
pip install jevclientAt a glance
- Type
- Library
- Status
- beta
- Language
- Python
- Runtime
- Library (asyncio)
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Unofficial async Python client (`pip install jevclient`). Typed Noul / Choice / Score helpers, separate from the official `typesafe-sdk`.
AnotiaWang/awesome-decision-modelsAn asynchronous Python Jev client that batches typed questions in one request.
logicrw/awesome-jev-projectsAsync Python client for TypeSafe Jev. Typed questions in, probabilities and…
wh000wh000/awesome-jev-liveAsync Python client for typed Jev questions and probabilities.
cobanov/awesome-jevAsync Python client for TypeSafe Jev. Typed questions in, probabilities and choices out, no prose to parse.
hellogumbo/awesome-jev
Frequently asked questions
Is this the official SDK?
No, it is an unofficial async client separate from typesafe-sdk.
Does batching questions slow things down?
Barely: the README measured 712 ms for 3 questions and 714 ms for 100.
Why does Noul have no confidence?
Because its single probability is the whole answer.
Related projects
Hack Club's lightweight LLM proxy, listed for adding a Jev forwarding endpoint behind its auth, limits and usage logging.
MCP serverproductionTypeScriptAx, a DSPy-style multi-language LLM framework, listed with a native TypeSafe provider for Boolean, Choice, Score and raw Jev questions.
PluginproductionTypeScriptEffect TypeScript library whose @effect/ai-typesafe package maps classify, probability and rating operations to Jev questions.
ProjectproductionTypeScriptPHP monorepo whose Polyglot module adds a TypeSafe driver for typed Noul, Choice and Score decisions alongside LLM inference.
ProjectproductionPHPGo MCP server giving any client typed Jev decisions via OpenRouter or TypeSafe, with validated answers and no paid retries.
MCP serverproductionGoSimon Willison's LLM plugin that adds Jev as a model for yes/no, choice and score questions from the command line.
PluginproductionPython