Chess opening trainer
OpeningScrim turns your repertoire into something you can play against: opponents sampled from millions of real Lichess games at your level, honest verdicts on how you come out of the opening, and spaced repetition that keeps every line sharp.
Free demo, one click on the sign-in page. Engines run in your browser — nothing to install.
After 3.Bc4, this is what ~1600 players reply — and where your next opponent's move comes from.
That's the whole app. Everything below exists to feed this loop.
Record the openings you want to play as a move tree — or import a PGN and get chapters, like a Lichess study.
Play your prep against the moves real opponents choose at your level.
Short daily sessions keep your moves in memory and rework your mistakes.
Reports on your repertoire and your real games show you what to fix next.
Scrims
A scrim is a practice match for your openings. The opponent's moves are sampled from real games: Lichess players at a rating you choose, master games, one specific player, or Stockfish capped at a set strength. You face what people actually play — not just what books discuss.
The goal is not checkmate. When the game leaves your prep, you keep playing a few moves on your own, and the position you actually reach is what gets judged.
Italian Game · scrim
vs Lichess 1600
Left your prep at move 11
Builder
While you build, three panels weigh in: a cloud database of positions analyzed far deeper than any browser engine could manage, your local Stockfish for an instant second opinion, and a "what humans play" panel with win rates from millions of games. Build where they agree, investigate where they don't.
Chapters work like a Lichess study, and positions are identified by what's on the board — transpositions collapse into one line automatically instead of being drilled twice.
Cloud eval
ChessDB · analyzed deep
Stockfish
in your browser · depth 24
+0.3
3...Nf6 4.d3 Bc5 5.c3 d6
What humans play
Lichess 1600–1800
Practice
Every move of your repertoire becomes a flashcard scheduled with spaced repetition (FSRS): new lines come back often, solid lines rarely. The same line in two chapters is still just one card.
And every mistake the app catches — in a scrim, a bot game, tactics or an imported game — returns as a drill until you get it right twice in a row. Fix the line in your repertoire instead, and the drill retires on its own.
Due today
12Insights
None of them tell you to "study more". They point at specific moves.
Import your real games — from Lichess or a PGN — and each one is compared move-by-move with your repertoire: forgotten prep, unpunished surprise moves, positions where you had no answer at all. Ranked by how often they happen and what they cost.
The health report plays your entire repertoire against a chosen level and evaluates where every line ends up: better, balanced or worse — plus the common replies you haven't covered yet, and which of your lines carry the most risk.
14 common replies not covered yet
Enter a Lichess username or upload games, and you get a scouting report built from what that player personally does: their opening tree, where they usually go wrong, where they'd drag you out of prep. One click starts a scrim against their own moves.
Maia is trained on millions of human games to play like a person at each rating — with human mistakes, not an engine's dialed-down ones. Anchor a game to a repertoire to rehearse your prep before playing on.
Half the positions hide a winning tactic, half are quiet — real games never tell you which. You judge first, then prove it. Crying wolf costs you just like missing a real one.
Stockfish and the Maia nets run as WebAssembly right in your tab. Nothing to install, no waiting on a server engine.
Multi-game PGNs import as chapters; exports are clean one-game-per-chapter PGNs. Your repertoire is never locked in.
♞
Bring a PGN, pick a starter repertoire, or build from scratch. If you'd rather look around first, the demo account has data in it — one click on the sign-in page.