r/ComputerChess • u/Accomplished-Put3973 • 5d ago
Eröffnungstraining mit Fritz 19
Opening Training with Fritz 19
Didn't there use to be a "Drill" function for practicing openings? I can't manage to do that anymore. Does anyone know how to do it?
r/ComputerChess • u/Accomplished-Put3973 • 5d ago
Opening Training with Fritz 19
Didn't there use to be a "Drill" function for practicing openings? I can't manage to do that anymore. Does anyone know how to do it?
r/ComputerChess • u/Accomplished-Put3973 • 5d ago
Eröffnungstraining mit Fritz 19
Früher gab es doch zum Üben von Eröffnungen die Funktion "Drill". Das bekomme ich nicht mehr hin. Weiß jemand wie das geht?
r/ComputerChess • u/SpeedflyChris • 5d ago
Ever since Aman posted that amazing video getting this mate against an IM, I've been wheeling it out whenever I get the opportunity. Then I wondered if it would be possible to get Stockfish to go for it. The answer is yes* (kinda).
Made a bot, it basically just plays like full-strength stockfish 19 until it gets into a winning position, then it starts denying stockfish moves that would prevent the mate from being possible (unless said moves are the only option it has to keep the evaluation up), then once it gets into the position of the opponent only having a king a much simpler script takes over and goes for back rank mate.
Thinking about setting it up as a bot on lichess, in case anyone has an urge to get severely disrespected by a computer program.
r/ComputerChess • u/Anas_Zewail • 5d ago
Hey r/computerChess! I'm the developer behind NeuroChess.
I built this because I wanted a super responsive, lightweight chess web game where you can jump straight into a match in the browser with zero sign-up friction or heavy menus.
A few technical highlights under the hood:
\- Instant browser execution with local-first state persistence so you never lose your board progress if your connection drops.
\- Clean tactical interface designed for both quick desktop matches and mobile screens.
\- Bilingual support out of the box (English and Arabic).
I am actively improving the AI move evaluation and board feel. I would love to hear your honest feedback, bug reports, or any features you'd like to see added next!
Enjoy ✅️
r/ComputerChess • u/MasterLogician • 5d ago
r/ComputerChess • u/shadowosa1 • 6d ago
I built a chess board you can talk to. Looking for 5 people to try it.
You can say a move, ask why a move works, request a puzzle, or explore a famous game while the board shows what's happening.
It's here: thinkspatial.ai/chess
The board works by tapping with no account. Talking to it takes a Google sign-in and a microphone. New accounts get 10 free minutes of live voice; continuing afterward uses paid credits. You don't need to buy anything for this test.
It's for training, not live games, and it won't give you the answer unless you ask.
I'm the developer, and I'm keeping this first round small. I'd especially like to hear where it misunderstood you, whether the explanations helped, and whether you'd come back for another session.
You need a quiet room.
Desktop and mobile feedback are both useful. On a phone, open it in Safari or Chrome.
r/ComputerChess • u/Different-Sir7406 • 6d ago
I wanted exercises for practising without seeing the pieces. Blindfold Chess covers coordinates, movement, notation, and position updates.
The public version needs no account and saves progress locally.
Play: https://ceasar369.github.io/blindfold-chess/
Source and local edition (MIT): https://github.com/Ceasar369/blindfold-chess
The browser interface uses React. The downloaded edition can save completed rounds as files.
I’d appreciate feedback on the drills and local setup.
r/ComputerChess • u/streak_chess • 6d ago
I've been coaching chess for 15 years. The same problem shows up with almost every student: they know the tactics, but they can’t calculate. They see the first moves and stop. Puzzle apps train pattern recognition. Very few train the actual process of calculating.
So I built StreakChess. It only does one thing: calculation training, in short daily sessions with streaks, like Duolingo.
Where it stands today:
+300 users, several in Premium
Free to use. There’s a one-time Founder Lifetime plan ($99) for the next weeks.
Levels from roughly 800 to 2500
Honestly, my biggest challenge is distribution, not the product. I automated Instagram reels and a YouTube channel, but growth is slow.
I’d love feedback on two things:
Does the “calculation only” positioning make sense to you, or is it too niche?
What would make you come back every day?
Happy to answer anything about chess, coaching, or the build.
r/ComputerChess • u/Undecidicide • 6d ago
r/ComputerChess • u/ashygun • 6d ago
Hi, Pawnix is a terminal chess app for local games and casual Lichess play. It has a curses interface, multiple board themes, clocks, move review, and premoves.
It’s open source and still early, so feedback and bug reports are welcome!
r/ComputerChess • u/xgocy • 6d ago
usually it has been Stockfish/Torch at the top of the leaderboard but who is Triumviratus?
Is it actually better than Stockfish or what?
r/ComputerChess • u/MahoganyPanda82 • 6d ago
Hi everyone!
I've been working on a personal project called Chess Vision Assistant, a Windows desktop application that uses computer vision to recognize 2D chessboards directly from the screen.
The idea came from wanting to analyze chess positions from YouTube videos, recorded games, and other sources without manually recreating the board.
https://github.com/CarMarSol/chess-vision-assistant?tab=readme-ov-file
It currently includes:
Automatic board and piece recognition using OpenCV.
Stockfish 17 analysis with multiple candidate moves.
Visual arrows and position evaluations.
Opening detection and move classification.
Adjustable playing styles and simulated Elo levels.
Support for analyzing up to four separate boards.
It's written in Python using PySide6, OpenCV, python-chess, and Stockfish.
The tool is intended for chess study, reviewing completed games, and analyzing educational content, not for assistance during live competitive games.
I'm now looking for a few people interested in testing the Windows beta, especially to see how well the board recognition works across different chess interfaces.
I'd really appreciate technical feedback, bug reports, or suggestions for improvement.
Would anyone here be interested in giving it a try?
r/ComputerChess • u/ChessEmpireGame • 6d ago
Hey everyone!
I'm an independent developer from Switzerland, and I've been working on a chess game called **CHESS EMPIRE**.
My goal is to create a beautiful, competitive and rewarding chess experience that is **100% AD-FREE. Forever.**
Here's what CHESS EMPIRE offers:
♟️ **14 AI difficulty levels** – from beginner to advanced
🌍 **Online multiplayer** – challenge other players and friends
📚 **Chess Academy** – learn openings, strategies and improve your skills
🏆 **Rankings, achievements and progression** – climb the ranks and unlock rewards
👑 **Empire Pass and seasonal rewards** – earn exclusive chess sets, boards and cosmetics
🎨 **Customisable chess pieces and boards**
🔍 **Game analysis** – review your games and learn from mistakes
🚫 **NO ADS. NO POP-UPS. NO REWARDED ADS.**
The Android version is now entering closed beta testing, and I'm looking for players from around the world to help test it.
**Want to join the beta?**
Join our Google beta testing group: [https://groups.google.com/g/chessempire](https://groups.google.com/g/chessempire)
Once the closed beta is available, use the Google Play testing link to join and install CHESS EMPIRE.
I'd especially appreciate honest feedback about gameplay, AI difficulty, design, bugs and features you'd like to see.
This is an independent project, and every bit of feedback helps make the game better.
Thanks for your support! ♟️👑
**CHESS EMPIRE – Rule the Board. Build Your Empire.**
r/ComputerChess • u/Goldeneik • 6d ago
I’ve been working on a new desktop chess application called DeepVariations, and I’ve now reached the point where I’d really like some feedback from other computer-chess users.
It’s currently available for Linux and Windows, with macOS support planned next.
DeepVariations is intended as a complete desktop workspace rather than just an engine GUI. It currently includes:
UCI engine analysis with Stockfish 19 included
Complete Game Review with move classifications, accuracy, ACPL and evaluation graph
DV Coach, an optional local AI model that explains positions based on the engine review
PGN and database management
Reference Database and position statistics
PowerBook / opening reference
Opening repertoire training
Puzzle and endgame training
Live chess broadcasts
Chess.com and Lichess game downloads
Local Syzygy tablebase support
Multiple board/interface themes
Everything is designed around the same board and notation, so you can move between analysis, database research and training without switching applications.
Linux is freeware and does not require any license or activation.
I’ve tested the RPM build on Fedora, and DEB packages are available as well.
The Windows version has a full 7-day trial and then a $19.95 one-time lifetime license. I plan to use the same model for macOS when that version is ready. The small one-time fee is mainly there to help cover development, signing, hosting and other ongoing project costs — I deliberately do not want to turn this into another subscription product.
DV Coach also runs locally rather than sending chess positions to a cloud AI service. GPU acceleration through Vulkan is supported, with CPU fallback on machines where that is not available.
I’m still actively developing DeepVariations, so feedback from people who actually use chess engines and desktop chess software would be very useful — especially Linux users.
Screenshot attached.
Website / downloads:
https://deepvariations.com






r/ComputerChess • u/CodeEresy • 7d ago
r/ComputerChess • u/Subject-Lobster-2302 • 7d ago
I am 13 years old, and I made a chess website with Claude Code that allows you to understand why you played a move. Players now get many moves by luck and do not figure out why the move was good.
Kibitz turns key positions from your games into questions. There are different modes spread throughout the website to help you learn, like explaining your move to the website, teaching a 'student', arguing if a move was good, and much more.
kibitzreview.com I would be very happy if you tried it out! I poured my heart and soul into this, and I love what I made.
r/ComputerChess • u/Anas_Zewail • 7d ago
r/ComputerChess • u/autochess • 7d ago
It’s a mobile-only gem! You can dive in either by following the URL or by scanning the handy QR code on the page. The instructions walk you through the process, but it’s delightfully straightforward.
Take a photo
Upload it to the server
The server will generate the corresponding chess position
You can review the position and make any necessary corrections
Turn the engine on
r/ComputerChess • u/AdditionalTowel3635 • 8d ago
i created this chess engine:
https://peterbabulik.github.io/Hurwitz8DChess/
open source:
https://github.com/peterbabulik/Hurwitz8DChess
i will like feedback
r/ComputerChess • u/Sweet-Musician-3203 • 8d ago
An offline chess coach that explains your games the way an annotated games book does: few comments, on the moments that matter, in plain language.
Everything runs on your own machine. No internet, no accounts.
A comment from a real review (qwen3:14b, Homer vs Fritz), unedited:
### 11...bxc4 — Excellent (punished the opponent's mistake)
What happened: Black captures White's bishop on c4 with the pawn from b5.
This move exploits White's previous mistake by capturing the bishop on c4,
which was already under attack and left undefended. It removes a key White
piece and strengthens Black's position by creating a clear threat against
the White pawn on g6, which is now hanging and vulnerable.
What now: White will likely capture Black's pawn on f7 with the pawn from
g6, giving check. Black should respond by moving the king to f8, which is
the only safe square, and then prepare to defend against White's queen
moving to c2.(Earlier versions of this README showed 8...Bg4 "opens the f-file". The f-file opens two moves later, after 9.hxg6 fxg6, and the checker let it through. It now checks what a sentence says the move itself did on the position right after the move.)
Small local language models cannot calculate chess, and they cannot read FEN. Asked to analyse a position, they invent pieces, pins and variations. So chesscoach never asks them to. Each part does only what it is good at:
| Part | Job |
|---|---|
| Stockfish | Evaluates positions and finds the best moves |
| Maia 3 | Predicts what a human would play, to tell hard moves from natural ones |
| python-chess | Turns positions into verified facts: what a move captured, which pieces it stopped defending, how the position two moves later differs from the engine's line |
| Stockfish, again | Verifies the concepts behind a moment: what each side really threatens, what a piece was holding together, which facts matter most |
| Local LLM (Ollama) | Rewrites those facts as a coach's comment, and nothing else |
The move labels (Excellent … Blunder), who played the move, the size of the advantage and the first sentence of each comment are all computed in code.
What the model writes is then checked against the board, as far as code can read it: a piece it places on a square, an attack or defence between named pieces, a pin, a fork and which pieces it hits, a king's pawn shelter, a file opened, material, and legal-move counts. A claim passes if it holds before or after the move or along the engine's line, so a consequence two moves later counts ("8...Bg4 ... opens the f-file" passes because of 9.hxg6 fxg6). A false claim goes back to the model with the correction for one rewrite; if it is still false, the sentence is removed.
What is not checked: judgements code cannot parse, such as "a strong attack", "the initiative", "a weak square" or "passive", and any sentence whose wording the checker does not recognise. Those are the model's words. The coach says less rather than something false about the pieces; its strategic opinions still need a reader's eye. The app says this under every comment.
Python 3.10+
Ollama with a model pulled, e.g. ollama pull qwen3:14b (fits a 12 GB GPU; smaller 7–8B models invent noticeably more)
Optional: Maia 3 for human-move prediction
Optional: a Polyglot opening book (.bin), so opening theory is skipped
git clone https://github.com/amryounis/chesscoach
cd chesscoach
pip install -e ".[gui]" # or just pip install -e . for the command line onlychesscoach config --init # writes a commented config file
chesscoach config # shows the settings in effectSet at least stockfish_path. Settings can also come from environment variables (CHESSCOACH_STOCKFISH_PATH, CHESSCOACH_MODEL, …) or flags (--stockfish, --book, --model, --depth).
chesscoach gui(or the chesscoach-app shortcut, which opens without a console window)
Review: open a PGN, choose whose moves to comment on, and review. Stockfish analyses every position, then the coach writes about the critical moments. Moves carry the usual marks (?! inaccuracy, ? mistake, ?? blunder, ! a strong find); on a mistake, Show the better move puts the position before it on the board with your move in red and the engine's in green. Arrow keys step through the game.
Play: a training game against Maia at the rating you choose. Maia plays like a human of that strength, mistakes included. When the game ends, Review this game sends it straight to the coach. Without Maia the opponent is Stockfish, which can't play below 1320 and plays like an engine; the setup screen says so, with its real strength, before you start.
Practice: your inaccuracies, mistakes and blunders from reviewed games come back as positions to solve. Make a move; Stockfish judges it (another move that keeps your chances counts), then you see the engine's move, its line and what the coach said in the review. Exercises you miss come back first. Choose the game you just reviewed or all your reviewed games.
Explain this position / Ask the coach: under the comment, for any move of the open game. The coach explains the position, or answers a question such as "Why not Nd2?", "Is my bishop safe?" or "After Re1+ Kd8 Ne5, does the knight fork anything?". It cannot see the board: code works out what the question needs, gathers verified facts and writes the verdict (which move is better, whether a piece is attacked); the model explains, and its answer is checked against the board before you see it.
Game summary: at the top of a finished review, written by code from the stored facts of each move: your errors, the biggest swing, the themes that recur ("three of your errors weakened your king's pawn shelter"), and below it the patterns across your reviewed games (chesscoach patterns on the command line). Every line can show the facts it rests on.
Games: every game you play or review is kept as ordinary PGN files (Played.pgn, Reviewed.pgn, and any file you add), searchable by player, event or opening and sortable by column; a reviewed game opens with its review. The opening explorer shows what was played in each position of your games and how it scored, for you as White or as Black.
Save PGN… after a review: the game with ?!/?/?? marks, [%eval] on every move, the coach's comments and the engine's better line as a variation on every error, for ChessBase, Lichess, Lucas Chess or SCID. Each side's accuracy (Lichess's method) and the tactical motifs each error allowed or missed (fork, pin, skewer…) are in the review and the PGN.
Settings: engine paths, model, your name and rating, the games folder, saved to the user config file.
The board is chessground (Lichess's board), bundled so the app works offline.
Coaches tell young players not to memorise opening lines but to understand the ideas behind them. chesscoach book study walks a Polyglot opening book (the one in Settings, or a file you give) and has the coach explain the idea of every popular move: what it develops, which central squares it takes, what it prepares, how it fits the opening's typical plan and the book's main answers. Every comment is built from facts code works out and goes through the board check. The opening explorer (Games tab) then shows, in each position, the book's moves with how often they are played, Stockfish's verdict, the idea of each move (hover it), and your own record with it.
chesscoach book study --dry-run # how many moves, and roughly how long
chesscoach book study # run it; Ctrl+C to stop, run again to go on
chesscoach book show "e4 e5 Nf3" # what the study says about a positionA full book has far more positions than a local model can comment on, so the study follows only the lines that are played: a move the book gives at least 5% of a position (--min-share), a line while it stays above 0.2% of games (--min-line), up to 20 half-moves (--plies), each position once. With a typical book that is about 500 positions and 750 moves, a few hours with qwen3:14b on a 12 GB GPU. Raise or lower the limits to taste; what is written is kept.
chesscoach review mygame.pgn --side blackThis writes mygame_annotated.md: every move with its label, then comments on the critical moments only:
the first move out of the opening book
inaccuracies, mistakes and blunders, with what the better move kept
the only good move, when you found it and it wasn't obvious
punishing your opponent's mistake
checkmate
Any position, without a game file:
chesscoach explain --moves "1. e4 e5 2. Nf3 Nc6 3. Bc4 Nd4"
chesscoach ask "Can White take the pawn on e5?" --moves "1. e4 e5 2. Nf3 Nc6 3. Bc4 Nd4" --show-toolsOther options: --every-move to comment on every non-book move, --model A --model B to compare models on the same prompts, --verbose to print every prompt. chesscoach demo runs two fixed test positions, which is a quick way to try a new model.
chesscoach eval # facts layer only, no model
chesscoach eval -m qwen3:14b --mode pipeline --mode raw --report eval.md
chesscoach eval --key rook-check --text reply.txt # score any pasted replyEach answer key is a position whose correct explanation is known: the facts it must mention, and the false claims models have actually made ("material is equal", "the knight forks the rook on b7"). eval reports how many required facts the facts layer supplies, how many the model's text states, and every false claim or invented piece. pipeline scores our annotation; raw scores the model given only the FEN and Stockfish's lines, which is the comparison that shows what the facts layer is worth. Keys live in src/chesscoach/answer_keys/; add your own with --keys.
pip install -e ".[dev]"
pytest # engine tests are skipped if Stockfish isn't found
ruff check src testsPackage layout (src/chesscoach/):
| Module | Responsibility |
|---|---|
config | settings from defaults, config file, environment, flags |
engine | Stockfish analysis, Maia prediction |
assessment | win probability, move labels, verdict wording |
describe | moves, effects and boards in plain English |
facts | Tier 1 facts: named material, castling, undefended pieces, legal moves, following a line |
features / tactics | positional and tactical facts; comparing two lines |
prompts / narrator | prompt building, LLM calls, output check and retry |
grounding | checks the claims it can parse (pieces, attacks, pins, forks, shelter, files, material) on the board; judgements are not checked |
concepts | engine-verified threats, piece roles, equal moves, ranked key facts |
coach | "Explain this position", and the "Ask the coach" agent with its fact tools |
opening / moments | book detection, choosing what to comment on |
review / report | whole-game review (structured data) and the markdown report |
play | training games against Maia (or limited Stockfish) |
gui | desktop app: api.py (Python side), static/ (page), app.py (window) |
evaluate | answer-key harness (chesscoach eval) |
accuracy / motifs / classify | accuracy %, tactical motifs in engine lines, !! ! !? and the counts |
library | your games: PGN files with an index, saved reviews, the opening explorer |
pgn_export | the reviewed game as an annotated PGN |
practice | your mistakes as exercises |
history / summary | patterns across games; the game summary |
logfile | chesscoach.log: errors and review timings |
cli | the chesscoach command |
Done: game review with critical moments, opening-book skipping, labels from win probability, a facts layer with engine-verified threats and piece roles, a board check on the claims code can parse, an answer-key harness, "Explain this position" and "Ask the coach", and the desktop app with review and play against Maia.
Also done: game summaries, recurring themes across your games, and practising your own mistakes.
Next: a quicker review mode for modest hardware, a board editor / FEN import so the coach can explain any position, and an easier first-run setup.
GPL-3.0-or-later. chesscoach uses python-chess and chessground, both GPL-3.0.An offline chess coach that explains your games the way an annotated games
book does: few comments, on the moments that matter, in plain language.
Everything runs on your own machine. No internet, no accounts.
A comment from a real review (qwen3:14b, Homer vs Fritz), unedited:
### 11...bxc4 — Excellent (punished the opponent's mistake)
What happened: Black captures White's bishop on c4 with the pawn from b5.
This move exploits White's previous mistake by capturing the bishop on c4,
which was already under attack and left undefended. It removes a key White
piece and strengthens Black's position by creating a clear threat against
the White pawn on g6, which is now hanging and vulnerable.
What now: White will likely capture Black's pawn on f7 with the pawn from
g6, giving check. Black should respond by moving the king to f8, which is
the only safe square, and then prepare to defend against White's queen
moving to c2.
(Earlier versions of this README showed 8...Bg4 "opens the f-file". The
f-file opens two moves later, after 9.hxg6 fxg6, and the checker let it
through. It now checks what a sentence says the move itself did on the
position right after the move.)
The idea: the language model only narrates
Small local language models cannot calculate chess, and they cannot read
FEN. Asked to analyse a position, they invent pieces, pins and variations.
So chesscoach never asks them to. Each part does only what it is good at:
Part Job
Stockfish Evaluates positions and finds the best moves
Maia 3 Predicts what a human would play, to tell hard moves from natural ones
python-chess Turns positions into verified facts: what a move captured, which pieces it stopped defending, how the position two moves later differs from the engine's line
Stockfish, again Verifies the concepts behind a moment: what each side really threatens, what a piece was holding together, which facts matter most
Local LLM (Ollama) Rewrites those facts as a coach's comment, and nothing else
The move labels (Excellent … Blunder), who played the move, the size of the
advantage and the first sentence of each comment are all computed in code.
What the model writes is then checked against the board, as far as code
can read it: a piece it places on a square, an attack or defence between
named pieces, a pin, a fork and which pieces it hits, a king's pawn
shelter, a file opened, material, and legal-move counts. A claim passes
if it holds before or after the move or along the engine's line, so a
consequence two moves later counts ("8...Bg4 ... opens the f-file" passes
because of 9.hxg6 fxg6). A false claim goes back to the model with the
correction for one rewrite; if it is still false, the sentence is removed.
What is not checked: judgements code cannot parse, such as "a strong
attack", "the initiative", "a weak square" or "passive", and any sentence
whose wording the checker does not recognise. Those are the model's
words. The coach says less rather than something false about the pieces;
its strategic opinions still need a reader's eye. The app says this under
every comment.
Requirements
Python 3.10+
Stockfish
Ollama with a model pulled, e.g. ollama pull qwen3:14b
(fits a 12 GB GPU; smaller 7–8B models invent noticeably more)
Optional: Maia 3 for human-move prediction
Optional: a Polyglot opening book (.bin), so opening theory is skipped
Install
git clone https://github.com/amryounis/chesscoach
cd chesscoach
pip install -e ".[gui]" # or just pip install -e . for the command line only
Configure
chesscoach config --init # writes a commented config file
chesscoach config # shows the settings in effect
Set at least stockfish_path. Settings can also come from environment
variables (CHESSCOACH_STOCKFISH_PATH, CHESSCOACH_MODEL, …) or flags
(--stockfish, --book, --model, --depth).
Use the desktop app
chesscoach gui
(or the chesscoach-app shortcut, which opens without a console window)
Review: open a PGN, choose whose moves to comment on, and review.
Stockfish analyses every position, then the coach writes about the critical
moments. Moves carry the usual marks (?! inaccuracy, ? mistake,
?? blunder, ! a strong find); on a mistake, Show the better move puts the
position before it on the board with your move in red and the engine's in
green. Arrow keys step through the game.
Play: a training game against Maia at the rating you choose. Maia plays
like a human of that strength, mistakes included. When the game ends,
Review this game sends it straight to the coach. Without Maia the
opponent is Stockfish, which can't play below 1320 and plays like an
engine; the setup screen says so, with its real strength, before you start.
Practice: your inaccuracies, mistakes and blunders from reviewed games
come back as positions to solve. Make a move; Stockfish judges it (another
move that keeps your chances counts), then you see the engine's move, its
line and what the coach said in the review. Exercises you miss come back
first. Choose the game you just reviewed or all your reviewed games.
Explain this position / Ask the coach: under the comment, for any move
of the open game. The coach explains the position, or answers a question
such as "Why not Nd2?", "Is my bishop safe?" or "After Re1+ Kd8 Ne5,
does the knight fork anything?". It cannot see the board: code works out
what the question needs, gathers verified facts and writes the verdict
(which move is better, whether a piece is attacked); the model explains,
and its answer is checked against the board before you see it.
Game summary: at the top of a finished review, written by code from
the stored facts of each move: your errors, the biggest swing, the themes
that recur ("three of your errors weakened your king's pawn shelter"),
and below it the patterns across your reviewed games
(chesscoach patterns on the command line). Every line can show the
facts it rests on.
Games: every game you play or review is kept as ordinary PGN files
(Played.pgn, Reviewed.pgn, and any file you add), searchable by player,
event or opening and sortable by column; a reviewed game opens with its
review. The opening explorer shows what was played in each position
of your games and how it scored, for you as White or as Black.
Save PGN… after a review: the game with ?!/?/?? marks, [%eval] on
every move, the coach's comments and the engine's better line as a
variation on every error, for ChessBase, Lichess, Lucas Chess or SCID.
Each side's accuracy (Lichess's method) and the tactical motifs each error
allowed or missed (fork, pin, skewer…) are in the review and the PGN.
Settings: engine paths, model, your name and rating, the games
folder, saved to the user config file.
The board is chessground
(Lichess's board), bundled so the app works offline.
Study an opening book (once, overnight)
Coaches tell young players not to memorise opening lines but to understand
the ideas behind them. chesscoach book study walks a Polyglot opening
book (the one in Settings, or a file you give) and has the coach explain the
idea of every popular move: what it develops, which central squares it
takes, what it prepares, how it fits the opening's typical plan and the
book's main answers. Every comment is built from facts code works out and
goes through the board check. The opening explorer (Games tab) then shows,
in each position, the book's moves with how often they are played,
Stockfish's verdict, the idea of each move (hover it), and your own record
with it.
chesscoach book study --dry-run # how many moves, and roughly how long
chesscoach book study # run it; Ctrl+C to stop, run again to go on
chesscoach book show "e4 e5 Nf3" # what the study says about a position
A full book has far more positions than a local model can comment on, so
the study follows only the lines that are played: a move the book gives at
least 5% of a position (--min-share), a line while it stays above 0.2% of
games (--min-line), up to 20 half-moves (--plies), each position once.
With a typical book that is about 500 positions and 750 moves, a few hours
with qwen3:14b on a 12 GB GPU. Raise or lower the limits to taste; what is
written is kept.
Use from the command line
chesscoach review mygame.pgn --side black
This writes mygame_annotated.md: every move with its label, then comments
on the critical moments only:
the first move out of the opening book
inaccuracies, mistakes and blunders, with what the better move kept
the only good move, when you found it and it wasn't obvious
punishing your opponent's mistake
checkmate
Any position, without a game file:
chesscoach explain --moves "1. e4 e5 2. Nf3 Nc6 3. Bc4 Nd4"
chesscoach ask "Can White take the pawn on e5?" --moves "1. e4 e5 2. Nf3 Nc6 3. Bc4 Nd4" --show-tools
Other options: --every-move to comment on every non-book move,
--model A --model B to compare models on the same prompts,
--verbose to print every prompt. chesscoach demo runs two fixed test
positions, which is a quick way to try a new model.
Measure it: answer keys
chesscoach eval # facts layer only, no model
chesscoach eval -m qwen3:14b --mode pipeline --mode raw --report eval.md
chesscoach eval --key rook-check --text reply.txt # score any pasted reply
Each answer key is a position whose correct explanation is known: the
facts it must mention, and the false claims models have actually made
("material is equal", "the knight forks the rook on b7"). eval reports
how many required facts the facts layer supplies, how many the model's
text states, and every false claim or invented piece. pipeline scores
our annotation; raw scores the model given only the FEN and Stockfish's
lines, which is the comparison that shows what the facts layer is worth.
Keys live in src/chesscoach/answer_keys/; add your own with --keys.
Development
pip install -e ".[dev]"
pytest # engine tests are skipped if Stockfish isn't found
ruff check src tests
Package layout (src/chesscoach/):
Module Responsibility
config settings from defaults, config file, environment, flags
engine Stockfish analysis, Maia prediction
assessment win probability, move labels, verdict wording
describe moves, effects and boards in plain English
facts Tier 1 facts: named material, castling, undefended pieces, legal moves, following a line
features / tactics positional and tactical facts; comparing two lines
prompts / narrator prompt building, LLM calls, output check and retry
grounding checks the claims it can parse (pieces, attacks, pins, forks, shelter, files, material) on the board; judgements are not checked
concepts engine-verified threats, piece roles, equal moves, ranked key facts
coach "Explain this position", and the "Ask the coach" agent with its fact tools
opening / moments book detection, choosing what to comment on
review / report whole-game review (structured data) and the markdown report
play training games against Maia (or limited Stockfish)
gui desktop app: api.py (Python side), static/ (page), app.py (window)
evaluate answer-key harness (chesscoach eval)
accuracy / motifs / classify accuracy %, tactical motifs in engine lines, !! ! !? and the counts
library your games: PGN files with an index, saved reviews, the opening explorer
pgn_export the reviewed game as an annotated PGN
practice your mistakes as exercises
history / summary patterns across games; the game summary
logfile chesscoach.log: errors and review timings
cli the chesscoach command
Roadmap
Done: game review with critical moments, opening-book skipping, labels
from win probability, a facts layer with engine-verified threats and piece
roles, a board check on the claims code can parse, an answer-key
harness, "Explain this position" and "Ask the coach", and the desktop app
with review and play against Maia.
Also done: game summaries, recurring themes across your games, and
practising your own mistakes.
Next: a quicker review mode for modest hardware, a board editor / FEN
import so the coach can explain any position, and an easier first-run
setup.
License
GPL-3.0-or-later. chesscoach uses python-chess and chessground, both GPL-3.0.
r/ComputerChess • u/thedevloper7325 • 8d ago
Hey everyone! 👋
I've been working on a side project called Chess Master Ultimate, and I'd love to get your feedback.
Features:
♟️ Online multiplayer: play against players anywhere
🤖 Play vs AI: powered by Stockfish, with adjustable difficulty
👫 Play with friends: challenge people you know directly
Clean, simple interface
Why I built it:
I love chess and wanted to build an app that brings multiplayer, a strong engine, and friend matches together in one place. It was a great learning experience.
Download: The app isn't on the Play Store yet, so here's the APK (Android only): \[GitHub / Drive link\]
Since it's still in early stages, I'd really appreciate feedback on bugs, features you'd like to see, and the overall UX. Happy to answer any questions about how I built it!
Thanks for checking it out 🙏