A simple tool to view and solve puzzles from the lichess puzzle database.
I need to give a big thank you to lichess for creating the puzzle database, the project chess-engine which I used as a starting point for the GUI here, and the awesome Iced GUI library in which the interface is made.
Download the app from either: - The releases page - The latest build artifacts from the main branch (click on the most recent successful workflow run, then scroll down to the "Artifacts" section)
The app can download and extract the puzzles database automatically if you have an internet connection, but if you don't, you can manually extract and copy the database file ("lichess_db_puzzle.csv" from the lichess link above) to the "puzzles" directory.
To play you simply adjust the search to your needs, press "search" and a puzzle will be loaded, when you get it right, the next one will be immediatly displayed (you can disable this auto load in the settings).
If the move is a promotion you need to select the piece to promote to (in the search tab) before moving the pawn.
The search is a bit slow (especially when searching by opening, because it often needs to traverse the whole database) but I think it's important to use the cvs directly so users can easily replace the file if needed.
To build and run this project from source, you'll need to have Rust and Cargo installed. You can find instructions on how to install them at rust-lang.org.
Once you have Rust and Cargo installed, you can clone this repository and run the project with the following command:
cargo run --release
If you are on Linux and the application fails to launch, you might need to use the Open GL or software renderer to draw the window. Try running the application with either of the following commands:
WGPU_BACKEND="gl" cargo run --release (Open GL)
or
ICED_BACKEND="tiny-skia" cargo run --release (Software)
Are you using this app? I'd be very interested in knowing what's your use case and if there's any other feature that would be useful. Feel free to start a conversation in discussions (for general feedback/ideas) or to create an issue (to report bugs or specific feature requests).
I can't promise anything though, since this is just a hobby project (and the goal is to keep the app simple).
LICENSE for more information.$ claude mcp add offline-chess-puzzles \
-- python -m otcore.mcp_server <graph>