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.2.2.tar.gz (92.2 kB 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.2.2-py3-none-any.whl (97.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: play_ch0-1.2.2.tar.gz
  • Upload date:
  • Size: 92.2 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

Hashes for play_ch0-1.2.2.tar.gz
Algorithm Hash digest
SHA256 2dfd908347f58cdcef6c3c8bf5d9d9aa9f89942fda2c37b25eee231ec969af36
MD5 a3320a96a1852d843f2f65aa73c939ad
BLAKE2b-256 ca0910369c7d138531a9d7d44c1b2d2365285e3b9bc67712c8fa7c8b2c1b3623

See more details on using hashes here.

File details

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

File metadata

  • Download URL: play_ch0-1.2.2-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

Hashes for play_ch0-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 322eea39f4758289b4b9ec34c103da24f2ca6f94e335bd6beccf9e6958fe5ad5
MD5 8e47276d5836b83bf9d87a1b44a57e96
BLAKE2b-256 709cc7b6a9b3b0913a49f50a60d2e52a1644083326595de414ff1793f6645c72

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