This is a module for the MagicMirror.
MMM-lichess-tv-live shows the current live game from Lichess TV, including the board, player names, ratings, clocks, titles, flairs, and last-move highlighting.
Built using the public Lichess TV channel feed API. No Lichess account or API token is required.
demo.mp4
To install, clone this repo into the ~/MagicMirror/modules directory. Then move into the module folder and install required libraries:
cd ~/MagicMirror/modules
git clone https://github.com/andyklimczak/MMM-lichess-tv-live.git
cd MMM-lichess-tv-live
npm installRestart MagicMirror after installing or updating the module.
To use this module, add a configuration block to the modules array in ~/MagicMirror/config/config.js.
Minimal configuration:
{
module: "MMM-lichess-tv-live",
position: "bottom_left",
config: {
channel: "bullet"
}
}Full configuration:
{
module: "MMM-lichess-tv-live",
position: "top_right",
config: {
channel: "bullet",
clockTickInterval: 100,
orientation: "lichess",
board: "brown",
pieceSet: "cburnett",
showFlairs: true,
showRatings: true,
showClocks: true,
showLastMove: true,
showCoordinates: false
}
}| Option | Type | Default | Values | Description |
|---|---|---|---|---|
channel |
string |
"bullet" |
best, bullet, blitz, rapid, classical, ultraBullet, chess960, crazyhouse, kingOfTheHill, threeCheck, antichess, atomic, horde, racingKings, bot, computer |
Lichess TV channel to stream. The helper always uses /api/tv/{channel}/feed; omitted or blank values fall back to "bullet". |
clockTickInterval |
number |
100 |
Any positive millisecond value | How often the visible active-player clock is redrawn between Lichess feed updates. The default supports tenths display below 10 seconds. |
orientation |
string |
"lichess" |
"lichess", "white", "black" |
Board orientation. "lichess" follows the orientation sent by the TV feed; "white" or "black" force a fixed orientation. |
board |
string |
"brown" |
blue-marble, blue, blue2, blue3, brown, canvas2, green-plastic, green, grey, horsey, ic, leather, maple, maple2, marble, metal, ncf-board, olive, pink-pyramid, purple-diag, purple, wood, wood2, wood3, wood4 |
Local Lichess board image theme. Unsupported values fall back to "brown". |
pieceSet |
string |
"cburnett" |
cburnett, celtic, chessnut, fantasy, firi, governor, kiwen-suwi, kosal, letter, merida, mono, mpchess, pirouetti, pixel, rhosgfx, shapes, spatial |
Local Lichess SVG piece theme. Unsupported values fall back to "cburnett". |
showFlairs |
boolean |
true |
true, false |
Shows the Lichess flair image when the TV feed includes one for the player. Flair images load from Lichess static assets. Player names are rendered as text and preserve Unicode/emoji characters present in the name. |
showRatings |
boolean |
true |
true, false |
Shows or hides player ratings. |
showClocks |
boolean |
true |
true, false |
Shows or hides the player clocks from the feed. |
showLastMove |
boolean |
true |
true, false |
Highlights the origin and destination squares of the last move. |
showCoordinates |
boolean |
false |
true, false |
Shows board file and rank coordinates. |
Default bullet TV:
config: {
channel: "bullet"
}Rapid TV:
config: {
channel: "rapid"
}Chess960 TV:
config: {
channel: "chess960",
orientation: "white",
board: "blue3",
pieceSet: "shapes",
showCoordinates: true
}{
module: "MMM-lichess-tv-live",
position: "bottom_left",
config: {
channel: "bullet",
clockTickInterval: 100,
orientation: "lichess",
board: "brown",
pieceSet: "cburnett",
showFlairs: true,
showRatings: true,
showClocks: true,
showLastMove: true,
showCoordinates: false
}
}Lichess TV module for MagicMirror.
This is a mixed-license repository. The module source code is licensed under the MIT license in LICENSE.md. Vendored Lichess board and piece assets keep their original licenses, which are listed in THIRD_PARTY_NOTICES.md. Noncommercial and Lichess-listed non-free piece sets are intentionally not included.
npm install
npm run lint
npm test