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
  • Adds post-game analysis after the result is announced

Install

With uv (recommended)

uv tool install play-ch0

With pip

python -m pip install --upgrade play-ch0

Requires Python 3.11+.


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
  • Add post-game analysis

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.3.5.tar.gz (99.8 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.3.5-py3-none-any.whl (99.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: play_ch0-1.3.5.tar.gz
  • Upload date:
  • Size: 99.8 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.3.5.tar.gz
Algorithm Hash digest
SHA256 adc56c42fd14f235b94355c5a646f2eff9d0aa1466fbc7768eaa5f5ce890e0ef
MD5 b59443ec6c139494ee40016abe50f734
BLAKE2b-256 20aa895b899cdde38212eca83485e99b2dfb991097f20f8656242ee5d77d235e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: play_ch0-1.3.5-py3-none-any.whl
  • Upload date:
  • Size: 99.6 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.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5c2c3b77b7c7b732dc262f87ebb0a1c4478b10127b5f60406182d117b6fe81d2
MD5 b75dab644c065625f23cb96f22d7dee5
BLAKE2b-256 584d8692e6362b4bab43fca49fec72535fcd57ea85db8f46a8320372df14ba03

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