Skip to content
Chessglance
Open app
Menu
Blog — October 6, 2026

How to turn a chess screenshot into a FEN

Paste a screenshot, get the exact position as a FEN in about a second. What the string means, what an image cannot tell you, and how to get a clean read every time.

4 min readguideFEN

You have a position on a screen. Maybe it is a puzzle in a chat, a frame from a stream, or a game you want an engine to look at. Every analysis tool wants a FEN, one line of text that describes the position. Typing 64 squares by hand takes minutes and goes wrong easily. Here is the fast way, and what to check before you trust the result.

The two-step version

  1. Take a screenshot of the board. Any screenshot works; you do not need to crop it.
  2. Open Chessglance and paste with Ctrl + V (⌘ + V on a Mac).

The FEN appears next to the board in about a second. The model runs in your browser, so the image is never uploaded. Copy the FEN, or open the position in the lichess analysis board.

If the image holds several boards, each one is read and listed. Pick the one you want.

What the FEN says

Take this position:

87654321
r
b
q
r
k
p
p
b
p
p
p
n
p
n
p
P
P
N
N
P
P
B
P
P
P
R
Q
K
B
R
abcdefgh

Its FEN is:

r1bq1rk1/pp2bppp/2n1pn2/3p4/2PP4/2N2N2/PP2BPPP/R2QKB1R w KQ - 4 9

A FEN has six fields separated by spaces:

Field Example Meaning
Placement r1bq1rk1/… Ranks 8 to 1, separated by /. Letters are pieces (capital is White), digits count empty squares.
Side to move w w or b.
Castling KQ Which castling rights remain, or -.
En passant - The square a pawn just skipped over, or -.
Halfmove clock 4 Moves since a capture or pawn move.
Fullmove number 9 Starts at 1, grows after Black moves.

What a picture cannot tell you

An image shows where the pieces stand. That is only the first field. Whose turn it is, which castling rights survive, and the move counters are not in the pixels, so no recognizer can read them.

Chessglance fills them with the neutral default w - - 0 1. Set the ones that matter to you:

  • Side to move. It decides what an engine suggests. Check it against the game.
  • Castling. A king and rook on their home squares do not prove the right still exists. If the move list is available, use it. If not, leave -: the engine then will not suggest castling, which is the safer error.
  • Counters. Only the halfmove clock affects the fifty-move rule. Most analysis ignores both.

Orientation

Which side is at the bottom? The recognizer works it out from the position, using how pieces tend to sit on a real board. On held-out real games it is right 97.9% of the time, and 98.5% on game-like screenshots. The FEN is always written from White’s side, whatever the image showed.

Sparse endgames are genuinely ambiguous: a lone king and rook looks the same from either side. When the margin is thin the app says so and offers a one-tap flip.

Getting a clean read

Our test numbers: 100% exact boards on 1,227 lichess renders, and 99.3% on 600 boards drawn by common board libraries, with arrows, highlights and legal-move dots on them. Exact means all 64 squares right. To stay in that range:

  • Keep squares big enough. Under about 20 pixels per square is the weak spot. Screenshot at full size rather than zooming out first.
  • Top-down, 2D boards only. A photo of a wooden board taken at an angle is out of scope.
  • Leave the overlays on. Arrows, last-move tints, move dots and check glows are in the training data. You do not need to hide them.
  • Odd piece sets can fool it. Kings in a few highly stylised sets are the other known weak spot. If a piece looks wrong, the confidence map will often flag it.

Check what it flagged

Every square gets a confidence. Anything under 60% is marked red in the app and counted in the API response as uncertain_squares. The recognizer would rather flag a square than invent a piece, and chess rules repair the rest: exactly one king per side, no pawns on the back ranks, sane material. Look at the red squares, fix them in the editor, and you are done. Then compare the board to the original once. It takes five seconds.

Doing it from code

The same recognizer is available over HTTP:

curl https://api.chessglance.com/v1/recognize \
-H "X-API-Key: $API_KEY" \
-F image=@screenshot.png

The response holds fen, a confidence for every square, and every board found. See the API docs for the fields and limits.

One rule

Use it for study, puzzles, publishing and teaching. Do not use it to help you in a live game: it breaks the rules of chess.com and lichess, our terms forbid it, and scans of live games are flagged and logged for the platforms’ fair-play teams.