user7279: I'd like to automatically generate move by move analysis (based on my past games) like they have on lichess for imported games.  My guess is that I need to run a full stockfish analysis for each move (via UCI) and then glue those outputs together.   I was just wondering if I was missing an easier way?  Is there a "full" analysis option that let's you get all of the scoring/annotation in one go?

user10810: If you know a little python or shell programming you could try and use uci for each move and grab stockfish output, I will try and see if I can get this sorted at some point and share the code. 
If just being offline is your concern, then try the stockfish app, there is offline analysis.
Again, from a programming angle, there is trying to add such a feature to scid.

user11060: Stockfish, like the UCI protocol in general, does not have a single "annotate all" command. 
From your question, you seem not to be interested in a GUI option like Chessbase or Scid, but instead in how to create a program of your own.  
I've found that the script posted here: https://github.com/rpdelaney/python-chess-annotator provides a good start at a model. It's written in Python, which has a great chess library. 
There are few tricks it uses. It makes two passes: the first to identify key moves, and the second to focus on those. It works backwards so that it will already know the evaluation of the move actually played when it is calculating the optimal move. It doesn't spend time evaluating ECO positions. 
I can't guarantee that this is the best approach, but it seems to work. 

7279: <p>I'd like to automatically generate move by move analysis (based on my past games) like they have on lichess for imported games.  My guess is that I need to run a full stockfish analysis for each move (via UCI) and then glue those outputs together.   I was just wondering if I was missing an easier way?  Is there a "full" analysis option that let's you get all of the scoring/annotation in one go?</p>
 10810: <p>If you know a little python or shell programming you could try and use uci for each move and grab stockfish output, I will try and see if I can get this sorted at some point and share the code. </p>

<p>If just being offline is your concern, then try the stockfish app, there is offline analysis.</p>

<p>Again, from a programming angle, there is trying to add such a feature to scid.</p>
 11060: <p>Stockfish, like the UCI protocol in general, does not have a single "annotate all" command. </p>

<p>From your question, you seem not to be interested in a GUI option like Chessbase or Scid, but instead in how to create a program of your own.  </p>

<p>I've found that the script posted here: <a href="https://github.com/rpdelaney/python-chess-annotator" rel="nofollow noreferrer">https://github.com/rpdelaney/python-chess-annotator</a> provides a good start at a model. It's written in Python, which has a great chess library. </p>

<p>There are few tricks it uses. It makes two passes: the first to identify key moves, and the second to focus on those. It works backwards so that it will already know the evaluation of the move actually played when it is calculating the optimal move. It doesn't spend time evaluating ECO positions. </p>

<p>I can't guarantee that this is the best approach, but it seems to work. </p>
