A fully offline chess position evaluator and autoplayer for Windows and Linux, powered by ONNX and Stockfish.
This release advances the project to v2.0.0 and keeps the previously introduced PyQt6 frontend while remaining intentionally minimal in behavioral changes. The core functionality is unchanged; the update focuses on a more polished, stable PyQt6 experience and small fixes under the hood.
Highlights:
- ✅ Version bumped to v2.0.0.
- ✅ PyQt6 GUI (continued — replaces Tkinter) — improved stability and polish.
- ✅ No workflow changes: FEN extraction, Stockfish analysis, auto-move execution, board flipping, castling toggles, depth control, retry logic, and ESC shortcut remain the same.
⚠️ Source-build users: ensure PyQt6 is installed (see prerequisites).
- Automatic Stockfish Download: Detects your CPU and downloads the best Stockfish build automatically.
- FEN Extraction: Local ONNX model (Zai-Kun’s 2D Chess Detection).
- Stockfish Analysis: Integrates Stockfish for optimal move suggestions.
- Auto-Move Execution: Plays the chosen move on your screen automatically.
- Manual Play: Click “Play Next Move” when you want to proceed manually.
- Board Flipping: Play as Black by flipping the board.
- Castling Rights: Toggle Kingside/Queenside castling.
- Depth Control: Slider to adjust analysis depth (default: 15).
- Retry Logic: Retries failed moves up to three times.
- ESC Shortcut: Press ESC to reselect playing color at any time.
- Cross-Platform GUI: Built with PyQt6 for a modern desktop UI.
- 100% Offline: No external API calls — all processing stays local.
The ONNX model (
chess_detectionv0.0.4.onnx) is bundled in official AppImage, EXE, and DEB builds. Stockfish will be downloaded automatically on first run.
You can fine-tune Stockfish’s performance using an engine_config.txt file next to the ChessPilot executable:
# ================================
# ChessPilot Engine Configuration
# ================================
# Memory used in MB (64–1024+ recommended)
setoption name Hash value 512
# CPU threads to use (1–8; match your CPU core count)
setoption name Threads value 2- Edit
Hashto adjust RAM (in MB) Stockfish uses. - Edit
Threadsto match your CPU cores. - Save and restart ChessPilot to apply settings.
PyQt6 is required when running from source.
# system packages (examples — adapt to your distro)
sudo apt install python3-pyqt6 # Ubuntu / Debian
sudo pacman -S python-pyqt6 # Arch Linux
sudo dnf install python3-qt6 # Fedora (package name may vary)Install PyQt6 via pip in your virtualenv:
pip install PyQt6pip install -r requirements.txtAssets Needed (Source only):
chess_detectionv0.0.4.onnx— included in binaries; if running from raw files, download from the detector release.
Windows Raw File Users Only: You may still need the Microsoft Visual C++ Redistributable if not already installed. Microsoft VC++ Redistributable
git clone https://github.com/OTAKUWeBer/ChessPilot.git
cd ChessPilot
pip install -r requirements.txt
# Add ONNX model if not using binaryFrom the project root:
python src/main.pyWorkflow:
- Choose White or Black.
- Enable castling rights if needed.
- Adjust analysis depth.
- Select Manual or Auto play.
(Behavior and shortcuts are unchanged — ESC still reopens color selection.)
- Windows: ✅ Tested
- Linux: ✅ Tested (including Wayland via
grim) - macOS: ❌ Untested (no macOS build; contributions welcome!)
See SHORTCUTS.md for a full list of hotkeys and actions.
Contributions welcome! Open an issue or submit a pull request. If you'd like to help port or test macOS builds, let us know.
This project is licensed under the MIT License. See LICENSE for details.
- Zai-Kun for the ONNX chess piece detector.
- Stockfish Team for the world’s strongest open-source engine.
