Promote to
A chess bot written in Python
Play at your level. Learn from every game.
Ten opponents from about 200 to 2700, a review of your biggest mistakes after every game, rated puzzles, short lessons, and a shared leaderboard. It's free, runs in your browser, and needs no sign-up.
It opens like an app and plays offline.
Made by Paul DePola, built with Claude Code.
How to play
-
Claim your name
Type it in Your name on the Play tab and choose a password. The name is then yours: nobody else can play under it, and you sign in with the password on your other devices. Your finished games count towards your record and rating on the Stats tab, and you can keep them private or stay off the scoreboard. Leave it empty to play without saving.
-
Pick an opponent
Choose one of the ten levels and a color, then press New game. Start low and move up when you begin winning.
-
Make your moves
Drag a piece, or tap it and then tap where it should go. You can also type moves like
e4,Nf3orO-O. New to chess? Turn on Coach mode and it rings any piece that can be taken for free. -
Read the review
When the game ends, the review shows your accuracy, the rating of players who play that accurately, and your biggest mistakes, each with the move you should have played. Tap one to see it on the board.
Ten opponents
Each level's rating was measured by playing it against Stockfish at fixed strengths, so treat the numbers as rough guides. The top three are named after two dogs and a cat: Summer is the bot at full stretch, and Titan and Pinky are Stockfish itself, held to their ratings.
What's here
Play
Games against the bot at any of the ten levels. Turn on coach mode to see which pieces can be taken for free, or ask for a hint. The page names the opening as you play.
Puzzles
Hundreds of tactics from real games, picked to match your puzzle rating, which goes up as you solve them.
Friend
Send a friend a link and play each other live, wherever you both are, or take turns on one device.
Learn
Eleven short lessons for newer players, from what the pieces are worth to forks, pins, skewers and basic checkmates, each with a puzzle.
Stats
Everyone who plays with a name, ranked by estimated rating. Each player gets a rating chart, badges to collect, and replays of their games.
How it works
Paul's Chess Bot is a small chess engine written in Python. It searches ahead with alpha-beta search, remembers positions it has already scored, and plays out every capture sequence before judging a position. On the public site your browser runs that same Python code with Pyodide, so the only thing sent anywhere is the result of a game you play under your name.
The code is open source under the GPL-3.0 license. The repository also has a terminal version, and a mode that plugs into chess apps like Cute Chess or Arena.
Credits
- Made by
- Paul DePola, built with Claude Code
- Chess rules
- python-chess by Niklas Fiekas
- Pieces
- Colin M.L. Burnett's set, as shipped with python-chess
- Python in the browser
- Pyodide
- Titan and Pinky
- Stockfish, in the browser with Nathan Rugg's Stockfish.js (GPL-3.0)
- Rating benchmark
- Stockfish