How we reviewed this: we installed it in Docker on Linux, ran the full test suite, and read the engine. Its inference path requires Apple Silicon and MLX, so we could not run the model; everything about generation here is read from code, not observed.
What it does
jevmlx, by bnsd55, is not a client for Jev — it rebuilds the technique on open models you run locally with MLX. A schema of typed fields becomes a set of teacher-forced continuations sharing one prefill; at each decision point the engine reads the next-token logits and picks; the JSON is then assembled from the winners rather than parsed. There is no JSON repair loop and no retry, because there is nothing to fail to parse — the parallel path never calls a JSON decoder at all.
Supported field types are boolean, enum, multi-select and ordered enum, and one bundled preset goes to 255 options.
“One forward pass” is the idealised description: in practice there is chunking when there are many rows, an optional prior pass, a re-score at batch size one when two options are close, and a second pass for dependent fields. The telemetry counts only the main loop, so the reported pass count understates real model calls.
What we could and couldn’t check
Its tests are written for macOS: on Linux, 734 passed and 110 failed, and every failure we traced was environmental — MLX missing, or a fixture calling a symbol that is None without it. There are no skip guards, and the project’s CI only runs tests on macOS, so the Linux surface has never been exercised despite the package installing there.
That install is the first thing to fix: the dependency list has no platform marker, so pip install succeeds on any machine and then every model command raises “requires Apple Silicon”. The error is clear, but it arrives after installation rather than during it.
We did find one reproducible bug in a command that doesn’t need a model: jevmlx validate passes the alias (quality) straight to the tokenizer loader instead of resolving it to a model id, so it tries to fetch a nonexistent repository and fails after ten retries. Its help text says “no model download”.
And the shipped example data is corrupted: in all four presets, every dollar amount has been eaten — “Transaction Amount: ,850.00 USD”, “Average monthly spend ,200”. Those files are the context behind the README’s headline fraud example, so the demo’s key evidence isn’t there. It looks like an unquoted shell variable at generation time.
The honest parts
Two things we want to credit, because they’re rare.
The leaderboard in the README is labelled as a citation, not a measurement — the data file says so in its first key, and the build script separates cited, computed and measured rows. No number in that table is the project’s own.
Batching drift is measured, not hand-waved. The repository documents that batched matrix multiplications tile differently by shape, includes a probe showing the measured score drift, and notes that it exceeds the project’s own tie band — while also recording that no decision flipped in that probe. A separate note reports that a higher-precision decision head does not remove it. That is the kind of disclosure most projects would bury.
Verdict
As an implementation of the idea — structured decisions with nothing to parse — this is the most rigorous open attempt we’ve read, and the engineering habits (golden prompt vectors, crash-resumable evaluation, Wilson intervals in the leaderboard builder) belong to a much older project.
It is alpha, it is Mac-only in practice, its serve mode has no authentication if you move it off localhost, and its demo data needs regenerating. Read it for the technique; run it only on Apple Silicon.
For other open reproductions, see our Jev alternatives guide.
See how it compares with other tools in Best Jev tools, tested hands-on.
Review updated Sep 20, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.