PGN Annotator

Chess-Artist is a very nice program to annotate PGN games. Annotate follows a different path, it stores and keeps the analysis results in a multi functional database, the Polyglot book format. The current main Polyglot book database contains over 51 million positions with the scores and depths from top engines and with that we can annotate (your) PGN games in a blink of an eye. Consider the immortal game of Anderssen vs Kieseritzky and the 3 output modes of Annotate.

1. Blunder check

2. Full annotation

3. Full annotation with long engine name



Annotate PGN - Select a PGN, there after the Book Database and choose the output mode. For example select morphy.pgn and annotator.bin and all games of Morphy are stored in the folder pgn\output.pgn

Basically this is what the program is about, unless you want more, for instance:

  1. Analyze and store your own games with any UCI engine to improve your play, a personal example.
  2. Analyze and store the games of your favorite (or own) engine to improve its play.
  3. Extend the current Book Database with more analyzed positions.
  4. Create your own analyzed Book Database.

Analyze your own games or engine games

Make Analyzed Book - Select the PGN and wait till the engine menu arrives, manage the engine settings (see example) and when ready press "S". For example, select "ProDeo.pgn", press "S" and the Book Database "ProDeo.bin" will be created. Then run Annotate PGN and figure out where ProDeo 2.2 (or its opponent) went wrong.

Merge Books - Will merge 2 books into one, the output is always book.bin

Make Engine Book - Create a Book Database from annotated engine-engine matches (with depth and score). Example: select ccrl-3500.pgn (only 32 games), a book ccrl-3500.bin will be created and you are prompted to make an engine name selection. Type a part of the engine name (Stoc for Stockfish or Dragon for Komodo Dragon) is suffiecient to store all the scores and depths of that particular engine in the book. Type a * in case you want all games.

Make Player PGN - Create a specific Player PGN. For instance, create a PGN with the games of Kasparov from MillionBase 3.5, type Kasparov and kasparov.pgn will be created. Use the PGN (for instance) with Make Analyzed Book.

Make Players PGN - Does the same as above but for multiple players at the same

time. Consider the file players.txt in the root folder, 156 top players from the past and present. Using this function with MillionBase 3.5 will create a (large) PGN with the games these players played against each other. Example, in case you only want the games of Kasparov vs Karpov create a small players.txt file with only their names.

Find Position - also direct reachable via the [F3] function key is a powerful feature to 1) instantly find a position (as EPD taken from the clipboard) in the Book Database, 2) analyse this position with your favorite UCI chess engine (default is Stockfish 12) and 3) post the outcome on a (chess) forum with a simple copy&paste. Example. To configure (change) engines press [F1]. Note, if the position is not in the Book Database the annalysis and forum post functions still work.


Database management

Engine coding - With such a large Book Database (currently 51 million positions) analyzed by various engines it's important to classify each position. This is maintained in the text file engines.txt by giving each position a number. As one can see the Book Database mostly contains Stockfish 12 analysis. It's adviced after an analysis job (Make Analyzed Book and Make Engine Book) to code the new created book with the engine it has been analyzed with this function, the engine.txt will show up to make the decision easy. The engine code is used in the main function Annotate PGN to list the analysis engine. Positions without an engine code are listed with a * (star) only. Of course you are totally free to create your own Book Database with its own engine.txt file.

Book Statistics - Shows the internals of Book Database, the supplied 51 million Book Database as an example.

Remove Book voids - This option is reachable via the [F2] function key and weeds out zero weight book entries (see Book Statistics) in order to save disk space. Zero weight book entries are positions which are never played and thus unusable. A new book is create as books\new.bin.


Distributed Examples

as found in the download




Alekhine, Alexander


Most of his games.

AlphaZero vs Stockfish 8


The 10 cherry-picked games DeepMind provided.

Anderssen, Adolf


Most known from his immortal game againsts Lionel Kieseritzk in 1851.



The 12 games (1996 and 1997) that took the chess world by surprise.

Immortal games


The best chess has to offer.

Morphy, Paul


The legend of romantic chess.

To try yourself, choose Annotate -> Alekhine.pgn -> Alekhine.bin -> Start


A few examples to highlight the Find Position | Analyze | Post option.

2r2rk1/pp3pp1/4bb1p/q2p1P1Q/3P4/2N5/PP4PP/1K1R1B1R b - - bm Rxc3; c1 "Pillsbury - Lasker 1896";  [ view ]

b2r3r/k4p1p/p2q1np1/NppP4/3p1Q2/P4PPB/1PP4P/1K1RR3 w - - bm Rxd4; c1 "Kasparov - Topalov 1999"; [ view ]

2rq2k1/4bppp/p1rp4/1p1NpP2/4P3/2PQ4/PP4PP/3R1R1K w - - bm Ra1!; c1 "Fischer - Olicio Gadia 1960"; [ view ]


1. There are 5 annotation symbols.

?! - when score drops with 0.50

?  - when score drops with 1.00

?? - when score drops with 2.00 or more

!  - when score increases with 1.00

!! - when score increases with 2.00 or more

2. When you have an egine running in Find Position don't abort the program with ctrl_c or ctrl_break. Stop the engine first, else the engine keeps on running.

3. The big Book Database can be used as a Polyglot book but lacks the tuning of POLY 1.7

4. On some Windows systems starting Annotate will show up much to small, it's explained in 2 screenshots how to fix that permanently. [ shot-1 ] [ shot-2 ]

Download section

Two downloads, the full version with the big 51 million Book Database (size 443 Mb) and the same version with a small Book Database of 6.3 million positions (size 76 Mb).

Annotator 1.0

443 Mb

Annotator Light

76 Mb


Ferdinand Mosca

for MEA

Tord Romstad, Marco Costalba and Joona Kiiski

Fabien Letouzey

for Polyglot

for borrowing a couple of PGN's.