chessplaza
A park, a few benches, a pond, and some deep-sea creature that has learned chess from listening to trash talk.
A virtual chess plaza: AI chess hustlers with distinct personalities, played by Claude agents over any UCI engine, in your terminal.
Think of Washington Square Park in NYC, or Dupont Circle in DC (but not any specific, exact place!) – places where chess hustlers gather to play, banter, and challenge passersby. This project brings that experience to your terminal, powered by LLMs.
Roadmap
Phase 1: Claude Agents epoch (shipped in 0.1.0)
- Chess hustler personas powered by Claude Agents SDK;
- Integration with UCI chess engines via chess-uci-mcp;
- Different hustler personalities: the trash-talker, the philosopher, the speed demon, the old master...
- Game/chat loop using Claude Agents SDK.
Phase 2: Experimentation epoch
- Basic voice output (Edge-TTS), complementing the text UI;
- Voice input (Whisper) to call out your moves (and words) instead of keyboard input;
- Switchable UI: command-line vs PySide-based (with proper chess board).
Phase 3: LangGraph/Gemini epoch
- Switching to Gemini, for LLM but specifically for advanced text-to-speech (each with distinct voice characteristics, intonations, etc);
- (Because of Gemini switch) Migrating from Claude Agents SDK to
GenAISDK (TTS, one-shot queries) and LangGraph (game/chat loop).
Prerequisites
- Claude Code authenticated (install), or
ANTHROPIC_API_KEYenvironment variable; - uv package manager (install);
- Stockfish or another UCI chess engine (download).
Usage
# Via uvx (PyPI release)
uvx "chessplaza[voice]" /usr/local/bin/stockfish
# Via uvx (latest from GitHub)
uvx --from "git+https://github.com/AnglerfishChess/chessplaza[voice]" chessplaza /usr/local/bin/stockfish
# From source
git clone https://github.com/AnglerfishChess/chessplaza.git
cd chessplaza
uv run chessplaza /usr/local/bin/stockfish
Options (work with any launch method):
--voice/-v- enable text-to-speech--language <lang>/-l <lang>- play in a different language (e.g., Spanish, Russian)--use-github-deps- use bleeding-edge GitHub versions of dependencies (unstable, for development)
Development setup
git clone https://github.com/AnglerfishChess/chessplaza.git
cd chessplaza
uv sync --extra voice
uv run chessplaza /usr/local/bin/stockfish
Building Redistributables
PyInstaller is included in dev dependencies for building standalone apps. Full build instructions coming soon.
Troubleshooting
macOS: Microphone not working (voice input)
If voice input records silence or doesn't work, your terminal app likely lacks microphone permissions.
Fix:
- Open System Settings → Privacy & Security → Microphone
- Find your terminal app (Terminal, iTerm2, VS Code, etc.) and enable it
- If not listed, the app hasn't requested access yet – try restarting the app
Verify via command line:
# Check which apps have microphone access
tccutil list Microphone
Still not working? Reset permissions to trigger a fresh prompt:
# For Terminal.app
tccutil reset Microphone com.apple.Terminal
# For iTerm2
tccutil reset Microphone com.googlecode.iterm2
Related Projects
- chess-uci-mcp - MCP bridge to UCI chess engines
- esca - the MIT-licensed Rust/Python chess library: rules, position facts, PGN, opening books and names
Metadata
Release files for chessplaza 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chessplaza-0.1.1.tar.gz | 19.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chessplaza-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.0 kB
Release files / chessplaza-0.1.1.tar.gz
| Download URL | chessplaza-0.1.1.tar.gz |
|---|---|
| Size | 19.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
87ef1b7b7d94107f8249542db9a3d63337aac35c12d1000324f1352fcc7a71cd
|
|
BLAKE2b-256 checksum How to use checksums |
53654dcdbbaf3224ff1fb46b9129ce63f5a07ccda23527f6de7a1e42cff6a64e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency logRelease files / chessplaza-0.1.1-py3-none-any.whl
| Download URL | chessplaza-0.1.1-py3-none-any.whl |
|---|---|
| Size | 18.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
80eae39f0dd51a0f3e5581179aaca9424b24c2369d9d6bb5bc55f5820af561fe
|
|
BLAKE2b-256 checksum How to use checksums |
e529ae6993cf39a77f65417a98bb99195f32267b5f2fe71298594d57cd8c81e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency log