whatisgithub

What is fenshot?

scoriiu/fenshot — explained in plain English

Analysis updated 2026-05-18

7TypeScriptAudience · developerComplexity · 2/5LicenseSetup · easy

In one sentence

A browser tool that reads a chessboard screenshot and converts it into FEN, the standard text format for chess positions.

Mindmap

mindmap
  root((fenshot))
    What it does
      Detects chessboard in image
      Classifies each square
      Outputs FEN notation
      Runs entirely in browser
    Tech stack
      TypeScript
      ONNX Runtime Web
      React
      Vite
    Use cases
      Import a chess.com screenshot
      Digitize a book diagram
      Analyze a puzzle position
    Audience
      Chess players
      Web developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Convert a chess.com or Lichess screenshot into FEN for further analysis.

USE CASE 2

Digitize a chess position from a printed book diagram.

USE CASE 3

Install the recognition engine as an npm library in your own chess app.

USE CASE 4

Import a chess position from a forum screenshot into an analysis board.

What is it built with?

TypeScriptONNX Runtime WebReactVite

How does it compare?

scoriiu/fenshotadguardteam/ruleseditorarkorlab/haru
Stars777
LanguageTypeScriptTypeScriptTypeScript
Last pushed2026-07-01
MaintenanceActive
Setup difficultyeasyeasyhard
Complexity2/52/55/5
Audiencedeveloperdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

So what is it?

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.

Copy-paste prompts

Prompt 1
Show me how to install @scoriiu/fenshot and recognize a chessboard image in my own project.
Prompt 2
Explain how fenshot detects whether a screenshot is shown from Black's point of view.
Prompt 3
Walk me through the board detection and tile classification steps fenshot uses on an image.
Prompt 4
Help me understand the per-tile confidence scores fenshot returns with each recognized position.

Frequently asked questions

What is fenshot?

A browser tool that reads a chessboard screenshot and converts it into FEN, the standard text format for chess positions.

What language is fenshot written in?

Mainly TypeScript. The stack also includes TypeScript, ONNX Runtime Web, React.

What license does fenshot use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is fenshot to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is fenshot for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.