A fully offline chess position evaluator and autoplayer for Windows and Linux — powered by ONNX and Stockfish.
A lightweight, privacy-first tool that reads a **2D on-screen chess board** (Chess.com, Lichess, WorldChess, etc.), evaluates the position locally with Stockfish, and (optionally) plays the best move automatically.
- Full pawn promotion support — handled automatically and reliably.
- Small under-the-hood improvements for cross-platform stability.
- Brand-new PyQt6-based frontend (replaces old Tkinter UI).
- Same workflow and shortcuts — just smoother and more stable.
- 100% Offline — all detection & analysis run locally.
- Automatic Stockfish Download (CPU-Optimized) — ChessPilot automatically detects your CPU features (AVX2, AVX512, POPCNT, etc.) and downloads the most optimized Stockfish build on first run.
- FEN Extraction — ONNX-based piece detector (Zai-Kun’s model).
- Stockfish Analysis — instant best-move suggestions.
- Auto Move Execution — applies engine moves to the GUI board.
- Manual Play — use Play Next Move to control timing.
- Automatic Promotion — follows Stockfish’s preferred choice.
- Castling Rights & Depth Control — flexible configuration.
- Retry Logic — failed moves automatically retried up to 3 times.
- Cross-Platform — AppImage/DEB for Linux, EXE for Windows.
The ONNX model (chess_detectionv0.0.4.onnx) is included inside all official AppImage, EXE, and DEB builds.
Windows may flag unsigned executables — this is common for small open-source projects.
If you see a warning:
- Verify the release on GitHub.
- Scan the binary on VirusTotal.
- Build from source (
python src/main.py) for maximum safety. - Only run if comfortable — or use a VM.
Place this file next to the executable to customize Stockfish:
# ChessPilot Engine Configuration
# Memory in MB (64–1024 recommended)
setoption name Hash value 512
# Number of CPU threads
setoption name Threads value 2Restart ChessPilot after editing.
PyQt6 is required for the UI.
- ONNX Model: https://github.com/Zai-Kun/2d-chess-pieces-detection
- VC++ Redistributable (Windows): https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist
- Stockfish Engine: https://stockfishchess.org/
Install system dependencies:
# Ubuntu / Debian
sudo apt install python3-pyqt6
# Arch Linux
sudo pacman -S python-pyqt6
# Fedora
sudo dnf install python3-qt6Wayland Users (Arch Linux only)
If you are running Wayland instead of X11, install the following:
sudo pacman -S wayland-utilsInstall Python dependencies:
pip install -r requirements.txtMake sure your Python virtual environment is activated if you are using one.
pip install -r requirements.txtIf you see errors about missing vcruntime or msvcp DLLs, install the latest VC++ Redistributable - here.
git clone https://github.com/OTAKUWeBer/ChessPilot.git
cd ChessPilot
pip install -r requirements.txt
python src/main.py- Choose White or Black.
- Set castling rights if needed.
- Adjust analysis depth.
- Pick Manual or Auto mode.
- (Press ESC to reopen color selection.)
- Windows — tested, EXE provided
- Linux — tested, AppImage & DEB provided (Wayland supported)
- macOS — not yet supported (looking for contributors)
Board detection is incorrect → Move the ChessPilot UI aside so the detector has a clear view of the board.
Stockfish didn’t download
→ Check your internet connection and firewall settings.
→ Alternatively, manually place a Stockfish ZIP or binary in the src/ folder.
PRs and issues are welcome.
Areas that need help:
- macOS packaging
- UI/UX enhancements
This project is under the MIT License.
Project & Dependencies
- Zai-Kun — ONNX 2D chess piece detector
- Stockfish Team — world-class chess engine
- Microsoft VC++ Runtime
- All contributors and testers

