Source Code
Lichess is free/libre open source software. You can download, read, use and modify every bit of source code.
Main server
- lichess-org/lila Main backend and frontend (Scala)
- lichess-org/lila modules Backend modules (Scala)
- lichess-org/lila ui Frontend modules (TypeScript, Sass)
- lichess-org/scalachess Chess and chess variant rules and operations (Scala)
- niklasf/chessops Chess and chess variant rules and operations (TypeScript)
- lichess-org/compression Compression algorithms for chess moves and clocks (Java)
- lichess-org/chessground Frontend chess board (TypeScript)
- hi-ogawa/Stockfish Stockfish compiled for cutting-edge browsers (C++, WebAssembly, JavaScript)
- lichess-org/stockfish.wasm, lichess-org/stockfish.js Slower fallback versions of Stockfish for browsers (C++, WebAssembly, JavaScript)
- lichess-org/pgn-viewer Embedded client-side PGN viewer (TypeScript)
- lichess-org/leroyjenkins DDoS mitigation (Rust)
External services
- lichess-org/lila-ws WebSocket traffic (Scala)
- lichess-org/lila-http (Rust)
- lichess-org/lila-fishnet Fishnet move requests (Scala)
- lichess-org/lila-search Search engine (Scala)
- lichess-org/lila-openingexplorer (Rust)
- lichess-org/lila-tablebase Tablebase (Rust)
- lichess-org/lila-push Web Push service (Rust)
- lichess-org/fishnet Distributed computer analysis, using official-stockfish/Stockfish and ianfab/Fairy-Stockfish, a Stockfish fork with chess variant support (Rust, C++)
- lichess-org/lila-gif GIF generator for games and positions (Rust)
- lichess-org/lila-engine Broker for communication between external engine providers and clients (Rust)
- lichess-org/external-engine External chess engine provider for the analysis board (Python)
- lichess-org/kaladin Machine Learning tool aimed at automating cheat detection using Insights
- clarkerubber/irwin AI that learns cheating patterns to help mods (Python)
- lichess-org/lila-ip2proxy Query database of known proxy IPs (Rust)
- lichess-org/lila-pwned Query database of known leaked passwords (Rust)
- cyanfish/bbpPairings Swiss pairings (C++)
- ornicar/lichess-puzzler Generate, review and classify chess puzzles (Python, TypeScript)
- michael1241/discotron Discord integration for Patron status (Python)
Mobile app
- veloce/lichobile Main mobile app
- veloce/scalachessjs Rules of chess and its variants
- veloce/capacitor-stockfish Capacitor Stockfish plugin
- veloce/cordova-plugin-stockfish Cordova interface Stockfish
Next iteration of the mobile app
- lichess-org/mobile Next iteration of the mobile app, under development (Flutter, Dart)
- lichess-org/flutter-chessground Chessboard widget for flutter (Flutter, Dart)
- lichess-org/dart-stockfish Stockfish bindings for Dart (Dart, C++)
- lichess-org/dartchess Chess and chess variant rules (Dart)
Docs, utilities, others
- lichess-org/api HTTP API documentation (read here)
- lichess-org/api/ui Web frontend to some API endpoints (try here)
- lichess-org/api-demo Demo of API oauth and gameplay (try here)
- ornicar/scalalib Misc Scala utilities
- lichess-org/playframework-lila Trimmed down Play Framework fork
- ornicar/cash Trimmed down cash.js fork
- ornicar/lichess-db Generator for database.lichess.org (download all rated games and puzzles)
- ornicar/lila-db-seed Import dummy data into a local database for lila development
- lichess-org/chess-openings Aggregated data set of chess opening names
- ShailChoksi/lichess-bot Bridge between HTTP API and chess engines
- clarkerubber/Staunton-Pieces Original 3D rendered pieces, boards and trophies
- arex1337/lichess-daily-puzzle-slack-app Slack app that posts the daily puzzle to the Slack channel in which it is installed
- arex1337/lichesspuzzle Zulip bot that posts the daily puzzle to a specific Zulip stream
- lichess-org/swiss-maker Script to generate swiss tournaments for your team using the Lichess API
- thoas/picfit HTTP image server (go)
Production architecture
lila version
Assets | |||
Boot |
JavaScript modules
Here are all frontend modules from ornicar/lila ui in Web Labels compatible format: