Chess Puzzles
Chess Puzzles logo: a board with the winning move highlighted

Sharpen your chess tactics, one move at a time

Solve thousands of real puzzles from the Lichess database on your Android phone. Find the best move — the rest plays itself.

Free & open-source · Android 7.0+ · no account, fully offline

Built for focused practice

No menus to wade through, no sign-up. Open the app and you are already solving.

🧩

Real Lichess puzzles

Thousands of tactics sampled from the Lichess Open Database (CC0).

🎯

One move to find

Each puzzle announces its goal — "checkmate in 2" or "win material". Spot the best move, then watch the opponent reply.

🎚️

Pick your level

Easy, Medium or Hard — jump between rating bands with one tap.

🔥

Streaks & progress

Your solved count and streak are saved on-device, so you pick up where you left off.

📴

Fully offline

No account, no network. Every puzzle ships inside the app.

🌗

Day & night theme

Follows your system dark mode, or pick Auto/Light/Dark in the app. Night mode dims the board for comfortable play.

👆

Tap or drag

Move pieces by tapping squares or dragging — a smooth custom Compose board.

Free & open-source

Apache-2.0 licensed. No ads, no tracking, ever.

How it works

Open a puzzle

A real game position appears with its goal — checkmate in 2, win material, or save the game. One side is to move.

Find the best move

Tap or drag the piece. A wrong move just lets you try again.

Watch it play out

The opponent answers automatically until the puzzle is solved.

Keep your streak

Solve the next one. Your progress is saved on-device.

See it in action

A chess puzzle: white to find the winning move
A puzzle to solve
Night mode: a chess puzzle with dimmed board and readable pieces
Night mode — easy on the eyes
A solved chess puzzle with the streak counter updated
Solved — streak saved

Open source, built from the command line

A multi-module Kotlin project — a pure-JVM chess engine and a Jetpack Compose UI — with 100% test coverage. Read the source and build it yourself.

Kotlin Jetpack Compose Android 7.0+ chesslib 100% tested Apache-2.0