← ClaudeAtlas

chesslisted

Play annotated chess against Maia (human-like engine at rating levels 1100-1900) directly in chat, with Stockfish move annotations and a board image per move. Use when the user says "let's play chess", "chess game", "play chess", gives a chess move in a running game (e4, Nf3, O-O), asks for analysis of a position, a hint, the PGN, or wants to change difficulty. Also covers the MIST Chess stack (the MIST Chess app, En Croissant, engine roster).
BaesTheorem/exobrain-harness · ★ 1 · AI & Automation · score 64
Install: claude install-skill BaesTheorem/exobrain-harness
# Chess (annotated play mode) Everything lives in `~/Documents/mist-chess` (repo: MIST Chess). The play harness is `scripts/chess_play.py`, run with the repo venv: ```bash CHESS="$HOME/Documents/mist-chess" PY="$CHESS/.venv/bin/python" RENDER='/Users/alexhedtke/Documents/Exobrain harness/tmp/images/chess' "$PY" "$CHESS/scripts/chess_play.py" --render-dir "$RENDER" <command> ``` Always pass `--render-dir` to the harness `tmp/images/chess` path: the Console only serves images from harness `tmp/`, not from `~/Documents` or `/tmp`. ## Commands | Command | What it does | |---|---| | `new --level 1500 --color white --id <name>` | start a game (levels 1100-1900 in steps of 100) | | `move <san> --id <name>` | play a move; validates, annotates, engine replies | | `board --id <name>` | re-render current position | | `analyze --id <name>` | Stockfish top-3 lines | | `hint --id <name>` | best move for the side to move | | `pgn --id <name>` | full PGN so far | | `resign --id <name>` | end game | | `list` | all saved games | Game state persists in `mist-chess/games/<id>.json`, so a game survives across sessions. Default `--id` is `game`; use a fresh id per new game ("morning", "lunch") so history is kept. **The MIST Chess app (below) uses the same files**: a game started in the app can be continued in chat and vice versa. If the app is open while chat plays the same game, its view is stale until the game is reopened there. ## Play flow in chat 1. On "let's play": ask level only if