Open source, self-hosted. There is no hosted API. You download the weights and run them on your own hardware. How open-source models are listed.
What Kev is
Kev is a family of open-source System One models published by Jared Palmer. It reads a state and answers typed Choice, Score and Noul questions about it with probabilities, the same three shapes Jev uses. There is no hosted API. You download the weights from Hugging Face and run them on CUDA, ROCm or Apple Silicon through MLX.
The server exposes POST /v1/systemone with the same request and response shape as TypeSafe’s API, so the typesafe-sdk Python client works once you point base_url at your own machine. The repo also ships a Modal script that deploys Kev-4B to an L40S behind a bearer key, and a Hugging Face Space runs Kev-4B and Kev-0.8B in the browser.
How it is built
Each checkpoint is a rank-16 LoRA adapter plus a small pointer head on a Qwen3.5 base, at 0.8B, 4B and 9B. The head scores each option against a decision token at the end of its question, and a softmax turns those scores into probabilities. Questions share the state but cannot see each other.
Training is plain cross-entropy on 10,000 examples from ten public datasets, plus 896 generated policy examples and 1,680 from generated rule structures. The README says no Jev outputs were used. Each checkpoint ships with a temperature fitted on in-distribution data, which changes the probabilities but never the answer.
All three models got a short second training pass on generated examples on 2026-09-21, with the earlier weights kept at revision v7-base. Kev-4B was updated again on 2026-09-24 after one epoch on consumer-finance complaints.
What its own evals show
These are the author’s numbers from the repo’s own benchmark, which also runs the Jev comparison. On datasets Kev was not trained on, Kev-9B scores 0.822 on the development set against Jev’s 0.857, and 0.852 on a test set Jev has not been run on. On held-out examples from its training sources it scores 0.872 against Jev’s 0.845. The README says this is not a controlled comparison, because Jev’s training data is unknown.
Speed is self-reported too. Kev-4B on an L40S takes 36ms to 179ms of model time for a new state, depending on how many questions you ask and how long the state is. The README’s sample request on an Apple M5 in bf16 came back in 495ms.
What it is not for
Knowledge questions are the widest gap: Kev-9B scores 0.74 on MMLU where Jev scores 0.90. Changing the order of options can change an answer. Training covered at most 384 state tokens, so long documents fall outside it even though the server accepts 8,192. The server handles one request at a time, and the Qwen3.5 models run slowly on a Mac.
Specifications
| Question types | ChoiceScoreNoul |
| Max Choice options | 255 |
| Score levels | Up to 255 |
| Questions per call | Not documented |
| Total context | 8,192 tokens |
| State budget | Not documented |
| Rate limit | None. It runs on your own hardware, and the server handles one request at a time. |
| Endpoint | POST /v1/systemone on your own server |
| SDKs | Python: typesafe-sdk |
The server accepts 8,192 tokens for the state plus one question, but training used at most 384 state tokens and 1,024 for the state plus one question, so longer inputs fall outside what training covered. Choice takes 1 to 255 options and Score 1 to 255 levels. A request can carry any number of questions; the server runs them a 16,384-token row at a time, so memory does not grow with the question count.
Versions
- jaredpalmer/kev-0.8b, 21 Sep 2026, LoRA adapter and pointer head on Qwen3.5-0.8B-Base. Weights updated on 2026-09-21 with a second training pass on generated examples; the previous weights are at revision v7-base. Release notes
- jaredpalmer/kev-4b, 24 Sep 2026, The recommended starting point, on Qwen3.5-4B-Base. Updated on 2026-09-21 like the others, then again on 2026-09-24 with one epoch on 5,219 consumer-finance complaint narratives; the previous weights are at revision night2-du-release. Release notes
- jaredpalmer/kev-9b, 21 Sep 2026, The most accurate Kev, on Qwen3.5-9B-Base. Updated on 2026-09-21; the previous weights are at revision v7-base. Release notes
Use cases
What people use Kev for, one page per pattern.
Support inbox triage with System One models
Send a support ticket to Jev once with every question attached. Category comes back as a selected label, severity and frustration as numbers on scales you wrote, refund intent as a probability. Your code reads those values and decides what happens to the ticket.
Confidence-gated actions with System One models
Jev returns a confidence value from 0 to 1 alongside every Choice and Score answer. Your code treats it as a separate axis: act automatically when it's high, confirm or flag when it's middling, hand the decision to a person when it's low. Riskier actions get higher bars.
Examples built with Kev
The most-starred and most-viewed entries in the directory. Browse all examples.
jaredpalmer/kev
A family of small, self-hosted decision models built on Qwen3.5 at 0.8B, 4B and 9B, with training code and an API that matches TypeSafe's System One so TypeSafe's own Python SDK can point at a local server.
jevals
A Python evals and guardrails library for agent traces that uses Jev-style decision models instead of an LLM judge, running Jev through TypeSafe or Vercel, or Kev or Laya locally on a Mac. All checks for a trace go out as one request in a few hundred milliseconds.
kevala
Runs Laya and Kev decision models inside the browser: a zero-dependency Rust engine compiled to WebAssembly with WebGPU kernels, downloading a pinned int8 model pack and answering choice, score and noul questions with no server or API key.
Jev vs Laya on Moroccan Darija sentiment
A zero-shot benchmark of Jev, self-hosted Kev-9B and self-hosted Laya on 171 Moroccan Darija reviews in Arabic script and Arabizi. Jev scored 79.5 percent accuracy, Kev-9B 71.9 percent, and Laya 53.8 percent, tying an always-positive baseline.
Home-Made Snake Benchmark: Jev vs Laya-MLX vs Kev-4B
Custom Snake benchmark comparing Jev over the API against locally run Laya-MLX and Kev-4B: Jev had zero deaths, Kev died twice at about 175ms latency, and Laya died early despite roughly 33ms latency.