Browser extension for Chess.com - when a game ends, keep playing the final position vs Stockfish on the same board. One click.
A real Chess.com game, reopened one move before the end: "Keep Playing" sits under the move list, the same board keeps going against Stockfish, and the mate lands on Chess.com's own result card - no redirect, no new tab. Recorded on chess.com with the released 3.3.0.
|
Continue from any move. Step back through the move list and press the button there: the game restarts from whatever is on the board. |
Promotion, not auto-queen. The picker is Chess.com's own, so you promote the way you already do on the site. |
You're winning. Your opponent resigns, disconnects, or times out. Game over - but you wanted to play it through. This extension adds a Keep Playing button to the game-over screen. Click it and you keep playing the exact final position against Stockfish, right there on the Chess.com board, with difficulty matched to your opponent's rating.
Chess.com: Game Over → [▶ Keep Playing] → play the position vs Stockfish (inline)
In fast games - bullet, blitz - opponents resign or disconnect all the time, often in positions where the most interesting part is still ahead. I wanted to keep playing from exactly where we left off, on the same board, without setting anything up.
Earlier versions redirected to Lichess to do this. Since v3.0.0 the engine runs in-page, so the game never leaves Chess.com.
- Inline on the real board - no redirect, no new tab; you keep playing on the Chess.com board you were already on.
- From any position, not just the last one - walk back through the move list to where it went wrong and continue from there. Lose to a mate, rewind three moves, play it differently. Only ever after a game has ended.
- Adaptive difficulty - Stockfish's
UCI_Elois matched to the opponent's rating read from the page. - No servers, no telemetry - Stockfish runs entirely in your browser, as WebAssembly. Nothing is uploaded; it works offline, and that is verified by the test suite, not just claimed.
- Click or drag - move pieces either way, with legal destinations highlighted. Promotion opens the same four-piece picker Chess.com uses, and you castle the way you already do there: drop the king on your own rook.
- Correct chess - castling, en-passant, checkmate/stalemate and repetition are handled by the engine itself (moves are replayed to Stockfish).
- On/off toggle - a popup to disable it when you don't want it.
- Open source - GPLv3, because it bundles Stockfish.
➜ Install from the Chrome Web Store
One click. Works on every Chromium browser, not just Chrome.
Or install the zip by hand
- Download
stockfish-continue-to-play-chrome-<version>.zipfrom the newestv…release on the Releases page. - Unzip it.
- Open
chrome://extensions, turn on Developer mode, click Load unpacked and pick the unzipped folder.
The release zips already bundle the Stockfish engine, so there is no download script to run and nothing is fetched at runtime.
Firefox needs its own zip - stockfish-continue-to-play-firefox-<version>.zip from the same
release. Unzip it, then open about:debugging#/runtime/this-firefox, click Load Temporary
Add-on and pick the manifest.json inside the unzipped folder.
Temporary is literal. Until the add-on is signed by addons.mozilla.org, Firefox will only load it as a temporary add-on: it is removed when you close the browser, and you have to load it again every session. Chrome has no such restriction.
# 1. Clone
git clone https://github.com/thousandflowers/stockfish-continue-to-play.git
cd stockfish-continue-to-play
# 2. Download the Stockfish engine (~7 MB, kept out of git, checksum-verified)
bash scripts/download-stockfish.sh
# 3a. Chrome / Edge / Brave / Arc / Opera
# chrome://extensions → enable "Developer mode" → "Load unpacked" → pick this folder
# 3b. Firefox 128+ needs its own manifest, which the build derives
# npm run package
# about:debugging#/runtime/this-firefox → "Load Temporary Add-on" → pick stockfish-continue-to-play-firefox-*.zipThe engine -
stockfish.js(21 KB loader) andstockfish.wasm(7 MB) - is excluded from git to keep clones lean. The download script fetches both and verifies them against the checksums pinned instockfish.sha256.
- Finish (or lose/win) a game on Chess.com.
- Click ▶ Keep Playing - on the game-over card, or under the move list when you have come back to a finished game later. To start from an earlier position, walk back through the move list first: the button plays whatever is on the board when you press it.
- Play. The badge in the top-right shows whose turn it is; click it to stop.
See CONTRIBUTING.md for local dev setup, testing, and PR guidelines.
See ARCHITECTURE.md for the FEN extraction, the move-history engine model, difficulty mapping, and project structure.
See CHANGELOG.md for what changed in each version, and whether it is worth re-downloading.
No data leaves your machine - see PRIVACY.md.
GPLv3 - see LICENSE.
This extension bundles Stockfish, which is licensed under the GNU General Public License v3. Distributing Stockfish inside the package makes the whole package a combined work, so this project is GPLv3 too: you may use, study, modify and redistribute it under those terms, and anyone you pass it to gets the same rights and the right to the corresponding source.
Credit where it is due: Stockfish is the work of the Stockfish developers (T. Romstad, M. Costalba, J. Kiiski, G. Linscott and many other contributors - see the project's AUTHORS file), the JavaScript port is nmrugg/stockfish.js, and the neural network is by Linmiao Xu. Their notices are reproduced verbatim in LICENSE.stockfish.
Exactly which build is bundled, its checksum, and what is and is not known about where it came from: vendor/STOCKFISH-PROVENANCE.md.
Up to and including v3.0.0 this project was released under the MIT licence, and code contributed in that period was contributed under it. MIT asks that its copyright notice be preserved, so it is: see LICENSE.MIT. That code is redistributed here under the GPLv3, which MIT permits.


