Answers.Body: <p>Check <a href="https://lucaschess.pythonanywhere.com/" rel="noreferrer">Lucas Chess</a> and <a href="https://chessgame-analyzer.creatica.org/" rel="noreferrer">Creatica</a>.</p>
  <p>Both are free and run locally on your machine.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-07-31T20:18:43.497Z
Answers.LastActivityDate: 2022-08-01T00:22:46.393Z
Answers.LastEditDate: 2022-08-01T00:22:46.393Z
Answers.UserDisplayName: Wassim Saeed
Answers.Body: <p>I have a program called <a href="https://github.com/fsmosca/chess-artist" rel="nofollow noreferrer">Chess Artist.</a> It is written in python, open source and there is <a href="https://github.com/fsmosca/chess-artist/releases" rel="nofollow noreferrer">windows executable</a> in case you don't like the python script.</p>
  <p>You can access the help by sending the command <code>help</code> from command prompt.</p>
  <pre><code>PS F:\Github\chess-artist&gt; ./chess_artist.exe --help
  </code></pre>
  <p>In that example, the chess_artist.exe is located in <code>F:\Github\chess-artist</code>, it is up to you where you put the exe file after you download it.</p>
  <p><strong>Output</strong></p>
  <pre><code>Read pgn and analyze games in it or analyze epd file or test engines with epd test suites
  
  optional arguments:
    -h, --help            show this help message and exit
    -i INFILE, --infile INFILE
                          input pgn or EPD filename
    -o OUTFILE, --outfile OUTFILE
                          output filename
    -e ENGINEFILE, --enginefile ENGINEFILE
                          input engine filename
    --enginename ENGINENAME
                          input uci engine id name, if not specified engine id name will be used.
    -n ENGINEOPTIONS, --engineoptions ENGINEOPTIONS
                          input engine options, like threads, hash and others example: --engineoptions &quot;Hash value 128,
                          Threads value 1&quot;
    --bookfile BOOKFILE   input book filename
    --eval {static,search}
                          eval can be static or search. static uses static evaluation of Stockfish
    --movetime MOVETIME   input analysis time per position in ms, (default=1000)
    --depth DEPTH         input analysis depth, (default=0)
    --movestart MOVESTART
                          input move number to start the analysis, this is used when analyzing games, (default=8)
    --moveend MOVEEND     input move number to end the analysis, this is used when analyzing games, (default=1000)
    --puzzle-score-margin PUZZLE_SCORE_MARGIN
                          if deep score less shallow score is this margin or more then save the position as puzzle,
                          (default=15 centipawn). If this is low more positions will be saved.
    --log                 Save log to chess_artist_log.txt
    --job {analyze,test,createpuzzle}
                          type of jobs to execute, can be analyze or test or createpuzzle. To create puzzle: --infile
                          games.pgn --job createpuzzle, To analyze pgn: --infile games.pgn --job analyze, To annotate
                          epd: --infile positions.epd --job analyze, To test engine with epd: --infile test.epd --job
                          test
    --wordycomment        There are more words in the move comments such as better is, planning, excellent is, Cool is
                          and others.
    --color COLOR         enter color of player to analyze, (default=None) can be white or black
    --player PLAYER       enter player name to analyze, (default=None). Player opponent moves are not analyzed. If you
                          use --player do not use --player-and-opp.
    --player-and-opp PLAYER_AND_OPP
                          enter player name to analyze. Player opponent moves are also analyzed, (default=None). If you
                          use --player-and-opp do not use --player.
    --loss                This is used to analyze games where a player lost his/her game. Example to analyze lost games
                          by Mangnus, use: chess_artist.exe --player &quot;Carlsen, Magnus&quot; --loss ... other options. To
                          analyze all games with non-draw results: chess_artist.exe --loss ... other options
    --draw                This is used to analyze games where a player has drawn his/her game. Example to analyze drawn
                          games by Mangnus, use: chess_artist.exe --player &quot;Carlsen, Magnus&quot; --draw ... other options.
                          To analyze all games with draw results: chess_artist.exe --draw ... other options
    --min-score-stop-analysis MIN_SCORE_STOP_ANALYSIS
                          enter a value in pawn unit to stop the engine analysis, (default=-3.0). If the score of the
                          game move is -3.0 or less chess_artist would no longer analyze the position to look for
                          alternative move.
    --max-score-stop-analysis MAX_SCORE_STOP_ANALYSIS
                          enter a value in pawn unit to stop the engine analysis, (default=3.0). If the score of the
                          game move is 3 or more chess_artist would no longer analyze the position to look for
                          alternative move.
    --game960             A flag to enable chess960 of a variant game which will be used for python-chess.
  </code></pre>
  <p><strong>Example</strong></p>
  <p>Let's analyze all the games of caruana where he lost from the current olympiad held in India.</p>
  <ol>
  <li>Download the latest olympiad games from <a href="https://theweekinchess.com/" rel="nofollow noreferrer">weekinchess</a> on the link below, be careful if you press it, it will download the file.</li>
  </ol>
  <p><a href="https://theweekinchess.com/assets/files/pgn/olym22.pgn" rel="nofollow noreferrer">https://theweekinchess.com/assets/files/pgn/olym22.pgn</a></p>
  <ol start="2">
  <li>Create a command line from the command prompt.</li>
  </ol>
  <p>In <code>--movetime 3000</code>, the 3000 is in milliseconds in other words, the 3000 is just <code>3 seconds</code>.</p>
  <pre><code>PS F:\Github\chess-artist&gt; ./chess_artist.exe -i &quot;olym22.pgn&quot; -o &quot;analysis_olym22.pgn&quot; -e &quot;stockfish_15_modern.exe&quot; -n &quot;Hash value 128&quot; --eval search --movetime 3000 --movestart 12 --moveend 80 --job analyze --wordycomment --player &quot;Caruana, Fabiano&quot; --loss --min-score-stop-analysis -5 --max-score-stop-analysis 5
  </code></pre>
  <p><strong>Example output</strong></p>
  <pre><code>[Event &quot;44th Olympiad 2022&quot;]
  [Site &quot;Chennai IND&quot;]
  [Date &quot;2022.08.06&quot;]
  [Round &quot;8.2&quot;]
  [White &quot;Caruana, Fabiano&quot;]
  [Black &quot;Gukesh, D&quot;]
  [Result &quot;0-1&quot;]
  [BlackElo &quot;2684&quot;]
  [BlackFideId &quot;46616543&quot;]
  [BlackTeam &quot;India 2&quot;]
  [BlackTitle &quot;GM&quot;]
  [Board &quot;1&quot;]
  [ECO &quot;B31&quot;]
  [EventDate &quot;2022.07.29&quot;]
  [Opening &quot;Sicilian&quot;]
  [Variation &quot;Nimzovich-Rossolimo attack (with ...g6, without ...d6)&quot;]
  [WhiteElo &quot;2783&quot;]
  [WhiteFideId &quot;2020009&quot;]
  [WhiteTeam &quot;United States of America&quot;]
  [WhiteTitle &quot;GM&quot;]
  [Annotator &quot;engine: Stockfish 15, program: Chess Artist v3.2.0&quot;]
  
  {Hash 128mb, Threads 1, analysis 3.0s per position, move score is in pawn unit,
  positive is good for white and negative is good for black}
  1. e4 c5 2. Nf3 Nc6 
  3. Bb5 g6 4. O-O Bg7 
  5. Bxc6 bxc6 6. Re1 Qc7 
  7. h3 d6 8. e5 dxe5 
  9. d3 c4 10. Nc3 cxd3 
  11. cxd3 Nh6 12. Nxe5 {+0.54} Nf5 
  13. Bf4 {+0.65} Qb7 14. Na4 {+0.67} (14. d4 O-O 15. g4 g5 16. gxf5 {+0.77}) f6 
  15. Nf3 $5 {+1.01} O-O 16. d4 $2 {+0.70} ({Better is} 16. Nc5 Qxb2 17. Qa4 Qb5 18. Qa3 {+1.36}) g5 
  17. Bh2 $2 {+0.39} ({Superior is} 17. Nc5 {+1.06}) h5 18. Re4 $2 {+0.38} ({Preferable is} 18. Nc5 {+0.94}) Qd7 
  19. Qc2 {+0.49} ({More useful is} 19. Qd3 Rf7 20. Rd1 Bf8 21. Qe2 {+0.75}) Rf7 20. Rae1 {+0.51} (20. Rd1 Bf8 21. Qe2 Rg7 22. Nd2 {+0.53}) Bf8 
  21. Qe2 $1 {+0.39} (21. Rd1 Rg7 22. Nd2 g4 23. hxg4 {+0.37}) Qd5 22. Nc3 {+0.48, with a better king safety} Qd7 
  23. Qc4 $2 {+0.00} ({Superior is} 23. Rd1 a5 24. Na4 Qa7 25. Nc5 {+0.54}) Qb7 24. b4 $6 {-0.16} ({Worthier is} 24. Na4 Qb5 25. Qc2 Ng7 26. g4 {+0.47}) e6 
  25. Rb1 $5 {+0.12} Qd7 26. Rbe1 {-0.15} ({More useful is} 26. a4 {+0.32}) Qb7 
  27. Rb1 {-0.18} Qd7 28. a3 $2 {-0.76} ({Brilliant is} 28. a4 a5 29. bxa5 Ba6 30. Qxe6 {+0.51}) a5 
  29. Na4 $2 {-0.84} ({More valuable is} 29. bxa5 Rxa5 30. a4 Ba6 31. Qxe6 {-0.64}) Qd8 30. bxa5 $5 {-0.75} Rxa5 
  31. Nc5 $4 {-2.15} ({Brilliant is} 31. Qc2 {-0.47}) Qd5 32. Qe2 {-2.11} Rxa3 
  33. Rd1 {-3.08} ({More valuable is} 33. Qe1 {-2.42}) Rfa7 34. g4 {-5.15} hxg4 
  35. hxg4 {-4.58} Nh6 36. Bg3 {-5.13} e5 
  37. Nxe5 {-5.77} fxe5 38. Rxe5 {-5.81} Bxg4 
  39. Qd2 {-6.72} Qf3 40. Rxg5+ {-8.37} Rg7 
  41. Re1 {-10.42} Bh3 42. Bd6 {-14.62} Bxd6 
  43. Rxg7+ {-17.75} Kxg7 44. Qg5+ {-319.77} Kh7 
  45. Ne4 {-319.89} Qxe4 {WhiteBlunder=1, WhiteBad=6} 0-1
  </code></pre>
  <p>It can comment on <code>king safety</code>, <code>piece mobility</code> and <code>passed pawn</code> evaluation with the use of <code>eval</code> command from stockfish, depending on the position. It also has threat comments, like <code>intending to play ...</code> and <code>followed by ...</code></p>
  <p>At the end it will comment on the number of blunder (??) and mistake (?) each player has made.</p>
  <p>Example screenshot from HCE gui after loading the analyzed games.</p>
  <p><a href="https://i.sstatic.net/aw7fR.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/aw7fR.png" alt="enter image description here" /></a></p>
  <p>The comments <code>preferable is</code>, <code>more valuable is</code> are due to the flag <code>--wordycomment</code> in the command line.</p>
  <p>You may save the command line to a <code>batch</code> file to easily rerun the program.</p>
  <p><code>ana.bat</code></p>
  <pre><code>./chess_artist.exe -i &quot;olym22.pgn&quot; -o &quot;analysis_olym22.pgn&quot; -e &quot;stockfish_15_modern.exe&quot; -n &quot;Hash value 128&quot; --eval search --movetime 3000 --movestart 12 --moveend 80 --job analyze --wordycomment --player &quot;Caruana, Fabiano&quot; --loss --min-score-stop-analysis -5 --max-score-stop-analysis 5
  </code></pre>
  <p>If you have other features to include in this command line tool, you may post it in github, I might implement it.</p>
  <p><strong>Notes</strong></p>
  <ol>
  <li><p>Do not use <code>--depth n</code> option, just use <code>--movetime m</code>.</p>
  </li>
  <li><p>If you re-run the analysis command and maintain the same output file specified from <code>-o</code> option, games that are already analyzed will not be analyzed again.</p>
  </li>
  <li><p>This program does not support analyzing games in parallel. But if you want to do so, just split your input games. For example you have 4-cores and want to use 2 cores, split your input pgn file into 2 and run each pgn file in chess_artist. Be sure they have different output filenames specified from the <code>-o</code> option.</p>
  </li>
  <li><p>To download all files in the chess-artist repo in github, open your powershell on windows 10 and send the command below.</p>
  </li>
  </ol>
  <pre><code>git clone https://github.com/fsmosca/chess-artist.git
  </code></pre>
  <p>Example:</p>
  <pre><code>PS F:\Tmp&gt; git clone https://github.com/fsmosca/chess-artist.git
  Cloning into 'chess-artist'...
  remote: Enumerating objects: 1135, done.
  remote: Counting objects: 100% (153/153), done.
  remote: Compressing objects: 100% (77/77), done.
  remote: Total 1135 (delta 84), reused 134 (delta 67), pack-reused 982
  Receiving objects: 100% (1135/1135), 45.46 MiB | 2.42 MiB/s, done.
  Resolving deltas: 100% (594/594), done.
  PS F:\Tmp&gt; cd chess-artist
  PS F:\Tmp\chess-artist&gt; ls
  
  
      Directory: F:\Tmp\chess-artist
  
  
  Mode                 LastWriteTime         Length Name
  ----                 -------------         ------ ----
  d-----        2022-08-08     12:01                Book
  d-----        2022-08-08     12:01                Engine
  d-----        2022-08-08     12:01                EPD
  d-----        2022-08-08     12:01                PGN
  -a----        2022-08-08     12:01            435 .gitignore
  -a----        2022-08-08     12:01            441 analyze_atomic_game.bat
  -a----        2022-08-08     12:01            339 analyze_chess_game.bat
  -a----        2022-08-08     12:01         125661 chess_artist.py
  -a----        2022-08-08     12:01           1495 create_puzzle.bat
  -a----        2022-08-08     12:01          35815 LICENSE
  -a----        2022-08-08     12:01           8686 README.md
  -a----        2022-08-08     12:01             35 requirements.txt
  </code></pre>
  <p>There is no exe file here, get it at <a href="https://github.com/fsmosca/chess-artist/releases" rel="nofollow noreferrer">release page.</a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-12-10T12:21:36.483Z
