How ethanchenhyland/funchessengine works
FunChessEngine combines a standalone chess engine with a local Engine Lab for play, analysis, game-library management, and training. The main user workflow is to play or import a game, review positions with engine analysis, and save or organize games and study data locally. The README also documents tournament and benchmark tools, opening exploration, and an editable repertoire. The graph includes these major capabilities; unsampled implementation details are represented only where the tree or documentation supports them.
Main entry points: server.py Local API · main.js Electron Shell · agent.py Move Search · uci.py UCI Protocol
Components 22
Chess Engine
- Move Search
agent.py - UCI Protocol
uci.py
Local Workstation
- Local API
gui/server.py - Background Jobs
gui/jobs.py - Session Workspace
gui/workspace.py - Engine Lab UI
gui/static/workbench.js - Game And Review UI
gui/static/app.js - Workflow UI
gui/static/workflows.js
Games And Studies
- Library Browser
gui/static/database-productivity.js - Opening Explorer
gui/static/database-explorer.js - Game Database
librarydb/store.py - Game Catalog
librarydb/catalog.py - Library Operations
librarydb/workbench.py - Opening Repertoire
openingbook/store.py - Game Reports
reporting/generator.py
Analysis Tools
- Tournament Runner
integrations/tournament.py - External Engine Client
integrations/uci_client.py - Match And Benchmark Tools
harness/arena.py
Desktop Shell
- Electron Shell
desktop/main.js - Desktop Metadata Store
desktop/storage.js
Other components
- Local User
- Installed UCI Engine
Connections 27
- Local User → Engine Lab UI: uses
- Engine Lab UI → Local API: requests
- Local API → Move Search: searches positions
- Local API → Background Jobs: dispatches jobs
- Local API → Session Workspace: manages sessions
- Local User → Game And Review UI: plays and reviews
- Game And Review UI → Local API: requests
- Local API → Game Database: reads and writes
- Local API → Library Operations: handles library actions
- Library Operations → Game Catalog: queries catalog
- Game Catalog → Game Database: reads games
- Local User → Library Browser: browses games
- Library Browser → Local API: requests library data
- Local User → Opening Explorer: explores openings
- Opening Explorer → Local API: requests continuations
- Local API → Opening Repertoire: manages repertoire
- Local API → Game Reports: generates reports
- Workflow UI → Local API: requests workflows
- Local API → UCI Protocol: serves engine protocol
- UCI Protocol → Move Search: requests moves
- Local API → Tournament Runner: runs tournaments
- Tournament Runner → External Engine Client: compares engines
- External Engine Client → Installed UCI Engine: speaks UCI
- Match And Benchmark Tools → Move Search: evaluates matches
- Local User → Electron Shell: launches workstation
- Electron Shell → Local API: starts backend
- Electron Shell → Desktop Metadata Store: persists metadata