Hands-on review
Jared Palmer's Jev-style decision models, with open weights, public training data, and a Jev-shaped API. The smallest runs on a CPU; a few API edges differ.
Good for
- Researchers who want a documented, reproducible Jev-style model to study or fine-tune
- Running typed decisions locally, from a laptop-sized 0.5B model up to 8B on a GPU or a large Mac
- Learning how one-pass, many-question decision models are built and evaluated
Watch out for
- The server has no authentication; it listens on localhost only by default
- Some API edges differ from Jev: required instructions and a model list the SDK can't parse
- The three larger checkpoints are previews that fail the author's own release screen
Tested Sep 19, 2026 at 6f5ce1684906 · kev-0.5b (fp32) served on a 4-core CPU in Docker with Python 3.12; called with typesafe-sdk 0.7.0
What it does
kev, by Jared Palmer, is a family of “Jev-inspired” decision models: a LoRA adapter and a small readout head on a Qwen base model, in 0.5B, 0.6B, 4B, and 8B sizes. It reads the state once and answers many typed questions (Choice, Score, and Noul) in a single pass, with a mask that stops questions from seeing each other. The probabilities come from a head trained with cross-entropy, not from generated text.
It’s served behind a Jev-shaped POST /v1/systemone API. The weights are on Hugging Face, and the repository includes the training recipe, frozen evaluation suites, model cards, and a web playground.
Two things set it apart:
- Its training data is public. kev-0.5b was trained on six public datasets (such as Banking77, AG News, and BoolQ), and the larger models on ten to thirteen plus generated policy examples. The repository calls Jev only to compare against it, not to label training data.
- It’s unusually honest about itself. Only kev-0.5b is a tagged release. The 0.6B, 4B, and 8B checkpoints are marked as previews because they fail a release screen the author set in advance. The README compares every checkpoint with Jev on the same frozen items. Consistent with our policy, we don’t reproduce the Jev figures here.
Setup
git clone https://github.com/jaredpalmer/kev.git && cd kev
uv sync --extra serve
uv run --extra serve python -m kev.serve --run jaredpalmer/kev-0.5b --port 8009
It needs Python 3.12 and uv, and the base model downloads on first run. The author recommends kev-4b, which serves on a 32 GB Mac in bf16. Training and evaluation are set up for CUDA (with a Modal app for an H100) or Apple Silicon.
Using it
We served kev-0.5b on a four-core CPU with no GPU and called it with TypeSafe’s official Python SDK (0.7.0), running the same compatibility checks we use for every Jev reproduction.
- The tests pass. 56 offline tests passed. The 7 others are API tests that expect a running server.
- It starts on a CPU. kev-0.5b was serving within about a minute, including the model download.
- It passed 9 of our 12 compatibility checks. All three question types, chat-message and JSON state, SDK
response_model parsing, Noul criteria, Choice options without descriptions, a 64-option Choice, and a pinned jev-1.13.0 model name, which it accepted.
- Three differences from Jev’s API:
- A question without
instructions is rejected with a 422, although they’re optional in Jev’s schema.
GET /v1/models returns a shape (id, aliases, run, base) that the SDK can’t parse, so models.list() raises an error.
- There’s no API key check: any key, or none, is accepted.
- The response echoes the name you sent. The
model field repeats the requested name rather than naming the checkpoint that answered.
Permissions and data
- Everything runs on your machine. Requests stay local, apart from downloading weights from Hugging Face.
- It’s local-only by default, with no auth. The server binds to
127.0.0.1, which keeps it private, but it has no authentication if you expose it. Put it behind something that checks keys before sharing it.
- Weight loading is safe on current PyTorch. Checkpoint heads load with
torch.load, which defaults to weights_only on the PyTorch 2.8 the lockfile installs.
Maintenance
About ninety commits since September 17, a tagged v0.1.0 release with kev-0.5b attached, and two open issues. It’s Apache-2.0 licensed. The planning notes in PLAN.md and docs/ read like a research log.
Verdict
kev is a carefully documented open attempt at a Jev-style model: public training data, frozen evaluation suites, model cards, and release criteria it holds itself to. For researchers it’s an excellent base to study or build on, and the 0.5B model makes it easy to try on a laptop. As a drop-in Jev replacement, expect small API differences, add your own authentication, and pick a larger preview checkpoint only after testing it on your data.
For other open approaches, see jeff, which runs a small encoder on a CPU, openjev-sglang, SemIf, and NanoJev. Our Jev alternatives guide compares the approaches.
See how it compares with other tools in Best Jev tools, tested hands-on.
Review updated Sep 19, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.