Skip to main content

chessplaza

PyPI Python CI Publish MIT

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 GenAI SDK (TTS, one-shot queries) and LangGraph (game/chat loop).

Prerequisites

  • Claude Code authenticated (install), or ANTHROPIC_API_KEY environment 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:

  1. Open System Settings → Privacy & Security → Microphone
  2. Find your terminal app (Terminal, iTerm2, VS Code, etc.) and enable it
  3. 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
  • 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)

Source distribution for chessplaza 0.1.1
File Size Uploaded
chessplaza-0.1.1.tar.gz 19.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for chessplaza 0.1.1
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page