Logo
Chess Analyzer Pro
ReleasesDocsBlogDownload

Documentation

Getting StartedUsage GuideConfigurationArchitectureFiles & DataHow We Calculate AnalysisChangelogFor DevelopersTroubleshootingAPI ReferenceUI Components

Chess Analyzer Pro

Professional local-first chess analysis.

Project

  • GitHub Repository
  • Download
  • Documentation
  • Report Feedback/Bug

Resources

  • Stockfish Engine
  • Beekeeper Studio
  • My Lichess Profile
  • My Chess.com Profile

Developer

  • Portfolio
  • GitHub Profile
  • LinkedIn
  • Contact Me
© 2026 Utkarsh Tiwari. Open Source.

Files & Data Structure

Chess Analyzer Pro manages several auto-generated files to maintain your settings and data locally.


Auto-Generated Files

The application creates these files in the root directory (where the .exe or main.py is located).

File NameDescription
config.jsonUser Settings. JSON file storing your Engine Path, API Keys, Usernames, Theme preferences, Board Theme, and Piece Theme.
analysis_cache.dbLocal Database. A SQLite database that stores both the position analysis cache AND your complete game history with all analysis data.
chess_analyzer.logDebug Logs. A text file capturing application events and errors for troubleshooting.
games.csvExported Data. Only exists if you've used the Export feature. Contains your game history in CSV format for backup.

Database Schema (analysis_cache.db)

The SQLite database contains two main tables:

position_cache - Analysis Cache

Stores engine analysis results by position to avoid re-analyzing.

ColumnTypeDescription
fenTEXTPosition in FEN notation (primary key)
eval_cpINTEGEREvaluation in centipawns
eval_mateINTEGERMate distance (if forced mate)
best_moveTEXTEngine's best move (UCI)
pvTEXTPrincipal variation (JSON)
depthINTEGERAnalysis depth

games - Game History

Stores complete analyzed games with all metadata.

ColumnTypeDescription
game_idTEXTUnique identifier (primary key)
whiteTEXTWhite player name
blackTEXTBlack player name
white_eloTEXTWhite player rating
black_eloTEXTBlack player rating
resultTEXTGame result (1-0, 0-1, 1/2-1/2)
dateTEXTGame date
eventTEXTEvent name
ecoTEXTECO opening code
openingTEXTOpening name
terminationTEXTHow the game ended
sourceTEXTOrigin (file, chesscom, lichess)
pgnTEXTFull PGN text
moves_jsonTEXTSerialized move analysis data
summary_jsonTEXTSerialized game summary stats
timestampREALWhen the game was saved

Inspecting Your Data

Analysis Cache & Game History (analysis_cache.db)

This SQLite database ensures you never have to wait for the same analysis twice and preserves your complete game library.

[!TIP] Recommended Tool: Use Beekeeper Studio (Community Edition) or DB Browser for SQLite to open and inspect the database.

Configuration (config.json)

You can manually edit this file if needed, but it is recommended to use the in-app Settings menu to avoid syntax errors.

Example config.json:

{
    "engine_path": "stockfish/stockfish.exe",
    "theme": "dark",
    "gemini_api_key": "AIza...",
    "lichess_token": "lip_...",
    "lichess_username": "DrNykterstein",
    "chesscom_username": "MagnusCarlsen",
    "accent_color": "#4CAF50",
    "board_theme": "default",
    "piece_theme": "cburnett"
}

Debug Logs (chess_analyzer.log)

Check this file for error messages and application events:

# View the last 50 lines
tail -50 chess_analyzer.log

# Windows PowerShell
Get-Content chess_analyzer.log -Tail 50

Environment Variables (.env)

For development, you can use a .env file to store API keys instead of config.json:

GEMINI_KEY=your_gemini_api_key
LICHESS_TOKEN=your_lichess_token

[!NOTE] The .env file is only used during development. The packaged .exe reads from config.json.


Data Backup & Restore

Export to CSV

  1. Go to History tab.
  2. Click the Export button (or use menu).
  3. Choose a save location for games.csv.
  4. All game metadata and summaries are exported.

Import from CSV

  1. Go to History tab.
  2. Click the Import button.
  3. Select your previously exported games.csv.
  4. Games are restored to your history (duplicates are skipped).

Data Privacy

  • 100% Local: All files listed above stay on your machine.
  • No Cloud Storage: We do not upload your games, keys, or logs to any server.
  • No Telemetry: The application does not collect or transmit any usage data.
  • Your Keys Are Safe: API keys are stored locally in config.json and are never shared.

The only network requests made by the application are:

  1. Fetching games from Chess.com/Lichess APIs (when you request it).
  2. Calling Google Gemini API for AI summaries (when you request it).