Skip to content
MrJev

StartLux-Decision

Typed decision models from 0.8B to 27B, each answer carrying a probability per option, with a chess duel demo.

View on GitHub →

Hands-on review

Open decision models from 0.8B to 35B in Jev's format. On CPU the 0.8B GGUF matched its published score exactly; its GGUF server reports old confidences.

Good for

  • Running a decision model with no API key and no GPU: the 0.8B file is 0.81 GB and answers the official SDK unchanged
  • Comparing open decision models on equal terms: pinned benchmark data, the upstream scorer, and an --endpoint mode for any /v1/systemone server
  • Research and other non-commercial work that wants sizes from 0.8B to 35B under one prompt format

Watch out for

  • The weights are CC BY-NC 4.0: commercial use needs a separate licence from StartLux Labs
  • Run from a GGUF folder, as the README says, `confidence` is the top probability, not TypeSafe's formula, and every error is a 500
  • Add `--cache-ram 0` to llama-server on a small machine; its default prompt cache grew to 7.6 GB

Tested Oct 13, 2026 at 11f548fdcd48 · StartLux-Decision-v1-0.8B Q8_0 GGUF (Hub e933115a) on llama.cpp build 11561, in Docker on 2 CPU cores, no GPU; its gguf_server in front, the official typesafe-sdk 0.7.4 as a client, and the repository's own eval/suites.py on the three public JevBench tiers

How we reviewed this: we followed the README’s GGUF instructions on a CPU: the 0.8B Q8_0 file from Hugging Face, llama-server from llama.cpp, and the decision server that ships beside the file. We pointed the official Python SDK at it, sent malformed and out-of-range requests, and ran the repository’s own evaluation script against it on the three public JevBench tiers. Everything ran in Docker on two CPU cores with no GPU. We made no Jev calls. The README’s comparisons with Jev, its game results and its speed figures for H200 GPUs are the authors’ own, and we have not reproduced them.

What it is

A family of typed decision models: five dense sizes from 0.8B to 27B and a 35B-A3B mixture of experts. You send a state and typed questions, and each question comes back with a probability for every option. Nothing is generated: the model reads the option letters after one forward pass. Requests and responses use TypeSafe’s /v1/systemone format. The repository holds the inference package, a server, evaluation scripts, fine-tuning code and raw game logs. The weights are on Hugging Face and ModelScope, as original checkpoints and as BF16, Q8_0 and Q4_K_M GGUF files for llama.cpp.

The original checkpoints also read images and prompts up to 262,144 tokens. The GGUF path, which is the one a machine without a GPU can run, reads text only.

The number holds

The README’s GGUF table says the 0.8B Q8_0 file gets 177 of the 231 public JevBench items. We ran eval/suites.py from the repository, at its pinned benchmark revisions, against our CPU server:

tier items correct
easy 48 48
original 72 65
hard 111 64
total 231 177

That is 177, the same as the table. The scorer is JevBench’s own code, and the script scores any /v1/systemone server, so the result is easy to check. On two cores, the README’s three-question example took about 6 seconds. The longest hard-tier prompts, at 3,600 tokens, took 42 seconds for one question. llama.cpp read prompts at about 85 tokens a second for this model. The README’s speed figures, in tens of milliseconds, are on one H200 GPU.

Repeated requests were not bit-identical: the top probability of the same question moved in the third decimal place between runs (0.884, then 0.883).

Two different packages

The official SDK worked unchanged. It sent jev-latest, the server ignored the name and answered as sl-0.8b-q8, and every answer parsed. The values in it depend on which copy of the server code you run.

The README tells you to run gguf_server from inside the downloaded GGUF folder, so the package copied into that folder is what runs. In the 0.8B, 2B and 4B Q8_0 repositories that copy predates 3 October. For the README’s example it returned:

probabilities confidence returned TypeSafe’s formula
team (choice) 0.884 / 0.003 / 0.113 0.884 0.826
severity (score) 0.032 / 0.374 / 0.593 0.593 0.341

docs/inference.md says confidence follows TypeSafe’s definitions and that the package returned the top probability “until 2026-10-03”. The GGUF folders still have that older package. Code that thresholds confidence will act differently here than against Jev. The same copy answers every bad request with a 500 and a Python repr: malformed JSON, an unknown question type, a missing questions, a score with twelve levels. It also answers a POST to any path, and GET /v1/models returns its health check.

Running the repository’s own gguf_server against the same folder gave what the docs describe: 0.824 and 0.341, 422 with a detail list, a request id and /v1/models. The original-weights repositories carry the current package. We reported it. Until it is fixed, run python -m startlux_decision.gguf_server from a checkout of this repository, with --model-dir pointing at the GGUF folder.

Memory

Our first run of the benchmark stopped partway through the hard tier. llama-server had been killed for using more than its 4 GB limit, serving a 0.81 GB file. Recent llama.cpp builds keep up to 8 GiB of prompt cache in RAM by default (--cache-ram 8192), and over the run its memory climbed to 7.6 GB. The decision server already asks llama.cpp not to cache prompts. With --cache-ram 0 it stayed at 467 MiB over 30 of the long hard-tier items. The README’s llama-server line does not set it.

Licence

The code is Apache-2.0. The weights are CC BY-NC 4.0: free for research and other non-commercial use, with attribution, and commercial use needs a separate licence from StartLux Labs. The README and every model folder’s NOTICE say so plainly. The weights are a modification of an Apache-2.0 model, whose notice is kept.

Verdict

One of the most reproducible open decision models we have tested. The published score for the smallest file came out to the item on a two-core CPU, with the authors’ own script and pinned data, and the official SDK needed no changes. Two things need fixing in the GGUF folders before the “clients written for Jev work unchanged” claim fully holds: the stale package, which reports a different confidence, and the README’s llama.cpp line on small machines. And check the licence before building a product on it. 386 stars.

For another open model in Jev’s format with TypeSafe’s confidence formulas, see Valen.

See how it compares with other tools in Best Jev tools, tested hands-on.

Review updated Oct 13, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.

More in Open Models & Reproductions

Laya

★ 35k▲ 521

NandhaKishorM/laya

Non-autoregressive decision engine over 100+ languages: three checkpoints and a router that detects the script and dispatches per request. Its benchmarks end with a limits section naming the datasets it does not generalise to and the headline figure that came from a training split.

PythonReviewed

kev

★ 9.8k▲ 215

jaredpalmer/kev

Jev-style decision models from 0.5B to 8B, built as LoRA adapters on Qwen and served behind a Jev-compatible /v1/systemone API.

PythonReviewed

SemIf

★ 4.9k▲ 35

TheoLeeCJ/SemIf-OpenJev

Jev-style decisions from a frozen 4B model on a single RTX 3090, with a browser demo. Formerly OpenJev.

PythonReviewed

Get new Jev projects every week

New Jev releases, pricing changes, and the best new projects, once a week. No spam; unsubscribe anytime.

Powered by Buttondown. See our privacy policy.