What is pawnbook?
pawnbook is a self-hosted chess trainer. The content it generates is drawn entirely from your own play: every game is analysed, every mistake becomes a drill card, and your opening choices build a personalised repertoire that coaches you in future games.
A single-player progression game whose content is generated by your own failures.
Design pillars
Mistakes are content. Every inaccuracy, mistake, and blunder you make in a real game becomes a puzzle in your personal drill queue. The worse you play, the more material you generate. There is no separate puzzle set to import or purchase.
Honest feedback. Numbers are given as numbers, not adjectives. The review page shows win-percentage loss per move, accuracy as a 1–100 score, and strength estimation as an Elo with an explicit standard error band. A single game has an irreducible noise floor of roughly ±250 Elo; the rolling estimate over 10 games is more reliable. The system does not soften these figures.
Human-shaped difficulty. The Maia family of opponents plays like humans at specific Elo levels — they make the same kinds of mistakes humans make, not the same kinds of mistakes engines make. Playing a Maia-1500 opponent at 1500 Elo produces losses that a 1500 player would realistically inflict, and the puzzles generated are those a 1500 player would realistically miss.
Respect player's time. Session shapes range from a 3-minute drill to a 45-minute deep session. The system tracks a day-streak but hides it if you prefer. The empty drill queue — every card graduated or not yet due — is the win state, not a broken screen.
Session loops
pawnbook operates on four nested timescales:
| Loop | Duration | What happens |
|---|---|---|
| Move | seconds | You play a move; the engine responds; the position is pre-evaluated in the background |
| Game | 10–30 min | A complete game; analysis runs post-game; new puzzle cards enter the queue |
| Session | 15–40 min | One or more games, optionally followed by the drill queue |
| Improvement | weeks | Elo rises or falls; the drill queue shortens; the opening repertoire adapts |
Session shapes — you do not have to complete the full loop every time:
- Drill-only: open the app, work through due cards, close. Under 15 minutes on a mature queue.
- One game: play a single game and skip the drill. The mistakes enter the queue for next time.
- Deep session: one or more games, post-game quiz on each, then the full due queue.
- Glance: check the dashboard Elo, due count, and streak. No game, no drill.
Opponent roster
Maia models
Maia is a family of neural networks trained to predict human chess moves at specific Elo levels. Each model was trained on games played by humans at approximately that rating on Lichess.
| ID | Type | Approximate Elo |
|---|---|---|
maia-1100 | Neural net (lc0) | 1100 |
maia-1200 | Neural net (lc0) | 1200 |
maia-1300 | Neural net (lc0) | 1300 |
maia-1400 | Neural net (lc0) | 1400 |
maia-1500 | Neural net (lc0) | 1500 |
maia-1600 | Neural net (lc0) | 1600 |
maia-1700 | Neural net (lc0) | 1700 |
maia-1800 | Neural net (lc0) | 1800 |
maia-1900 | Neural net (lc0) | 1900 |
maia-2200 | Neural net (lc0) | 2200 (optional) |
maia3-* | Neural net (Maia-3/UCI) | continuous Elo input |
Maia opponents make human-like mistakes. A Maia-1300 will miss a back-rank checkmate. A Maia-1800 rarely will. This makes them useful opponents for training: the puzzles they generate reflect moves a real player of that level would consider.
Stockfish levels
Stockfish opponents use reduced search depth to approximate specific playing strengths. Their tactical play is more precise than Maia at the same rating — they do not make the same kinds of blunders humans make, but they cannot see as deep into the tree.
| ID | Approximate Elo |
|---|---|
sf-1400 | 1400 |
sf-1600 | 1600 |
sf-1800 | 1800 |
sf-2000 | 2000 |
sf-2200 | 2200 |
sf-2500 | 2500 |
sf-2900 | 2900 |
sf-max | Maximum strength |
drawfish
drawfish is an unrated novelty opponent that plays for stalemate rather than checkmate. Games against drawfish do not affect your Elo. It requires a separate binary.
Anti-goals
These are things pawnbook intentionally does not do:
No multiplayer. The system is calibrated around your games against specific engine opponents. Importing games from external sources or playing against human opponents would break the analysis calibration and the repertoire loop.
No opening book trainer. pawnbook builds a repertoire from your own play, not from a master database. The goal is to coach what you actually play, not what theory says you should play.
No cloud sync. Your game history, puzzles, and repertoire are in a single SQLite file on your machine. You control it; you back it up.
No LLM commentary. Move annotations are numbers: win-percentage loss, centipawn loss, findability. There is no generated prose explanation of why a move was bad. The puzzle positions speak for themselves.