What is the best way to go through a database of my games and have the computer generate a FEN string as well as the next move any time I make an error greater than, say, a minor piece loss?

I've looked at SCID a bit and am not sure if I can do it there. I also doubt I could do it with stockfish on the command line. Pointers?

  • 1
    Not exactly what you are asking for, but lichess has a nice feature called "Learn from your mistakes". en.lichess.org/blog/WFvLpiQAACMA8e9D/learn-from-your-mistakes which might be useful to you. Also you can upload games to lichess. Commented Mar 19, 2017 at 20:32
  • yeah, I'm messing around with that, but it won't quite do what I want. I'm looking to generate FEN strings of all the positions where I blundered, then input it into Anki Memorization App to help me learn (along with other things). So I'm looking for batch processing.
    – Kale
    Commented Mar 19, 2017 at 20:50

2 Answers 2


You may want to do it yourself. Please take a look at a PGN annotation project on Github:

The source code is easy to follow.

  • To get the engine evaluation, you have:

engBestMove, engBestScore, complexityNumber, moveChanges, pvLine = self.GetSearchScoreBeforeMove(gameNode.board().fen(), side)

  • To check whether a move you play is a blunder:

if abs(engBestScore) > 3.0:

  • To print FEN:

fen = gameNode.board().fen()

  • To print FEN and whatever you want to the console, follow the implementation in:

def WriteNotation(self, side, fmvn, sanMove, bookMove, posScore, isGameOver, engMove, engScore, complexityNumber, moveChanges, pvLine, threatMove):

  • I'm going to investigate this a bit further; a cursory glance seems like this is exactly what I'm looking for.
    – Kale
    Commented Mar 20, 2017 at 12:56
  • @Kale tell me if you need more help
    – SmallChess
    Commented Mar 20, 2017 at 12:56
  • will do; probably won't get to it (in-depth) until the weekend. Cool project!
    – Kale
    Commented Mar 20, 2017 at 12:59

You can count on crafty. Its annotate or annotateh command, allows you to automatically comment games with variations. You can specify wich side to analyze; how much difference on engine evaluation (after/before) will trigger an annotation an also the time invested analyzing each position.

After that, SCID, Chesspad, Compoches or any other software for visualizing pgn gamescores will allow you to review your game and most important than Anki, to anotate your thoughts.

Here I reproduce the pertinent fragment from a help doc about crafty commands:

annotate | annotateh <filename> <colors | name> <moves> <margin> <time>

This command is used to annotate (make comments in) a game that has already been played; annotate produces a file with the .can extension added to the original name. This file will contain pure ascii information from the annotation pass.

The annotateh command will produce an htm file.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.