Play the Engine
Your move.
What is going on? Nothing much separates the two sides yet.
Review a Game
Every move of a game, checked by the engine right here in your browser, with the moments that decided it and a second try at each mistake. No account, no daily limit, and the game never leaves this page.
White
0
Black
0
Accuracy out of 100: how much of each side's winning chances its moves kept, move by move.
The moments that decided it
Every move
How It Thinks
Kibitz is an alpha-beta engine written in TypeScript and run in a Web Worker inside this page, so nothing you play is sent anywhere: no server, no account, no analytics. The game is saved in this browser after every move, so a reload, a crashed tab or a new version of the page picks it up where you left it.
The search is the standard club-engine stack, each part named so you can look it up: iterative deepening with aspiration windows, principal variation search, a 16 MB transposition table keyed by Zobrist hash, quiescence search ordered by most-valuable-victim, killer and history heuristics, null-move pruning, late-move reductions and a check extension. Depth is counted in plies, one side's turn each, so the plain view's "looked 6 moves ahead" is depth 12 in the engine detail.
The evaluation is material, Michniewski's piece-square tables tapered between middlegame and endgame, the bishop pair, pawn structure (doubled, isolated, passed), mobility, rook files and king shelter. A strong club player could have written it, so every reason in the plain view is one a person can argue with, and the detail view shows each one in pawns for both sides.
How strong it is, measured
160 games against Stockfish 19 with its strength limited to UCI_Elo 1900, 2000, 2200, 2500 and 2800, at 60 seconds plus 0.6 a move, the time control Stockfish calibrates that scale at. Eight openings, each played with both colours, on an Intel Xeon W-11855M laptop, 3 to 4 October 2026. Kibitz scored 56.5 points, so the maximum-likelihood fit puts level 8 at 2068, with a 95% interval of 2002 to 2134. That is Stockfish's computer-chess scale, not a FIDE or Lichess rating, and the lower levels are not rated. It is not Stockfish: full-strength Stockfish is more than 1,000 points stronger. Kibitz is the engine you can see into, and every game of the measurement ships with the code.
Reading a bound
The engine measures its first choice exactly. Every other move it checks only until it has proved that move is no better than the first, and then it stops, which is why it can look so far ahead in a second. The detail view writes that proof as "≤ +0.17" and draws it as a hollow bar: at most that good, measured no further. Your move against its move re-searches your move with nothing cut short, so the comparison is between two measured numbers.
How a review grades a move
Each position is searched for the time you chose, and a move is graded by how much it lost against the engine's own choice, in hundredths of a pawn: Best up to 10 (or its own move), Good up to 49, Inaccuracy 50 to 99, Mistake 100 to 199, Blunder 200 or more. A forced mate counts as ten pawns, so one oversight cannot swamp a game. Accuracy uses Lichess's published formula, which turns each score into a winning chance and each move into how much of that chance it kept; the game figure here is the plain average of the moves, where Lichess also weights by how sharp the position was, so its figures run a little lower.
What it does not have
No opening book, so the first moves come from evaluation alone. No endgame tablebases, so it sometimes takes the long way to a won ending. It is not Stockfish and will not try to be: Stockfish is far stronger and free in any browser. Kibitz is the engine you can see into, and its explanations are only as good as its search, so a reason it gives can be wrong about chess. It cannot be invented, because every reason is a number its own search produced.
Legality is proved by perft against the published node counts (start position 4,865,609 at depth 5; Kiwipete 4,085,603 at depth 4). The line under the moves is who was ahead after every move, capped at eight pawns; click it to go to that move. The opening name comes from the Lichess opening list.