Developer Tools
Chess FEN Viewer
Paste any chess FEN string to render the board, validate each of the six fields, and copy a normalized position. No signup.
Chess FEN viewer and validator
Quick presets
Start from a known position
Input
Paste a FEN string
A complete FEN has six fields: piece placement, side to move (w or b), castling rights (subset of KQkq or -), en passant target square or -, halfmove clock, and fullmove number. Loose copies with only the first four fields are accepted.
Board
Rendered position
Decoded fields
What the FEN says
- Side to move
- White
- Castling rights
- White O-O, White O-O-O, Black O-O, Black O-O-O
- En passant target
- -
- Halfmove clock (plies since last capture or pawn move)
- 0
- Fullmove number (increments after black's move)
- 1
- Material balance (+ favours white)
- 0 (centipawns / 100)
Piece counts
Material on the board
White
- ♔King1
- ♕Queen1
- ♖Rook2
- ♗Bishop2
- ♘Knight2
- ♙Pawn8
Black
- ♚King1
- ♛Queen1
- ♜Rook2
- ♝Bishop2
- ♞Knight2
- ♟Pawn8
Normalized FEN
Canonical form
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
The normalized form re-encodes the placement using minimal empty-square run-lengths and supplies missing halfmove/fullmove defaults if your input had only four or five fields.
Validation
Status
FEN is well-formed.
All six fields parsed cleanly, piece counts are sane, and the castling and en passant fields are consistent with the position.
FEN reference
The six fields
| Field | Example | Meaning |
|---|---|---|
| Piece placement | rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR | Ranks 8 to 1, files a to h. Upper case is white. Digits 1-8 are empty squares. Ranks separated by /. |
| Side to move | w | w means white moves next, b means black moves next. |
| Castling rights | KQkq | Subset of KQkq. K is white kingside, Q white queenside, k black kingside, q black queenside. Use - for none. |
| En passant target | - | The square that a capturing pawn would move to (always on rank 3 or 6). Use - if no en passant capture is available. |
| Halfmove clock | 0 | Plies since the last capture or pawn move. Resets to 0 on capture or pawn move. Triggers the 50-move rule at 100. |
| Fullmove number | 1 | Starts at 1. Increments after every black move (so white's first move is still move 1). |
How to use
- Paste a FEN string into the input, or pick a preset to load the starting position, a famous game, or a worked example.
- Read the board: rank 8 is at the top by default. Click Flip board to view from black's side, or toggle coordinates to show or hide file letters and rank numbers.
- Check the decoded fields panel for side to move, castling rights, en passant target, halfmove clock, fullmove number, and the centipawn material balance.
- Read the validation panel for any errors and warnings, including illegal placement characters, wrong file counts per rank, repeated castling flags, en passant targets on the wrong rank, and castling rights that do not match the kings and rooks on the board.
- Click Copy normalized FEN to grab the canonical form, which re-encodes the placement with minimal run-length empties and supplies defaults for any missing halfmove or fullmove fields.
About this tool
Chess FEN Viewer parses any Forsyth-Edwards Notation string and renders the position as a board in your browser. FEN is the universal text format for chess positions: it packs the entire game state into six space-separated fields. The first field is the piece placement, written rank 8 down to rank 1 with files a through h. Upper-case letters (K, Q, R, B, N, P) are white pieces, lower-case letters (k, q, r, b, n, p) are black, and digits 1 through 8 represent runs of empty squares. The remaining five fields describe whose turn it is (w or b), the castling rights still available (a subset of KQkq, or - for none), the en passant target square if a pawn just advanced two squares, the halfmove clock used to count plies toward the 50-move rule, and the fullmove number that increments after every black move. The tool validates each field independently and surfaces real engine-rejecting problems: the wrong number of files in a rank, an illegal character in the placement, a side-to-move other than w or b, repeated castling flags, an en passant target on the wrong rank for the side to move, a halfmove clock that has crossed the 50-move threshold, more than one king of a single color, pawns parked on the 1st or 8th rank, and castling rights that name a king or rook that is not actually on its home square. Loose four-field copies from Lichess study links or chess.com analysis URLs are accepted: the tool fills in 0 1 for the missing halfmove and fullmove numbers and flags the missing fields as warnings. The decoded panel shows side to move, expanded castling rights, en passant target, both move counters, a centipawn material balance, and per-color counts of every piece. The board renders with Unicode chess glyphs so it works on any device without an external font or image. Flip the board to view from black's side, toggle the file and rank coordinates, and copy a canonical normalized FEN that re-encodes the placement using minimal run-length empties. Useful for chess developers building engines, bots, opening trees, or analysis tools; for streamers and writers who paste FEN strings into articles and want to preview the result; and for players who want to inspect a position quickly without opening a board editor. All parsing, validation, and rendering run locally in your browser; the FEN strings you paste are never uploaded.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
PGN Viewer
Replay any chess PGN move by move with a board, move list, and per-position FEN export.
Open tool
Date & TimeChess Clock
Two-player game clock with Fischer, Bronstein, and simple delay modes and standard chess presets.
Open tool
DeveloperTruth Table Generator
Boolean expression to truth table with tautology check and SOP/POS forms.
Open tool
DeveloperSnowflake ID Decoder
Decode Discord, Twitter or X, and Instagram snowflake IDs to a date and field breakdown.
Open tool
DeveloperRegex Tester
Live regex testing with highlights, capture groups, and replacement preview.
Open tool
ConverterMorse Code Translator
Bidirectional morse translator with audio playback and a full reference chart.
Open tool
ConverterNATO Phonetic Alphabet Translator
Bidirectional NATO phonetic translator with digit modes and a reference chart.
Open tool