Install Guide
Get ChessBot running in under 5 minutes. You'll need Git, Python 3, and Chrome.
0 Prerequisites
- Google Chrome (or any Chromium-based browser — Edge, Brave, Arc, etc.)
- Git — git-scm.com/downloads
- Python 3.6+ — python.org/downloads
1 Clone the Repository
Open a terminal and clone the ChessBot repo:
git clone https://github.com/matisseduffield/chessbot.git
cd chessbot
This gives you everything — the extension source, the WebSocket server, Stockfish binaries, opening books, and tablebases.
2 Start the Server
Run the WebSocket server that connects the extension to Stockfish:
python server.py
You should see output like:
ChessBot WebSocket Server
Stockfish engine loaded
Listening on ws://localhost:8765
8765 by default. It communicates with Stockfish via UCI protocol and relays analysis back to the extension over WebSocket. The dashboard UI is served on localhost:8080.
3 Load the Extension
- Open Chrome and go to
chrome://extensions - Enable Developer mode (toggle in the top-right corner)
- Click "Load unpacked"
- Select the
chessbot/extensionfolder from the cloned repo
The ChessBot icon should now appear in your extensions bar. Click it to open the popup and verify the connection status shows "Connected".
4 Start Playing
Open any supported chess site:
Start or load a game. ChessBot automatically detects the board and begins analysis. Best-move arrows and the eval bar appear directly on the board.
5 Using the Dashboard
Open localhost:8080 in your browser to access the full dashboard. From here you can:
- Configure engine settings — depth, MultiPV lines, hash size, threads
- Toggle analysis overlays — arrows, eval bar, WDL bar, opponent arrows
- Set up auto-move with humanized delays and suboptimal move chances
- Enable training mode with progressive hints
- Choose opening books and endgame tablebases
- Pick an accent color to theme the entire UI
All settings are saved automatically and persist across sessions.
6 Hotkeys
7 Troubleshooting
Popup shows "Disconnected"
Make sure server.py is running in your terminal. Check that nothing else is using port 8765. The server must be running before the extension can connect.
No arrows appear on the board
Refresh the chess page after starting the server. Check the extension popup — analysis must be enabled (not paused). Some ad blockers may interfere with the content script injection.
Engine seems slow
Open the dashboard and check the engine settings. Lower the depth or reduce MultiPV lines if your CPU is struggling. You can also increase the thread count if you have a multi-core processor.
Variant not detected
ChessBot auto-detects the variant from the page. If it's not picking it up, try refreshing. For Fairy-Stockfish variants, ensure the Fairy-Stockfish binary is in the expected path (check the server terminal output).