You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Niklas Fiekas cfc3534de7 fixup mobile image height 6 hours ago
.github use yarn cache also for lint workflow 4 months ago
app fixup color attr 6 hours ago
bin broadcast tier system - MIGRATION NEEDED - closes #9938 2 months ago
conf Fix /api/bot/online route (move it before /api/bot/*cmd) 2 weeks ago
modules Use 'Cross-Origin-Embedder-Policy: credentialless' in Chrome 96+ 1 day ago
project Update sbt-scalafmt to 2.4.5 1 day ago
public compress lichesstv-mobile.png 14 hours ago
translation New Crowdin updates (#10181) 1 week ago
ui fixup mobile image height 6 hours ago
.browserslistrc relocate browsers list 3 years ago
.eslintrc.json format .eslintrc.json itself 8 months ago
.gitignore Update mobile screenshot (#10204) 14 hours ago
.gitmodules install jquery-bar-rating from npm (#6323) 2 years ago
.ignore don't ignore translation sources 1 year ago
.prettierignore Fix .prettierignore ignoring lobby "app" css 3 months ago
.prettierrc.json prettier: mirror chessground scripts and more excludes 10 months ago
.sbtopts.default need more stack space to compile 2 years ago
.scalafmt.conf scalafmt and prettier 1 day ago use new vanity url 6 months ago add to external services 6 months ago Update 5 months ago
LICENSE update some old links 1 year ago Update 5 months ago
build.sbt show swiss chats instead of self-moderated simul chats in mod view 3 months ago
crowdin.yml Update Crowdin configuration file 2 years ago
lila Fix logo rendering in bash 2 years ago
package.json Use @types/web instead of TS-provided "dom" types 3 months ago
security.txt fixup security.txt 2 years ago
yarn.lock bump chessops to 0.10.2 (fix atomic with check and exploded king) 2 months ago

Build server Build assets Crowdin Twitter

Lichess homepage

Lila (li[chess in sca]la) is a free online chess game server focused on realtime gameplay and ease of use.

It features a search engine, computer analysis distributed with fishnet, tournaments, simuls, forums, teams, tactic trainer, a mobile app, and a shared analysis board. The UI is available in more than 130 languages thanks to the community.

Lichess is written in Scala 2.13, and relies on the Play 2.8 framework. scalatags is used for templating. Pure chess logic is contained in the scalachess submodule. The server is fully asynchronous, making heavy use of Scala Futures and Akka streams. WebSocket connections are handled by a separate server that communicates using redis. Lichess talks to Stockfish deployed in an AI cluster of donated servers. It uses MongoDB to store more than 1.7 billion games, which are indexed by elasticsearch. HTTP requests and WebSocket connections can be proxied by nginx. The web client is written in TypeScript and snabbdom, using Sass to generate CSS. The blog uses a free open content plan from All rated games are published in a free PGN database. Browser testing done with Browserstack. Proxy detection done with IP2Proxy database. Please help us translate Lichess with Crowdin.

See for a list of repositories.

Join us on Discord for more info. Use GitHub issues for bug reports and feature requests.


./lila # thin wrapper around sbt

The Wiki describes how to setup a development environment.


Feel free to use the Lichess API in your applications and websites.

Supported browsers

Name Version Notes
Chromium / Chrome last 10 Full support
Firefox 61+ Full support (fastest local analysis since FF 79)
Opera 55+ Reasonable support
Safari 11.1+ Reasonable support
Edge 17+ Reasonable support

Older browsers (including any version of Internet Explorer) will not work. For your own sake, please upgrade. Security and performance, think about it!


Lila is licensed under the GNU Affero General Public License 3 or any later version at your choice with an exception for Highcharts. See copying for details.


See and the contributors here:

GitHub contributors