Play chess against Jev
Watch Jev play chess against itself, or play against it. Jev picks every move; FastAPI and python-chess run the board.
# Jev Chess A chess web app where **Jev**, TypeSafe AI's decision model, picks every move. Watch Jev play itself, or play against it as White or Black. The page shows each move with Jev's confidence, its top alternatives and its response time. It is a demo of Jev as a decision component, not a chess engine. <details> <summary>Screenshots (desktop and phone)</summary> <img src="docs/screenshot-phone.png" alt="Jev Chess on a phone" width="320"> </details> ## How it works - The Python backend owns the game. [python-chess](https://python-chess.readthedocs.io/) handles the rules, legal moves and the game record (PGN). - On Jev's turn, the backend describes the position (board, material, threats, check) and lists every legal move with plain facts: what it captures, whether it checks or mates, whether it leaves a piece undefended, what the obvious exchanges net, and whether it repeats a position. - Jev answers through the TypeSafe SDK as a single structured `Choice` question and returns a move, a confidence and a probability for each option. - Every move, Jev's or yours, is validated against the live board before it is played. - Standard chess endings apply: checkmate, stalemate, insufficient material, threefold repetition and the fifty-move rule. Repetition and fifty-move draws are applied once they actually occur, as on most online sites. ## Run ```bash python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt cp .env.example .env # then put your key in .env python run.py ``` Open http://127.0.0.1:8000, pick **Watch**, **Play White** or **Play Black**, and press **Start game**. When it is your move, click a piece, then one of the marked squares. While a game runs the button becomes **