Answers.Text: has anyone built a GUI for this
  Seems pretty promising
Answers.UserDisplayName: Wassim Saeed
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-12-10T12:24:04.840Z
Answers.Text: can word comments be translated
  can databases be accessed and extract relevant data from
  can egtb be accessed without engine analysis
Answers.UserDisplayName: Wassim Saeed
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-12-11T02:43:06.273Z
Answers.Text: Translation is possible. Database support is not implemented yet, started but is not finished yet. I am working on SQlite. EGTB access is possible.
Answers.UserDisplayName: ferdy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-12-11T05:54:08.267Z
Answers.Text: and the GUI for the analysis parameters
Answers.UserDisplayName: Wassim Saeed
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-12-11T06:50:15.697Z
Answers.Text: I plan to [add a streamlit web app interface](https://i.imgur.com/icCEII9.png).
Answers.UserDisplayName: ferdy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-12-11T06:54:20.313Z
Answers.Text: Nice.
  Thanks
  where to follow the progress
Answers.UserDisplayName: Wassim Saeed
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-12-11T07:42:03.407Z
Answers.Text: Progress will be seen in github repo.
Answers.UserDisplayName: ferdy
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-08-08T00:13:04.027Z
Answers.LastActivityDate: 2022-08-08T04:13:14.957Z
Answers.LastEditDate: 2022-08-08T04:13:14.957Z
Answers.UserDisplayName: ferdy
Answers.Body: <p>I recommend <a href="https://en.wikipedia.org/wiki/Shane%27s_Chess_Information_Database" rel="nofollow noreferrer">Scid</a>. Even some forks of scid such as ChessDB are popular. If your intention is to comment games, work with chess databases, and so on (rather than engine evaluation, play aginst engines, etc.), you can still use scid or use one of its alternatives such as <a href="http://chessdb.sourceforge.net/" rel="nofollow noreferrer">chessDB</a>, <a href="https://chessx.sourceforge.io/index.html" rel="nofollow noreferrer">chessX</a> or <a href="http://scidb.sourceforge.net/index.html" rel="nofollow noreferrer">scidb</a> .</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-08-05T14:03:14.820Z
Answers.LastActivityDate: 2022-08-05T15:13:42.407Z
Answers.LastEditDate: 2022-08-05T15:13:42.407Z
Answers.UserDisplayName: Cyriac Antony
Body: <p>What free programs do exist to comment chess games? For Windows, Linux, and Mac.</p>
  <p>I know that ChessBase and ChessOK Aquarium can do it. However, it is my understanding that they are not free.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-07-31T20:06:41.390Z
Comments.Text: Related: [Online tool for chess analysis: comment, add variations, insert diagrams, print](https://chess.stackexchange.com/q/35467/26335)
Comments.UserDisplayName: SecretAgentMan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-08-02T04:08:05.443Z
Comments.Text: i found that tarrasch chess worked on both windows and with the use of wine, on linux. i would assume that it works on mac as well
Comments.UserDisplayName: brekker
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-08-03T10:26:09.823Z
Comments.Text: Voting to reopen this, as this asks for *programs*, not websites.
Comments.UserDisplayName: Glorfindel
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-08-03T13:28:35.197Z
Comments.Text: @Glorfindel yes, I agree. Question is related to the linked one, but not a dupe.
Comments.UserDisplayName: SecretAgentMan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-08-04T01:43:02.473Z
Comments.Text: @SecretAgentMan i'm not familiar with creatica, but Lucas Chess has a downloadable program which runs locally and would thus be a suitable answer
Comments.UserDisplayName: brekker
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-08-04T03:07:04.020Z
Comments.Text: @Glorfindel does lichess running on Firefox count as a program? :P
Comments.UserDisplayName: qwr
Tags: <engines><analysis>
Title: What free programs do exist to comment chess games? For Windows, Linux, and Mac
ThreadText: # What free programs do exist to comment chess games? For Windows, Linux, and Mac
  
  (Asked by: username_0 on 2022-07-31)
  
  What free programs do exist to comment chess games? For Windows, Linux, and Mac.
  
  I know that ChessBase and ChessOK Aquarium can do it. However, it is my understanding that they are not free.
  
  **Tags:** engines, analysis
  
  > **Comments:**
  > **username_1**: Related: [Online tool for chess analysis: comment, add variations, insert diagrams, print](https://chess.stackexchange.com/q/35467/26335)  
  > **username_2**: i found that tarrasch chess worked on both windows and with the use of wine, on linux. i would assume that it works on mac as well  
  > **username_3**: Voting to reopen this, as this asks for *programs*, not websites.  
  > **username_1**: @username_3 yes, I agree. Question is related to the linked one, but not a dupe.  
  > **username_2**: @username_1 i'm not familiar with creatica, but Lucas Chess has a downloadable program which runs locally and would thus be a suitable answer  
  > **username_4**: @username_3 does lichess running on Firefox count as a program? :P  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_5 on 2022-07-31. Score: 5 | Accepted answer
  
  Check [Lucas Chess](https://lucaschess.pythonanywhere.com/) and [Creatica](https://chessgame-analyzer.creatica.org/).
  
  Both are free and run locally on your machine.
  
  
  ---
  
  ### Answer by username_6 on 2022-08-08. Score: 6
  
  I have a program called Chess Artist. It is written in python, open source and there is windows executable in case you don't like the python script.
  You can access the help by sending the command help from command prompt.
  PS F:\Github\chess-artist> ./chess_artist.exe --help
  
  In that example, the chess_artist.exe is located in F:\Github\chess-artist, it is up to you where you put the exe file after you download it.
  Output
  Read pgn and analyze games in it or analyze epd file or test engines with epd test suites
  
  optional arguments:
    -h, --help            show this help message and exit
    -i INFILE, --infile INFILE
                          input pgn or EPD filename
    -o OUTFILE, --outfile OUTFILE
                          output filename
    -e ENGINEFILE, --enginefile ENGINEFILE
                          input engine filename
    --enginename ENGINENAME
                          input uci engine id name, if not specified engine id name will be used.
    -n ENGINEOPTIONS, --engineoptions ENGINEOPTIONS
                          input engine options, like threads, hash and others example: --engineoptions "Hash value 128,
                          Threads value 1"
    --bookfile BOOKFILE   input book filename
    --eval {static,search}
                          eval can be static or search. static uses static evaluation of Stockfish
    --movetime MOVETIME   input analysis time per position in ms, (default=1000)
    --depth DEPTH         input analysis depth, (default=0)
    --movestart MOVESTART
                          input move number to start the analysis, this is used when analyzing games, (default=8)
    --moveend MOVEEND     input move number to end the analysis, this is used when analyzing games, (default=1000)
    --puzzle-score-margin PUZZLE_SCORE_MARGIN
                          if deep score less shallow score is this margin or more then save the position as puzzle,
                          (default=15 centipawn). If this is low more positions will be saved.
    --log                 Save log to chess_artist_log.txt
    --job {analyze,test,createpuzzle}
                          type of jobs to execute, can be analyze or test or createpuzzle. To create puzzle: --infile
                          games.pgn --job createpuzzle, To analyze pgn: --infile games.pgn --job analyze, To annotate
                          epd: --infile positions.epd --job analyze, To test engine with epd: --infile test.epd --job
                          test
    --wordycomment        There are more words in the move comments such as better is, planning, excellent is, Cool is
                          and others.
    --color COLOR         enter color of player to analyze, (default=None) can be white or black
    --player PLAYER       enter player name to analyze, (default=None). Player opponent moves are not analyzed. If you
                          use --player do not use --player-and-opp.
    --player-and-opp PLAYER_AND_OPP
                          enter player name to analyze. Player opponent moves are also analyzed, (default=None). If you
                          use --player-and-opp do not use --player.
    --loss                This is used to analyze games where a player lost his/her game. Example to analyze lost games
                          by Mangnus, use: chess_artist.exe --player "Carlsen, Magnus" --loss ... other options. To
                          analyze all games with non-draw results: chess_artist.exe --loss ... other options
    --draw                This is used to analyze games where a player has drawn his/her game. Example to analyze drawn
                          games by Mangnus, use: chess_artist.exe --player "Carlsen, Magnus" --draw ... other options.
                          To analyze all games with draw results: chess_artist.exe --draw ... other options
    --min-score-stop-analysis MIN_SCORE_STOP_ANALYSIS
                          enter a value in pawn unit to stop the engine analysis, (default=-3.0). If the score of the
                          game move is -3.0 or less chess_artist would no longer analyze the position to look for
                          alternative move.
    --max-score-stop-analysis MAX_SCORE_STOP_ANALYSIS
                          enter a value in pawn unit to stop the engine analysis, (default=3.0). If the score of the
                          game move is 3 or more chess_artist would no longer analyze the position to look for
                          alternative move.
    --game960             A flag to enable chess960 of a variant game which will be used for python-chess.
  
  Example
  Let's analyze all the games of caruana where he lost from the current olympiad held in India.
  
  Download the latest olympiad games from weekinchess on the link below, be careful if you press it, it will download the file.
  
  https://theweekinchess.com/assets/files/pgn/olym22.pgn
  
  Create a command line from the command prompt.
  
  In --movetime 3000, the 3000 is in milliseconds in other words, the 3000 is just 3 seconds.
  PS F:\Github\chess-artist> ./chess_artist.exe -i "olym22.pgn" -o "analysis_olym22.pgn" -e "stockfish_15_modern.exe" -n "Hash value 128" --eval search --movetime 3000 --movestart 12 --moveend 80 --job analyze --wordycomment --player "Caruana, Fabiano" --loss --min-score-stop-analysis -5 --max-score-stop-analysis 5
  
  Example output
  [Event "44th Olympiad 2022"]
  [Site "Chennai IND"]
  [Date "2022.08.06"]
  [Round "8.2"]
  [White "Caruana, Fabiano"]
  [Black "Gukesh, D"]
  [Result "0-1"]
  [BlackElo "2684"]
  [BlackFideId "46616543"]
  [BlackTeam "India 2"]
  [BlackTitle "GM"]
  [Board "1"]
  [ECO "B31"]
  [EventDate "2022.07.29"]
  [Opening "Sicilian"]
  [Variation "Nimzovich-Rossolimo attack (with ...g6, without ...d6)"]
  [WhiteElo "2783"]
  [WhiteFideId "2020009"]
  [WhiteTeam "United States of America"]
  [WhiteTitle "GM"]
  [Annotator "engine: Stockfish 15, program: Chess Artist v3.2.0"]
  
  {Hash 128mb, Threads 1, analysis 3.0s per position, move score is in pawn unit,
  positive is good for white and negative is good for black}
  1. e4 c5 2. Nf3 Nc6 
  3. Bb5 g6 4. O-O Bg7 
  5. Bxc6 bxc6 6. Re1 Qc7 
  7. h3 d6 8. e5 dxe5 
  9. d3 c4 10. Nc3 cxd3 
  11. cxd3 Nh6 12. Nxe5 {+0.54} Nf5 
  13. Bf4 {+0.65} Qb7 14. Na4 {+0.67} (14. d4 O-O 15. g4 g5 16. gxf5 {+0.77}) f6 
  15. Nf3 $5 {+1.01} O-O 16. d4 $2 {+0.70} ({Better is} 16. Nc5 Qxb2 17. Qa4 Qb5 18. Qa3 {+1.36}) g5 
  17. Bh2 $2 {+0.39} ({Superior is} 17. Nc5 {+1.06}) h5 18. Re4 $2 {+0.38} ({Preferable is} 18. Nc5 {+0.94}) Qd7 
  19. Qc2 {+0.49} ({More useful is} 19. Qd3 Rf7 20. Rd1 Bf8 21. Qe2 {+0.75}) Rf7 20. Rae1 {+0.51} (20. Rd1 Bf8 21. Qe2 Rg7 22. Nd2 {+0.53}) Bf8 
  21. Qe2 $1 {+0.39} (21. Rd1 Rg7 22. Nd2 g4 23. hxg4 {+0.37}) Qd5 22. Nc3 {+0.48, with a better king safety} Qd7 
  23. Qc4 $2 {+0.00} ({Superior is} 23. Rd1 a5 24. Na4 Qa7 25. Nc5 {+0.54}) Qb7 24. b4 $6 {-0.16} ({Worthier is} 24. Na4 Qb5 25. Qc2 Ng7 26. g4 {+0.47}) e6 
  25. Rb1 $5 {+0.12} Qd7 26. Rbe1 {-0.15} ({More useful is} 26. a4 {+0.32}) Qb7 
  27. Rb1 {-0.18} Qd7 28. a3 $2 {-0.76} ({Brilliant is} 28. a4 a5 29. bxa5 Ba6 30. Qxe6 {+0.51}) a5 
  29. Na4 $2 {-0.84} ({More valuable is} 29. bxa5 Rxa5 30. a4 Ba6 31. Qxe6 {-0.64}) Qd8 30. bxa5 $5 {-0.75} Rxa5 
  31. Nc5 $4 {-2.15} ({Brilliant is} 31. Qc2 {-0.47}) Qd5 32. Qe2 {-2.11} Rxa3 
  33. Rd1 {-3.08} ({More valuable is} 33. Qe1 {-2.42}) Rfa7 34. g4 {-5.15} hxg4 
  35. hxg4 {-4.58} Nh6 36. Bg3 {-5.13} e5 
  37. Nxe5 {-5.77} fxe5 38. Rxe5 {-5.81} Bxg4 
  39. Qd2 {-6.72} Qf3 40. Rxg5+ {-8.37} Rg7 
  41. Re1 {-10.42} Bh3 42. Bd6 {-14.62} Bxd6 
  43. Rxg7+ {-17.75} Kxg7 44. Qg5+ {-319.77} Kh7 
  45. Ne4 {-319.89} Qxe4 {WhiteBlunder=1, WhiteBad=6} 0-1
  
  It can comment on king safety, piece mobility and passed pawn evaluation with the use of eval command from stockfish, depending on the position. It also has threat comments, like intending to play ... and followed by ...
  At the end it will comment on the number of blunder (??) and mistake (?) each player has made.
  Example screenshot from HCE gui after loading the analyzed games.
  
  The comments preferable is, more valuable is are due to the flag --wordycomment in the command line.
  You may save the command line to a batch file to easily rerun the program.
  ana.bat
  ./chess_artist.exe -i "olym22.pgn" -o "analysis_olym22.pgn" -e "stockfish_15_modern.exe" -n "Hash value 128" --eval search --movetime 3000 --movestart 12 --moveend 80 --job analyze --wordycomment --player "Caruana, Fabiano" --loss --min-score-stop-analysis -5 --max-score-stop-analysis 5
  
  If you have other features to include in this command line tool, you may post it in github, I might implement it.
  Notes
  
  Do not use --depth n option, just use --movetime m.
  
  If you re-run the analysis command and maintain the same output file specified from -o option, games that are already analyzed will not be analyzed again.
  
  This program does not support analyzing games in parallel. But if you want to do so, just split your input games. For example you have 4-cores and want to use 2 cores, split your input pgn file into 2 and run each pgn file in chess_artist. Be sure they have different output filenames specified from the -o option.
  
  To download all files in the chess-artist repo in github, open your powershell on windows 10 and send the command below.
  
  
  git clone https://github.com/fsmosca/chess-artist.git
  
  Example:
  PS F:\Tmp> git clone https://github.com/fsmosca/chess-artist.git
  Cloning into 'chess-artist'...
  remote: Enumerating objects: 1135, done.
  remote: Counting objects: 100% (153/153), done.
  remote: Compressing objects: 100% (77/77), done.
  remote: Total 1135 (delta 84), reused 134 (delta 67), pack-reused 982
  Receiving objects: 100% (1135/1135), 45.46 MiB | 2.42 MiB/s, done.
  Resolving deltas: 100% (594/594), done.
  PS F:\Tmp> cd chess-artist
  PS F:\Tmp\chess-artist> ls
  
  
      Directory: F:\Tmp\chess-artist
  
  
  Mode                 LastWriteTime         Length Name
  ----                 -------------         ------ ----
  d-----        2022-08-08     12:01                Book
  d-----        2022-08-08     12:01                Engine
  d-----        2022-08-08     12:01                EPD
  d-----        2022-08-08     12:01                PGN
  -a----        2022-08-08     12:01            435 .gitignore
  -a----        2022-08-08     12:01            441 analyze_atomic_game.bat
  -a----        2022-08-08     12:01            339 analyze_chess_game.bat
  -a----        2022-08-08     12:01         125661 chess_artist.py
  -a----        2022-08-08     12:01           1495 create_puzzle.bat
  -a----        2022-08-08     12:01          35815 LICENSE
  -a----        2022-08-08     12:01           8686 README.md
  -a----        2022-08-08     12:01             35 requirements.txt
  
  There is no exe file here, get it at release page.
  
  > **Comments:**
  > **username_5**: has anyone built a GUI for this Seems pretty promising  
  > **username_5**: can word comments be translated can databases be accessed and extract relevant data from can egtb be accessed without engine analysis  
  > **username_6**: Translation is possible. Database support is not implemented yet, started but is not finished yet. I am working on SQlite. EGTB access is possible.  
  > **username_5**: and the GUI for the analysis parameters  
  > **username_6**: I plan to [add a streamlit web app interface](https://i.imgur.com/icCEII9.png).  
  > **username_5**: Nice. Thanks where to follow the progress  
  > **username_6**: Progress will be seen in github repo.  
  
  ---
  
  ### Answer by username_7 on 2022-08-05. Score: 4
  
  I recommend [Scid](https://en.wikipedia.org/wiki/Shane%27s_Chess_Information_Database). Even some forks of scid such as ChessDB are popular. If your intention is to comment games, work with chess databases, and so on (rather than engine evaluation, play aginst engines, etc.), you can still use scid or use one of its alternatives such as [chessDB](http://chessdb.sourceforge.net/), [chessX](https://chessx.sourceforge.io/index.html) or [scidb](http://scidb.sourceforge.net/index.html) .
  
  
  ---
  
  