An open-source chess game built entirely in Python — play against Stockfish, a friend, or tackle Lichess puzzles. Now available as BOTH a desktop application AND a web version (zero install)!
- Stockfish Integration — Engine-driven gameplay across 8 difficulty levels plus custom ELO mode (100–3190)
- Local Multiplayer — Play against a friend on the same machine
- Lichess Puzzle API — Practice with an infinite stream of tactical puzzles
- Adaptive Puzzle Difficulty — Automatically adjusts based on your solve speed
- Opening Name Display — Identifies your opening in real time (Ruy Lopez, Sicilian Najdorf, and 60+ others)
- Post-Game PGN Export — Download any game to analyse on chess.com or lichess.org
- Rematch — Instantly replay against the same opponent with one click
- Eval Bar (Desktop Only) — Live evaluation bar shows who's winning throughout the game
- Move Sounds — Distinct audio cues for moves and captures
- Hints — Up to 3 engine-powered hints per game
- Takebacks — Undo moves with limits that scale with difficulty level
- Board Coordinates — a–h and 1–8 labels that flip with your perspective
- Seasonal Themes — Board themes that automatically change every month
- Board Themes — Multiple year-round colour options, cycle with the T key
- Anti-Cheat — Fullscreen lockdown during gameplay blocks external assistance (desktop only)
- Fully Offline — Works without an internet connection once installed (puzzles require internet, web version requires internet)
- Cross-Platform — Windows 10/11 (x86-64 & ARM64), Linux (x86-64 & ARM), macOS (Apple Silicon & Intel), and any device with a web browser
- Chess Variants — Chess960 (Fischer Random), King of the Hill,Three-Check,Atomic,Antichess,Blindfold,and Crazyhouse (All Versions)
- PGN Analysis & Resume (Desktop only) — Stockfish analyses each move quality; resume playing from any imported PGN
- Engine vs Engine — Watch Stockfish play against itself with adjustable thinking depth.
- Increment Time Controls — Choose a per-move time increment (e.g. +2s/move) from the menu. Works across all game modes and variants.
Play instantly in your browser — no installation required!
🔗 Play now: https://coder787-source.github.io/OmniChess/
- Stockfish 18 engine with 8 difficulty levels (upgraded from Stockfish 10)
- Chess variants – Chess960 (Fischer Random), King of the Hill,Three‑Check,Atomic,Antichess,Blindfold,and Crazyhouse
- Daily puzzles from Lichess
- Local multiplayer (hotseat mode)
- Time controls (blitz, rapid, classical)
- Board themes and seasonal themes
- Move history and PGN download
- Opening name display
- Move sounds
- ChromeOS users — No Linux container needed, runs natively in Chrome
- School/work computers — No admin rights or installation required
- Quick games — Jump in and play in seconds from any browser
- No anti-cheat fullscreen lockdown (browser security restrictions)
- Requires an internet connection (no offline mode)
- PGN analysis and resume features are desktop-only
Choose your platform below.
🛍️ Also available on the Snap Store —
snap install omnichess-coder787
The auto installer handles all dependencies, compiles Stockfish for your hardware, and adds OmniChess to your application menu.
Install:
wget -qO- https://raw.githubusercontent.com/Coder787-source/OmniChess/main/install.sh | bashUninstall:
wget -qO- https://raw.githubusercontent.com/Coder787-source/OmniChess/main/uninstall.sh | bash⏱️ Stockfish compilation may take 3–30 minutes depending on your Pi model.
💡 Only needed if you prefer not to use the auto installer above.
-
Install the Symbola font:
sudo apt install fonts-symbola
-
Compile Stockfish for ARM:
git clone --depth=1 https://github.com/official-stockfish/Stockfish.git cd Stockfish/src make -j$(nproc) build ARCH=armv8 cp stockfish ~/OmniChess/stockfish-linux-arm64 chmod +x ~/OmniChess/stockfish-linux-arm64
-
Install Python dependencies:
pip3 install pygame python-chess --break-system-packages
-
Run:
python3 OmniChess-Linux-ARM.py
-
Install the Symbola font:
sudo apt install fonts-symbola
-
Download the Linux x86-64 Stockfish binary from stockfishchess.org. Open
OmniChess-Linux-x86_64.pyin a text editor, find theSTOCKFISH_PATHvariable at the top, and rename your binary to match that name exactly. -
Make it executable:
chmod +x stockfish-linux-x86_64
-
Install Python dependencies:
pip3 install pygame python-chess --break-system-packages
-
Run:
python3 OmniChess-Linux-x86_64.py
⚠️ Make sure Python is installed and added to PATH. During installation, check "Add Python to PATH" before clicking Install.
-
Download the x86-64 AVX2 Stockfish binary from stockfishchess.org. Open
OmniChess-Windows10-11-x86-64.pyin a text editor, find theSTOCKFISH_PATHvariable at the top, and rename your binary to match that name exactly. -
Place it in the same folder as
OmniChess-Windows10-11-x86-64.py. -
Install Python dependencies:
pip install pygame python-chess -
Run:
python OmniChess-Windows10-11-x86-64.pyIf
pythondoesn't work, trypython3.
⚠️ Make sure Python is installed and added to PATH. During installation, check "Add Python to PATH" before clicking Install.
-
Download the ARM64 Stockfish binary from stockfishchess.org. Open
OmniChess-Windows10-11-ARM64.pyin a text editor, find theSTOCKFISH_PATHvariable at the top, and rename your binary to match that name exactly. -
Place it in the same folder as
OmniChess-Windows10-11-ARM64.py. -
Install Python dependencies:
pip install pygame python-chess -
Run:
python OmniChess-Windows10-11-ARM64.pyIf
pythondoesn't work, trypython3.
-
Download the macOS Apple Silicon Stockfish binary from stockfishchess.org. Open
OmniChess-MacOS-ARM.pyin a text editor, find theSTOCKFISH_PATHvariable at the top, and rename your binary to match that name exactly. -
Remove the quarantine flag and make it executable:
xattr -d com.apple.quarantine stockfish-macos-m1-apple-silicon chmod +x stockfish-macos-m1-apple-silicon
-
If macOS still blocks it, go to System Settings → Privacy & Security and click Allow Anyway.
-
Install Python dependencies:
pip3 install pygame python-chess
-
Run:
python3 OmniChess-MacOS-ARM.py
-
Download the macOS x86-64 Stockfish binary from stockfishchess.org. Open
OmniChess-MacOS-Intel-x86.pyin a text editor, find theSTOCKFISH_PATHvariable at the top, and rename your binary to match that name exactly. -
Remove the quarantine flag and make it executable:
xattr -d com.apple.quarantine stockfish-macos-x86-64 chmod +x stockfish-macos-x86-64
-
If macOS still blocks it, go to System Settings → Privacy & Security and click Allow Anyway.
-
Install Python dependencies:
pip3 install pygame python-chess
-
Run:
python3 OmniChess-MacOS-Intel-x86.py
| Requirement | Details |
|---|---|
| Python | 3.8+ — python.org/downloads |
| pygame | pip install pygame |
| python-chess | pip install python-chess |
| Symbola font | Linux only — sudo apt install fonts-symbola |
| Stockfish | Download from stockfishchess.org |
| Requirement | Details |
|---|---|
| Browser | Any modern browser (Chrome, Firefox, Safari, Edge) |
| Internet | Required for gameplay |
| JavaScript | Must be enabled |
- Windows 10/11 — x86-64 & ARM64
- Linux — x86-64 & ARM/Raspberry Pi
- macOS — Apple Silicon & Intel
- ChromeOS — No Linux container needed, runs directly in Chrome
- Windows/Mac/Linux — No installation required
- School/work computers — Works without admin rights
- Mobile devices — Play on tablets and phones with a browser
OmniChess Desktop is not officially supported on the following platforms:
- Windows 8 / 8.1 — Python 3.8+ and modern pygame versions may not function correctly
- FreeBSD — Stockfish compilation and pygame compatibility issues likely
- Older macOS versions — Pre-Catalina systems may have compatibility problems
💡 ChromeOS users: Instead of using the Linux container (which has Wayland, audio, and input limitations), we strongly recommend using the Web Version for the best experience. The web version now includes all chess variants and runs Stockfish 18.
If you choose to run the desktop version on unsupported platforms:
⚠️ No technical support will be provided for installation or runtime issues⚠️ Stockfish compilation may fail or require significant manual tweaking⚠️ Pygame and python-chess may have compatibility problems
- Stockfish Engine — stockfishchess.org
- Puzzles — Powered by the Lichess.org open API
- Developer — Coder787-source
EzioMagnifico — for consistently posting every OmniChess release on the Outskirts forum and being a dedicated advocate for the project.
