Chess in your terminal. Play against Chesster while your coding agent thinks.
Project description
Sideboard
Play chess against Chesster, inline in Claude Code.
a b c d e f g h
┌───┬───┬───┬───┬───┬───┬───┬───┐
8 │ ♖ │ ♘ │ ♗ │ ♕ │ ♔ │ ♗ │ ♘ │ ♖ │ 8
├───┼───┼───┼───┼───┼───┼───┼───┤
7 │ ♙ │ ♙ │ ♙ │ ♙ │ ♙ │ ♙ │ ♙ │ ♙ │ 7
├───┼───┼───┼───┼───┼───┼───┼───┤
6 │ │ │ │ │ │ ♘ │ │ │ 6
├───┼───┼───┼───┼───┼───┼───┼───┤
5 │ │ │ │ │ │ │ │ │ 5
├───┼───┼───┼───┼───┼───┼───┼───┤
4 │ │ │ │ │ ♟ │ │ │ │ 4
├───┼───┼───┼───┼───┼───┼───┼───┤
3 │ │ │ │ │ │ │ │ │ 3
├───┼───┼───┼───┼───┼───┼───┼───┤
2 │ ♟ │ ♟ │ ♟ │ ♟ │ │ ♟ │ ♟ │ ♟ │ 2
├───┼───┼───┼───┼───┼───┼───┼───┤
1 │ ♜ │ ♞ │ ♝ │ ♛ │ ♚ │ ♝ │ ♞ │ ♜ │ 1
└───┴───┴───┴───┴───┴───┴───┴───┘
a b c d e f g h
Chesster: Alekhine's Defense — bold of you to invite the bayonet.
A chess game that lives inside your Claude Code conversation, for when the coding agent is grinding through a slow build.
Install (Claude Code)
You'll need uv on your PATH — the MCP server runs via uvx. Install with brew install uv if you don't have it.
In Claude Code:
/plugin marketplace add zappleg8/sideboard
/plugin install sideboard@sideboard
That's it. No pip, no shell config, no daemons.
Play
/sideboard:play # start or resume a game
/sideboard:play e4 # make a move (SAN: e4, Nf3, O-O, Bxe5, e8=Q)
/sideboard:board # re-render the current state silently
/sideboard:resign # resign and archive the PGN
One global game, persisted at ~/.sideboard/. Quit Claude Code, come back tomorrow, the position is still there.
Standalone CLI (no Claude Code)
If you'd rather play in a regular terminal:
pip install sideboard
sideboard # new game vs Chesster
sideboard --difficulty casual # beginner-friendly
sideboard --difficulty shark # bring your A-game
sideboard resume # pick up where you left off
sideboard stats # your record vs Chesster
Terminal mode renders a colored Rich-styled board with proper chess glyphs.
How It Works
A small Claude Code plugin packages three pieces:
- A slash-command skill (
/sideboard:play) that tells Claude to drive the game. - An MCP server (
sideboard-mcp, launched viauvx) that exposes the chess engine and game state as tools (new_game,make_move,engine_response,get_state,resign,get_stats). - The engine is local Python — minimax with alpha-beta pruning, piece-square tables, and a curated Chesster quip pool that reacts to captures, checks, blunders, and brilliancies.
Each move is two MCP calls: make_move applies your move and returns the engine's top three candidates plus a Chesster quip; engine_response plays whichever candidate Claude picks. The board renders in the conversation as a fenced code block.
Difficulty
| Level | Search depth | Behavior |
|---|---|---|
casual |
2 ply | Occasionally picks an off-best move for variety |
club |
3 ply | Default — solid, beatable |
shark |
4 ply + quiescence | Sees tactics; will hurt you |
Dependencies
- python-chess — board state, move legality, PGN export
- mcp — Claude Code plugin server
- Rich — only for the standalone terminal CLI
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sideboard-0.2.0.tar.gz.
File metadata
- Download URL: sideboard-0.2.0.tar.gz
- Upload date:
- Size: 25.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb2681d4c7fe4addd2002a40bbac19b9954baa5fc4003c13e6dac5b8d0f8031a
|
|
| MD5 |
3f392ffd57eb72eb268d9ec3afc6ab10
|
|
| BLAKE2b-256 |
3393fee954a9f740d6cd04ba5ebbc74156e101161ea106ce4cf5cebdc0a0ab20
|
File details
Details for the file sideboard-0.2.0-py3-none-any.whl.
File metadata
- Download URL: sideboard-0.2.0-py3-none-any.whl
- Upload date:
- Size: 25.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07e67494340447d396ab5fb2386836e3176d9d84d201aa3ee37c81758e7a258c
|
|
| MD5 |
7c17dc0e99d243eb194b83e654107a43
|
|
| BLAKE2b-256 |
2e89717e3269ef2a9aa5827f96f357d59eb29b1bb3a7aa296d523a8bcb9ab084
|