blindbase


Nameblindbase JSON
Version 0.12.10 PyPI version JSON
download
home_pageNone
SummaryAccessible CLI chess study tool with Stockfish analysis and Lichess integration.
upload_time2025-07-17 13:29:31
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseMIT
keywords chess cli accessibility stockfish blind pgn
VCS
bugtrack_url
requirements typer rich python-chess requests pyinstaller pydantic pydantic-settings pygame pyobjc-core pyobjc-framework-Cocoa pytest tomlkit tomlkit
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

```bash
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:

• **macOS** – `brew install stockfish`

• **Windows** – download `stockfish_15_x64_avx2.exe` (or the `..._noavx2.exe` if your CPU lacks AVX2) from the [official site](https://stockfishchess.org/download/) and place it somewhere in your `%PATH%` (e.g. `C:\Windows\System32`).

• **Linux** – `sudo apt install stockfish` or your distro's package.

Alternatively, pass an explicit path:

```bash
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

```bash
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:

```bash
pytest -q
```

## Single-file executables

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

### Local Apple-Silicon build

```bash
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`](.github/workflows/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.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "blindbase",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "chess, cli, accessibility, stockfish, blind, pgn",
    "author": null,
    "author_email": "Alexey Streltsov <iitshak@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/5f/fe/896a302c51b337c0195032a285dfd1347c96d0ae630db12db8bb23090f18/blindbase-0.12.10.tar.gz",
    "platform": null,
    "description": "# BlindBase \u2013 Accessible Chess-Study CLI\n\nBlindBase 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.\n\n## Features\n\n- Interactive board with Rich ASCII graphics or screen-reader-friendly layout.\n- Fast Stockfish analysis (multi-PV).\n- Masters moves tree (lichess.org database).\n- PGN navigation, variation editing, comments.\n- Broadcast streaming of live games.\n- Speech synthesis (optional) via `pyttsx3`.\n- Ships with Stockfish binaries for macOS (arm64 + x86_64) and Windows x64 \u2013 no separate download required.\n- Stand-alone executables ship with Stockfish (macOS arm64/x86_64 and Windows x64) \u2014 no separate download required, while the PyPI wheel stays slim and expects Stockfish in your PATH.\n\n## Quick start\n\n```bash\npip install blindbase           # installs lightweight wheel (Stockfish required, see below)\n\nblindbase play games.pgn        # open PGN browser\n```\n\nCommand list appears below the board; type `a`\n\n## Quick start (continued)\n\nCommand list appears below the board; type `a` to start engine analysis, `t` to view Masters moves, `m` to save.\n\n### Install Stockfish (required for pip users)\n\nThe PyPI wheel is lightweight and **does not include** the Stockfish engine. Install Stockfish once and make sure it is discoverable from the shell:\n\n\u2022 **macOS** \u2013 `brew install stockfish`\n\n\u2022 **Windows** \u2013 download `stockfish_15_x64_avx2.exe` (or the `..._noavx2.exe` if your CPU lacks AVX2) from the [official site](https://stockfishchess.org/download/) and place it somewhere in your `%PATH%` (e.g. `C:\\Windows\\System32`).\n\n\u2022 **Linux** \u2013 `sudo apt install stockfish` or your distro's package.\n\nAlternatively, pass an explicit path:\n\n```bash\nblindbase play games.pgn --engine /full/path/to/stockfish\n```\n\nThe single-file executables (`blindbase_mac_arm64`, `blindbase.exe`, \u2026) already contain the correct engine and do **not** need this step.\n\n## Building from source\n\n```bash\ngit clone https://github.com/itshak/blind-base-cli.git\ncd blind-base-cli\npip install -e .[dev]          # editable install with dev extras\n```\n\nRun unit tests:\n\n```bash\npytest -q\n```\n\n## Single-file executables\n\nThe repo provides scripts and CI workflow to create stand-alone binaries (no Python required).\n\n### Local Apple-Silicon build\n\n```bash\npython3 -m venv venv\nsource venv/bin/activate\npip install . pyinstaller\npython -m PyInstaller \\\n    --clean --onefile --target-arch arm64 \\\n    --name blindbase_mac_arm64 \\\n    --add-binary blindbase/engine/mac/stockfish:engine \\\n    blindbase/menu.py\n```\n\n`dist/blindbase_mac_arm64` runs on Apple-Silicon and Intel Macs (via Rosetta).\n\n### CI builds (Intel macOS & Windows)\n\nGitHub Actions workflow [`release.yml`](.github/workflows/release.yml) publishes artefacts on every push tag:\n\n- `blindbase_mac_x86_64` \u2013 native Intel Mac binary\n- `blindbase.exe` \u2013 Windows 64-bit binary\n\nDownload them from the **Actions \u2192 run \u2192 Artefacts** section.\n\n## Package layout\n\n```\nblindbase/\n \u251c\u2500 menu.py              # interactive main menu\n \u251c\u2500 app.py               # Typer entry-point\n \u251c\u2500 engine/              # bundled Stockfish binaries (for PyInstaller builds)\n \u2502   \u251c\u2500 mac/stockfish          (arm64)\n \u2502   \u251c\u2500 mac/stockfish_x86      (x86_64)\n \u2502   \u2514\u2500 win/stockfish.exe      (win64)\n \u2514\u2500 ...\npackaging/\n \u251c\u2500 build_macos.py       # PyInstaller helper script\n \u2514\u2500 build_windows.py\n```\n\n## Contributing\n\nPull requests are welcome! Please open an issue first to discuss major changes.\n\n1. Fork \u2192 feature branch \u2192 PR.\n2. Run `pre-commit run --all-files` before pushing.\n3. Ensure `pytest` and `ruff` pass.\n\n## License\n\nBlindBase is licensed under the MIT License. Stockfish binaries are GPLv3; they are distributed unmodified in the `engine/` directory \u2013 see `engine/LICENSE`. By using the one-file executables you accept the terms of Stockfish's GPL.\n\n- CI builds produce single-file executables for macOS (arm64 + x86_64) and Windows x64.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Accessible CLI chess study tool with Stockfish analysis and  Lichess integration.",
    "version": "0.12.10",
    "project_urls": {
        "Homepage": "https://github.com/itshak/blind-base-cli"
    },
    "split_keywords": [
        "chess",
        " cli",
        " accessibility",
        " stockfish",
        " blind",
        " pgn"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "36e8b1eb1bb7a1e8241a3ffba4df7a13cafd6b60fc9eea9cfae70cf14c669cec",
                "md5": "606975a9759a8d715d6122dd064d0c26",
                "sha256": "39697c2d1040de79e2d5a203f17bb6e0bd4fa54e629c0e10c040755d8e16edd7"
            },
            "downloads": -1,
            "filename": "blindbase-0.12.10-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "606975a9759a8d715d6122dd064d0c26",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 54846,
            "upload_time": "2025-07-17T13:29:30",
            "upload_time_iso_8601": "2025-07-17T13:29:30.342698Z",
            "url": "https://files.pythonhosted.org/packages/36/e8/b1eb1bb7a1e8241a3ffba4df7a13cafd6b60fc9eea9cfae70cf14c669cec/blindbase-0.12.10-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5ffe896a302c51b337c0195032a285dfd1347c96d0ae630db12db8bb23090f18",
                "md5": "0f74900bd2971b230b9addf5276fda8d",
                "sha256": "58bc097bfff1121013bf5a0281e9d33d81ec65ea3b0d571e64f581ff4d202b43"
            },
            "downloads": -1,
            "filename": "blindbase-0.12.10.tar.gz",
            "has_sig": false,
            "md5_digest": "0f74900bd2971b230b9addf5276fda8d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 47583,
            "upload_time": "2025-07-17T13:29:31",
            "upload_time_iso_8601": "2025-07-17T13:29:31.535988Z",
            "url": "https://files.pythonhosted.org/packages/5f/fe/896a302c51b337c0195032a285dfd1347c96d0ae630db12db8bb23090f18/blindbase-0.12.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-17 13:29:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "itshak",
    "github_project": "blind-base-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "typer",
            "specs": [
                [
                    ">=",
                    "0.9"
                ]
            ]
        },
        {
            "name": "rich",
            "specs": [
                [
                    ">=",
                    "13"
                ]
            ]
        },
        {
            "name": "python-chess",
            "specs": [
                [
                    ">=",
                    "1.999"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.26"
                ]
            ]
        },
        {
            "name": "pyinstaller",
            "specs": [
                [
                    ">=",
                    "6.6.0"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    ">=",
                    "1.10"
                ]
            ]
        },
        {
            "name": "pydantic-settings",
            "specs": [
                [
                    ">=",
                    "2.0"
                ]
            ]
        },
        {
            "name": "pygame",
            "specs": [
                [
                    "==",
                    "2.6.1"
                ]
            ]
        },
        {
            "name": "pyobjc-core",
            "specs": []
        },
        {
            "name": "pyobjc-framework-Cocoa",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "7"
                ]
            ]
        },
        {
            "name": "tomlkit",
            "specs": [
                [
                    ">=",
                    "0.12"
                ]
            ]
        },
        {
            "name": "tomlkit",
            "specs": [
                [
                    ">=",
                    "0.12"
                ]
            ]
        }
    ],
    "lcname": "blindbase"
}
        
Elapsed time: 0.71407s