TypeSafe Mario
★ 458▲ 3fhshaik/typesafe-mario
Jev picks NES controller inputs for Super Mario Bros. from emulator state, with no screenshots.
Recorded chess experiments with a candid result: Jev on its own still blunders pieces.
View on GitHub →Hands-on review
One day of chess experiments, published whole: the deliberation loop cost eight times more per move and played worse. Written up in Russian.
Good for
Watch out for
Tested Sep 20, 2026 at f501d9dc8069 · Python 3.12 in Docker, offline against a local stand-in; 26 tests, and six scenarios end to end
How we reviewed this: we ran its 26 tests in Docker and drove all six scenarios end to end against a local stand-in, then recomputed its published figures from the traces in the repository. We made no Jev calls.
jev-chess-lab, by denikuchero, hands a model the FEN, an ASCII board, the move history and the full list of legal moves, and asks it to pick one. Python plays the move, a local opponent replies, and the whole exchange is written to disk with an SVG replay. There is no chess reasoning of its own: the model is answering a multiple-choice question, and everything interesting is in how the question is posed.
Two things to know before you clone it. The endpoint is hardcoded at jev.py:19 to openrouter.ai/api/alpha/decisions — “Jev” here is the model name typesafe/jev-1.13, reached through OpenRouter, so the key is an OpenRouter key. And the research write-up and the CLI’s own output are in Russian.
The headline mode is deliberate: propose a move, ask three review questions about it, predict the opponent’s reply, then choose. Five calls a turn instead of one.
Running the repository’s own audit script over its own recorded games: the plain mode averaged 0.21 avoidable material losses per turn at $0.000049 a turn. Deliberation averaged 0.61 losses per turn at $0.000391 — 8× the cost, 2.9× the blunders.
The README says only that no reliable strength gain was established. The data in the same repository says it played worse, which is a stronger and more useful statement than the one the author made.
The failure is legible, too. The write-up records the model correctly predicting the opponent’s punishing reply on several turns — and scoring the risk at 0.15, 0.40 and 0.47, all under the 0.65 threshold that would have made it reconsider. Across all 23 turns of the only paid run, the retry branch never fired once.
z9z9 from the stand-in; the run aborted with “API returned a move outside the legal move list” and exit code 1. There’s no retry, so one bad answer ends a paid game — the README says so.What has already rotted: four of the six published traces can’t be reproduced by the current code — fields added, a prompt version string that no longer exists. Two days was enough.
Not a tool, and barely a project: 1,300 lines of Python against 28 MB of published output, four commits in a day, then silence. Read it as what it is — a lab notebook someone published with the disappointing result left in, and the arithmetic left checkable.
GPL-3.0, correctly, because python-chess is. For the same instinct applied to a benchmark, see jev-benchmarks.
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.
fhshaik/typesafe-mario
Jev picks NES controller inputs for Super Mario Bros. from emulator state, with no screenshots.
dabit3/jev-experiments
Latency-focused demos from Nader Dabit, each app in its own directory with its own README. No licence file at the time of writing.
RomanSlack/jev-drone
Camera-only quadrotor in MuJoCo with Jev making judgment calls at about 2.5 Hz.
New Jev releases, pricing changes, and the best new projects, once a week. No spam; unsubscribe anytime.
Powered by Buttondown. See our privacy policy.