Jev chess: you play White, Jev plays Black
Every Jev chess move is a Choice over the legal moves in the position. Code keeps the rules; Jev only picks. Latency and cost show up beside each reply — the same story as the measured pricing page, in a shape you can watch.
Moves
- Make a move as White to start.
How a Jev chess move is chosen
After each of your moves the browser sends the position to this site's server as a FEN string. Everything there is code until the last step:
- chess.js rebuilds the position and lists every legal move. An invalid FEN or a finished game is turned away before any call is made.
- If there are more than
48legal moves, a small heuristic keeps the 48 most forcing: mates first, then promotions, captures and checks, with a nudge for central squares and knights or bishops. With 48 or fewer, every legal move goes through untouched. The cap is about cost, not capacity — Choice accepts up to 255 options — since every option is input on every call. - Each surviving move becomes an option. Its key is the move in long algebraic notation, such as
g8f6; its description spells out the standard notation, any capture or promotion, and the squares:Nf6 — g8→f6. - Jev answers one Choice question — which move should Black play now — and the server plays its pick with chess.js before returning the new position.
This site's key pays for every reply, so the route answers at most 30 moves a minute for one visitor and 2,000 a day for everyone.
What Jev sees in the position
The state is four short blocks of text: the FEN, a line saying Black is to move, a line of guidance, and chess.js's text drawing of the board. That line is all the strategy it is given — pick the strongest legal move, preferring sound development, centre control and tactics when they are available.
What it does not get matters as much. There is no move history beyond what a FEN records, no engine evaluation, no search tree and no second look: one call, one distribution over the options, one move. Whatever lookahead happens has to happen inside that single forward pass.
The option wording carries more weight than it looks. In a Choice question the descriptions are the whole prompt surface, which is why every move arrives with its notation and squares spelled out rather than as a bare code. In the game benchmark each move came with nothing but its own label, which leaves this model almost nothing to reason over.
The readout beside the board
- Latency is the server's stopwatch on the model call, so your own connection is not in it.
- Cost is the dollar figure the upstream route reported for the move, or a dash when it reports none.
- Confidence is Jev's own, to three decimals. “heuristic fallback” appears beside it only when the answer could not be used at all.
- Model is the id that actually answered, which depends on the route:
jev-1.13.0on TypeSafe's API,typesafe/jev-1.13-20260917through OpenRouter. - Top candidates are up to six moves with the probability Jev gave each, and the move list keeps latency and cost against every reply.

Things worth trying against it
The board tells you more when you set it a question. A few Jev chess experiments worth a game each:
- Leave a piece hanging. The capture is among the options and its description says so, so you can see how much probability Jev puts on taking it.
- Give check. Black's legal moves usually shrink to a handful, which shows how the distribution behaves when the option set is small.
- Compare a quiet position with a forcing one, and watch whether the confidence moves with it.
Why the rules stay in code
Jev cannot make an illegal move here, and not because it has learned the rules: it is only ever shown legal ones. If its named choice is not one of the options, the server plays the option with the highest probability instead; only when no probability is usable does a capture-and-check heuristic pick. Low confidence does not override anything — Jev's pick is played however unsure it is, and the number is there for you to read.
That split is the pattern worth taking away: code enumerates, the model chooses, code acts. It is the same shape as tool selection in an agent, where the list of tools plays the part of the legal moves.
What a Jev chess game proves, and what it does not
Watching Jev play chess shows the mechanics clearly: each move is one typed decision, with a probability for every option and the latency and price of that decision printed beside it.
It does not show that Jev plays good chess. Nothing searches ahead, and the evidence we have points the other way. When we tried chess in the game benchmark, 7 of 10 games hit the turn cap and 761 calls had their state trimmed to fit, so it was left out of the results rather than scored. Across the 8 games that were scored, Jev came out ahead of a first-legal-move bot in 2, behind in 1, and level in the other 5. TypeSafe frame their own game demos the same way: they are about following instructions at speed, not about winning.
Jev chess FAQ
Does Jev search ahead like a chess engine?
No. Each move is one Choice call over the legal moves, with no search tree and no second pass. The rest of the chess logic is code: chess.js enforces the rules, and small heuristics trim positions with more than 48 legal moves and stand in when no usable answer comes back.
Can Jev play an illegal move?
No. It is only ever offered legal moves generated by chess.js, and the server checks the pick against that list before playing it.
Which side does Jev play?
Black. You play White and move first; each of your moves sends one request for Black's reply, and the Ask Jev to move button sends it again if a request fails.
How much does one Jev chess move cost?
Only the input is billed, at $0.042 per million tokens, and output costs nothing. The Cost row shows what the route reported for each move, or a dash when it reported nothing.
Is this Jevfish?
No. Jevfish is a separate demo that inspired this one. This board runs on this site's own server, and the site is not affiliated with TypeSafe AI.