Joso Škarica

Project

Experimental

Kibitz

Chess PGN Analyzer

Paste a PGN and get a coach-level review — Stockfish finds the critical moments, OpenAI explains them in plain language.

Kibitz — Chess PGN Analyzer — main interface

What it is

Kibitz is a game review tool for chess players who want more than a blunder count. Paste any PGN and it runs the game through Stockfish to identify the critical moments — then passes those to OpenAI, which returns coach-style explanations in plain language.

Each analysis produces a game summary, a list of critical moments with move-by-move commentary, a mistakes breakdown, and a set of targeted training tasks. Analyze multiple games and Kibitz surfaces recurring patterns: your weaknesses across games, your strengths, and a personalised study plan.

Why experimental

The project sits at the edge of what both tools do well. Stockfish is deterministic and precise; OpenAI explanations vary depending on the position's complexity. Some analyses are genuinely insightful, others more generic. Kibitz is honest about that — it's a proof of concept built to explore whether the combination is useful, not to claim it always is.

How it works

  1. Paste a PGN and select which side you played
  2. Stockfish evaluates every position and flags evaluation swings
  3. Critical moments are extracted and sent to OpenAI with positional context
  4. OpenAI returns a summary, critical moment commentary, mistakes, and training tasks
  5. Analyze more games and Kibitz identifies patterns across them — weaknesses, strengths, and a study plan

Stack

  • Next.js and TypeScript
  • Stockfish via WebAssembly for engine analysis
  • OpenAI API for natural language explanations
  • Tailwind CSS

Screenshots

Kibitz — Summary, critical moments, mistakes, and training tasks
Summary, critical moments, mistakes, and training tasks
Kibitz — Your patterns — recurring weaknesses and strengths across games
Your patterns — recurring weaknesses and strengths across games
Kibitz — Strengths and study plan
Strengths and study plan

What I learned

  • Stockfish gives centipawn evaluations. OpenAI needs narrative context. Passing raw numbers across that boundary produces vague commentary. I had to build an intermediate layer — board snapshots with piece positions, captures, and trade sequences — so the LLM had enough material to say something specific. The seam between deterministic and probabilistic systems is a design problem, not a plumbing one.
  • Single-game analysis is useful but forgettable. Cross-game pattern detection — “you keep losing piece coordination after winning material” — turned out to be the feature that makes repeated use worthwhile. The value wasn't in one analysis; it was in what emerged across many.
  • Some positions produce sharp, specific coaching. Others produce generic advice. I couldn't fully control which was which, and that inconsistency taught me more about LLM limitations than any benchmark would have.
  • Building something you know is imperfect and shipping it anyway is a different skill than building something polished. Both matter. This project exercised the first.

Next steps

  • Interactive board for stepping through analysis move by move
  • Better positional context passed to OpenAI for more specific explanations
  • User accounts to persist and revisit past analyses