
ilo: Chess Trainer with a Live Coach
My own chess trainer: close to chess.com, but mine to change and without a subscription. Stockfish 19 rates every move instantly and for free in the browser, Claude explains on demand for about a cent, and moves can simply be called out by voice. Play the computer, Claude, friends online, face to face in table mode or four-player chess.
ilo is my own chess trainer for the browser, on a laptop, tablet or phone. Every move gets an instant verdict, hints are one tap away, and when I want to know why a move was bad, I ask Claude. I play Stockfish at ten levels, Claude, friends online, two players at one device or four-player chess, in German or English.
Why build my own? chess.com is the obvious reference, and the resemblance is deliberate in places: the same kind of move verdicts, a Glicko rating like theirs, their four-player rules. The difference is that ilo is mine. When I want something, I build it (voice moves, a table mode for a tablet lying between two players, my own backgrounds), and it's live the same evening. There is no subscription: the engine runs for free in the browser, and I pay Claude directly through the API, only when I tap for an explanation. That's about a cent with Opus and a fraction of a cent with Haiku.
Try it at chess.dehlwes.net (the Visit button above). Registration is open; the Claude features are unlocked per account.

“How good was that move?” is answered not by a language model but by Stockfish 19 compiled to WebAssembly. It runs on your own device, costs nothing and works offline.
- A verdict on every move in real time, from brilliant to blunder, with chess.com's win-chance thresholds
- Win chance and evaluation bar, the opening name and the better move with its line
- Two-step hints, a threat arrow and takebacks
- Post-game analysis: accuracy for both sides (Lichess formula), an evaluation graph, PGN/FEN import and your own chess.com games via chess.com's official read-only API
Say “knight f3”, “e takes d5” or “castle kingside”, in German or English, against the computer, at the tablet or online.
- In the browser voice activity detection cuts out each utterance and sends only those snippets, and only on your turn
- Speech recognition runs on Parakeet, self-hosted on Nexus, my deployment platform; audio and transcripts are never logged or stored
- Matching checks the transcript against every legal move and plays only when exactly one fits; table talk triggers nothing
- Fast: a first snapshot after ~200 ms of silence puts a clear move on the board ~0.35 s after you stop speaking
- Mishearings: “Life See a feel” instead of “Läufer c4”? ilo compares the sound with all legal moves and asks “Did you mean Bc4?” with a yellow arrow
Claude only comes in when words are needed, and only when you tap.
- “Why?” on any move, free questions about the position and a game review with turning points, strengths, weaknesses and a training focus
- Claude as an opponent with selectable strength and style, also as a seat in four-player chess
- Cheap by design: instead of an open question Claude gets a compact fact sheet checked by Stockfish, plus prompt caching, an answer cache and a monthly budget. A cost counter logs every request. An explanation costs about a cent, with Haiku a fraction of that.
- Online with friends: by link or direct challenge, live moves, the server as referee, chat, draw, rematch
- Table mode: the tablet lies between two players and each side has its own panel turned towards them; side by side on a laptop
- Four-player chess on the 14×14 board: free-for-all or 2 vs 2, every seat a human, a bot or Claude
- Ratings: Glicko-1 for bullet, blitz and rapid, online, against the trainer and two players at one device; the server replays every rated game before it counts
- Offline: installed as a web app, games against Stockfish keep running without a connection
Four gradients, thirteen photos (chess pieces, beach, northern lights, marble) or your own picture as the background. Five board colours, nine piece sets, profile pictures for every player and a short welcome tour after the first sign-in.
- Frontend: React 19, Vite, TypeScript, Tailwind CSS v4, shadcn/ui, chessground, chess.js, Stockfish 19 as WebAssembly in two Web Workers, a service worker for offline play
- Backend: Node 24 with Hono, PostgreSQL, server-sent events, the Anthropic Messages API (Claude Opus 5.5, switchable to Haiku per feature)
- Voice: AudioWorklet and voice activity detection in the browser, Parakeet on Nexus
- Hosting: self-hosted on Nexus; accounts with scrypt-hashed passwords and database sessions