Skip to main content

Accessible CLI chess study tool with Stockfish analysis and Lichess integration.

Project description

BlindBase – Accessible Chess-Study CLI

BlindBase is a text-mode chess study tool that brings Stockfish analysis, Lichess Masters statistics and speech feedback to the terminal. It is designed for visually-impaired players but equally useful for anyone who prefers a distraction-free CLI over a GUI.

Features

  • Interactive board with Rich ASCII graphics or screen-reader-friendly layout.
  • Fast Stockfish analysis (multi-PV).
  • Masters moves tree (lichess.org database).
  • PGN navigation, variation editing, comments.
  • Broadcast streaming of live games.
  • Speech synthesis (optional) via pyttsx3.
  • Ships with Stockfish binaries for macOS (arm64 + x86_64) and Windows x64 – no separate download required.
  • Stand-alone executables ship with Stockfish (macOS arm64/x86_64 and Windows x64) — no separate download required, while the PyPI wheel stays slim and expects Stockfish in your PATH.

Quick start

pip install blindbase           # installs lightweight wheel (Stockfish required, see below)

blindbase play games.pgn        # open PGN browser

Command list appears below the board; type a

Quick start (continued)

Command list appears below the board; type a to start engine analysis, t to view Masters moves, m to save.

Install Stockfish (required for pip users)

The PyPI wheel is lightweight and does not include the Stockfish engine. Install Stockfish once and make sure it is discoverable from the shell:

macOSbrew install stockfish

Windows – download stockfish_15_x64_avx2.exe (or the ..._noavx2.exe if your CPU lacks AVX2) from the official site and place it somewhere in your %PATH% (e.g. C:\Windows\System32).

Linuxsudo apt install stockfish or your distro's package.

Alternatively, pass an explicit path:

blindbase play games.pgn --engine /full/path/to/stockfish

The single-file executables (blindbase_mac_arm64, blindbase.exe, …) already contain the correct engine and do not need this step.

Building from source

git clone https://github.com/itshak/blind-base-cli.git
cd blind-base-cli
pip install -e .[dev]          # editable install with dev extras

Run unit tests:

pytest -q

Single-file executables

The repo provides scripts and CI workflow to create stand-alone binaries (no Python required).

Local Apple-Silicon build

python3 -m venv venv
source venv/bin/activate
pip install . pyinstaller
python -m PyInstaller \
    --clean --onefile --target-arch arm64 \
    --name blindbase_mac_arm64 \
    --add-binary blindbase/engine/mac/stockfish:engine \
    blindbase/menu.py

dist/blindbase_mac_arm64 runs on Apple-Silicon and Intel Macs (via Rosetta).

CI builds (Intel macOS & Windows)

GitHub Actions workflow release.yml publishes artefacts on every push tag:

  • blindbase_mac_x86_64 – native Intel Mac binary
  • blindbase.exe – Windows 64-bit binary

Download them from the Actions → run → Artefacts section.

Package layout

blindbase/
 ├─ menu.py              # interactive main menu
 ├─ app.py               # Typer entry-point
 ├─ engine/              # bundled Stockfish binaries (for PyInstaller builds)
 │   ├─ mac/stockfish          (arm64)
 │   ├─ mac/stockfish_x86      (x86_64)
 │   └─ win/stockfish.exe      (win64)
 └─ ...
packaging/
 ├─ build_macos.py       # PyInstaller helper script
 └─ build_windows.py

Contributing

Pull requests are welcome! Please open an issue first to discuss major changes.

  1. Fork → feature branch → PR.
  2. Run pre-commit run --all-files before pushing.
  3. Ensure pytest and ruff pass.

License

BlindBase is licensed under the MIT License. Stockfish binaries are GPLv3; they are distributed unmodified in the engine/ directory – see engine/LICENSE. By using the one-file executables you accept the terms of Stockfish's GPL.

  • CI builds produce single-file executables for macOS (arm64 + x86_64) and Windows x64.

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

blindbase-0.13.0.tar.gz (52.8 kB view details)

Uploaded Source

Built Distribution

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

blindbase-0.13.0-py3-none-any.whl (60.9 kB view details)

Uploaded Python 3

File details

Details for the file blindbase-0.13.0.tar.gz.

File metadata

  • Download URL: blindbase-0.13.0.tar.gz
  • Upload date:
  • Size: 52.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for blindbase-0.13.0.tar.gz
Algorithm Hash digest
SHA256 b74c128ca6fdc4a6b4a9cc709262654afdde0718af24c82778ac13dfeccd0027
MD5 a898398b9e79443b9d21927fd9618c79
BLAKE2b-256 bc3ac46b73eb395370cbfb8598db73babab5280ed361776f5a0abc8de2302217

See more details on using hashes here.

Provenance

The following attestation bundles were made for blindbase-0.13.0.tar.gz:

Publisher: release.yml on itshak/blind-base-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blindbase-0.13.0-py3-none-any.whl.

File metadata

  • Download URL: blindbase-0.13.0-py3-none-any.whl
  • Upload date:
  • Size: 60.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for blindbase-0.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7eb590ba8379219c8ba51ecfb9be3daa068f24bd4ad53709e6172cd90a958a14
MD5 7bd085d362128a97b036f057b8c7f22f
BLAKE2b-256 c4dd2b9a0fcc3c75bf32f1b0533b4e914926b1111eb0d9527b22c939e92aa46c

See more details on using hashes here.

Provenance

The following attestation bundles were made for blindbase-0.13.0-py3-none-any.whl:

Publisher: release.yml on itshak/blind-base-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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