Blindfold chess CLI with built-in engines
Project description
ch0 - Blindfold Chess CLI
A minimal terminal game for playing blindfold chess against built-in engines.
- Install it as a standalone CLI tool
- Play by entering SAN moves (
e4,Nf3,exd5,a8=Q) plus a handful of helpful commands (show,fen,pgn, …) - Includes bundled engines (Sunfish, Andoma) and a “bring your own UCI engine” mode
Install
With uv (recommended)
uv tool install play-ch0
With pip
python -m pip install --upgrade play-ch0
Requires Python 3.13+.
Run
After installing, you can launch the game with either entrypoint:
ch0
# or
play-ch0
You’ll start in a lobby where you pick an engine + color, then start.
Quick start gameplay
-
Enter SAN moves:
e4,Nf3,exd5,a8=Q, … -
Or enter commands like:
show- show the board (useful if you “peek”)moves- list movesfen- print current FENpgn- print current PGN (also printed at game end)resign- resignhelp- show available commandsquit- exit
Commands can also be prefixed with : (e.g. :show).
The engine moves automatically on its turn.
Opening book (optional)
If you place a Polyglot opening book file named book.bin in the current working directory when you run ch0,
the game will use it for opening-book moves.
Engines
Available options:
random- plays random legal movesandoma- bundled enginesunfish- bundled engineuci- use any external UCI engine (e.g., Stockfish) by providing a command/path; played viapython-chess
Notes:
- Sunfish and Andoma are third-party projects vendored under
src/ch0/engines/. I don’t create or maintain them. - On Windows, ANSI colors work better if
coloramais installed (it’s auto-used when present).
Development (from source)
If you want to hack on the repo instead of installing from PyPI:
git clone https://github.com/menisadi/ch0
cd ch0
uv sync
uv run ch0
Licenses / third-party
- This project is licensed under GPLv3 (see
LICENSE). - Sunfish is distributed under the GNU General Public License; see
src/ch0/engines/sunfish/LICENSE.md. - Andoma is distributed under the MIT License; see
src/ch0/engines/andoma/LICENSE.
TODO
- Fix turn bookkeeping - remove
game.turnand rely onboard.turn - Update move numbering / PGN formatting using
board.turnbefore pushing moves - Sunfish: validate emitted UCI move is legal
- Make Polyglot book usage optional
- Show a subtle “(book)” indicator when a book move is used
- Add
undo(at least one ply) - Add
status/checkcommand that reports check-like info - Decide and implement draw policy: claimable vs automatic handling of draws
- Add optional PGN autosave to a file (date/engine/color in file-name)
- Add "illegal moves" count (printed at the end)
- Add Stockfish bundling or automatic UCI discovery
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file play_ch0-1.2.1.tar.gz.
File metadata
- Download URL: play_ch0-1.2.1.tar.gz
- Upload date:
- Size: 394.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4ba50a63636feb3013650a5b8ada3a72697f8efdb8e7a1889732c70346d20c5
|
|
| MD5 |
76d2f85db29b589a6df2966115e29af6
|
|
| BLAKE2b-256 |
409ff28308957913053d88b416f7875e8d533723eb376d9f2806a8afb12aaf0c
|
File details
Details for the file play_ch0-1.2.1-py3-none-any.whl.
File metadata
- Download URL: play_ch0-1.2.1-py3-none-any.whl
- Upload date:
- Size: 97.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1cdd0b2af7a39924e2b69ee8363c9d33fc83931798753fbef2aefe5565729114
|
|
| MD5 |
7f6abfb6b65be00c2ad41700af968587
|
|
| BLAKE2b-256 |
c64d27618722bf523123c0da05a8261c210b462657b655ccd3056163f1d86555
|