Skip to main content

Blindfold chess CLI with built-in engines

Project description

ch0 - Blindfold Chess CLI

PyPI Python License: GPLv3

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 moves
    • fen - print current FEN
    • pgn - print current PGN (also printed at game end)
    • resign - resign
    • help - show available commands
    • quit - 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 moves
  • andoma - bundled engine
  • sunfish - bundled engine
  • uci - use any external UCI engine (e.g., Stockfish) by providing a command/path; played via python-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 colorama is 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.turn and rely on board.turn
  • Update move numbering / PGN formatting using board.turn before 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 / check command 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

play_ch0-1.1.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

play_ch0-1.1.0-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file play_ch0-1.1.0.tar.gz.

File metadata

  • Download URL: play_ch0-1.1.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • 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

Hashes for play_ch0-1.1.0.tar.gz
Algorithm Hash digest
SHA256 0d0f52cd677de589ad37da7b752219b577802e27a7f0101e9407cec29edc7bd7
MD5 ff9a736433e1ce878331b8ad1651d1b8
BLAKE2b-256 370059766206e5ed1ea3e3028d2a59f0445529597cb943e22330bb6c302d7add

See more details on using hashes here.

File details

Details for the file play_ch0-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: play_ch0-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • 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

Hashes for play_ch0-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6cced82fffb7936c31ed76d8e7f866fb764d52f9bee4383d9a39efb563192821
MD5 9f7e35d034976affca5d569940d824b0
BLAKE2b-256 07115bfeb72dc37dc2b4b75a686c543d354efae16d6aa60dd590323198cf56bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page