Convert a chess.com or Lichess screenshot into FEN for further analysis.
Digitize a chess position from a printed book diagram.
Install the recognition engine as an npm library in your own chess app.
Import a chess position from a forum screenshot into an analysis board.
| scoriiu/fenshot | adguardteam/ruleseditor | artickc/opencode-telegram-bot | |
|---|---|---|---|
| Stars | 7 | 7 | 7 |
| Language | TypeScript | TypeScript | TypeScript |
| Last pushed | — | 2026-07-01 | — |
| Maintenance | — | Active | — |
| Setup difficulty | easy | easy | moderate |
| Complexity | 2/5 | 2/5 | 3/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
fenshot is a browser tool that takes a screenshot of a chess position, whether from a chess.com game, a Lichess puzzle, a diagram in a chess book, or a photo shared on a forum, and reads it into FEN, the standard text format used to represent a chess position. Everything happens locally in the browser: there is no account, no upload, and no image data leaves the page. The recognition works in several steps. First it finds the chessboard inside the image by analyzing patterns of light and dark. Then it looks at each of the 64 individual squares using a small neural network that runs directly in the browser, rather than on a server. It also checks whether the position is being viewed from Black's side of the board, based on which way the pawns are pointing, and flips the reading automatically if needed. Every result comes with a confidence score per square, so if a read is uncertain, the tool says so instead of quietly returning a wrong answer. The README explains that the neural network was trained entirely on computer generated chess positions, rendered using dozens of different piece styles and board themes, along with realistic image problems like blur and compression artifacts, so it can recognize a wide variety of real screenshots. The authors report that on their test set of real screenshots, their approach makes zero mistakes on positions it should be able to read, compared to an older open-source project it builds on, which they say misread dozens of squares per board in comparison. The recognition engine itself is also published as a standalone JavaScript library that other developers can install and use in their own projects, alongside a demo web app built with React. The project includes an automated test suite and full instructions for building and running it locally. It is maintained by the team behind coachess.app and is released under the MIT license.
A browser tool that reads a chessboard screenshot and converts it into FEN, the standard text format for chess positions.
Mainly TypeScript. The stack also includes TypeScript, ONNX Runtime Web, React.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.