Jev alternatives

Kev

The drop-in that keeps the official SDK working

Quick answer

Choose Kev when the goal is replacing a hosted Jev call without touching application code: it speaks the same `/v1/systemone` wire format, so the official TypeSafe SDK works after a base-URL change. Expect automation coverage of roughly 0.45–0.57 at a 5% error budget against Jev’s 0.70, and a large knowledge gap that comes from the base model rather than the adapter.

Kev is a family of rank-16 LoRA adapters plus a pointer head on Qwen3.5 bases, from Jared Palmer. It started as Kev-0.5B and grew into 0.8B, 4B, 9B and a 27B variant. Its real selling point is not accuracy — it is that it serves TypeSafe’s own POST /v1/systemone contract, so the official SDK works unchanged after you change one base URL.

Adapt a large model

Keep the LLM as the backbone and bolt a decision structure onto it — LoRA adapters or a pointer head — so one prefill answers every question.

Search aliases

kevKev-0.5Bkev-0.8bkev-4bkev-9bkev-latestjaredpalmer/kev

Key specs

Licence
Apache-2.0
Author
Jared Palmer
Backbone
Qwen3.5 + rank-16 LoRA + pointer head · 0.8B / 4B / 9B, plus a 27B variant
Size
~9 GB for the 4B · 55 GB for the 27B
Latency
47 ms on MLX with a repeated state, 77 ms fresh · 18.1 ms on an H100 · 721 ms on an M5
Wire format
TypeSafe POST /v1/systemone, unchanged
Install
uv sync --extra serve

Kev against Jev, where Kev publishes its own losses

Third-party and project-published figures only. Kev’s own evaluation is unusually candid about calibration, and it is the reason this page can be specific.

Kev against Jev, where Kev publishes its own lossesKevJev
Held-out new sources0.822 (9B) · 0.848 / 0.896 (27B)0.857
Confident errors4.0%3.7%
Automation at a 5% error budget0.45–0.570.70
Knowledge tasks (MMLU-Pro)0.515 — a base-model limitation, not an adapter one0.840
Integration costChange one base URL; SDK untouchedWaitlist and API key

When Kev is the right choice

Kev is the shortest migration path in the whole open ecosystem. If your code already calls the TypeSafe SDK and your concern is data residency, per-call cost or rate limits, swapping the base URL is a one-line change and everything else keeps working. The 4B on a mid-range GPU is the practical sweet spot; the MLX backend makes a Mac viable, going from 213 ms on the old PyTorch MPS path to 47 ms on a repeated state.

When to walk away

Do not pick Kev for knowledge-heavy decisions. MMLU-Pro at 0.515 against Jev’s 0.840 is a base-model ceiling, and no amount of adapter training fixes it. Also do not assume the quoted accuracy: it is measured on held-out sources with the project’s own protocol, and every other open project runs a different protocol, which is how the same week produced four incompatible "Jev scores".

Adopting Kev in three steps

01Install and serve a checkpoint: clone the repo, `uv sync --extra serve`, then run `python -m kev.serve --run jaredpalmer/kev-0.8b`.
02Point the official SDK at it by setting the TypeSafe base URL to your local port. No application code changes.
03Shadow production traffic against both endpoints for a week, then compare automation rate at a fixed error budget — that number, not accuracy, decides whether you can switch.
bash / drop-in
# 1. Serve a Kev checkpoint locally
git clone https://github.com/jaredpalmer/kev.git && cd kev
uv sync --extra serve
KEV_DTYPE=bf16 uv run --extra serve python -m kev.serve \
  --run jaredpalmer/kev-0.8b --port 8009

# 2. Call it with the same request shape Jev uses
curl -s localhost:8009/v1/systemone \
  -H 'content-type: application/json' \
  -d '{
    "model": "kev-latest",
    "state": "Shoes arrived late and in the wrong size.",
    "questions": {
      "department": {
        "type": "choice",
        "instructions": "Which team should handle this?",
        "criteria": {
          "returns": "Exchanges, refunds, damaged items",
          "shipping": "Delivery status, delays",
          "billing": "Charges, invoices"
        }
      }
    }}'
Because the wire format matches, an existing TypeSafe SDK client can be redirected here by changing only the base URL.

Kev questions people actually ask

Is Kev really a drop-in replacement for Jev?

On the wire, yes. It implements TypeSafe’s POST /v1/systemone and accepts the same state and choice / score / noul question shapes, so the official SDK works after a base-URL change. On quality it is not equivalent: held-out accuracy sits a few points behind, automation coverage at a 5% error budget is 0.45–0.57 against 0.70, and knowledge questions are far behind.

Which Kev checkpoint should I run?

The 4B on a mid-range GPU is the practical choice: the 9B gains little for double the memory, and the 27B needs about 55 GB. The original Kev-0.5B still exists and is what early write-ups named, but the project has since moved to 0.8B / 4B / 9B, so older comparisons may be measuring a different model.

Why is Kev slow on a Mac?

It used to be. On the older PyTorch MPS path the same request took about 213 ms; the MLX backend added in September 2026 brought that to 77 ms on a fresh state and 47 ms on a repeated one, after a one-off 3.2 s first call.

Can I fine-tune Kev on my own decisions?

That is the intended workflow — the adapters are small and the training path is documented. But measure your own held-out set first: the project’s published numbers use its own protocol, and cross-project comparisons in this ecosystem are notoriously inconsistent.

Sources

Every comparison number on this page is a third-party published figure or a read of a public repository — not a benchmark we ran. We have not tested TypeSafe Jev itself, and its customer agreement forbids using its outputs to build similar products.