Nibbler - Leela Chess Zero (Lc0) interface
"By far the best ICCF analysis tool for Leela." — jhorthos
Nibbler is a real-time analysis GUI for Leela Chess Zero (Lc0), which runs Leela in the background and constantly displays opinions about the current position. You can also compel the engine to evaluate one or more specific moves. Nibbler is loosely inspired by Lizzie and Sabaki.
Running Nibbler from source requires Electron, but has no other dependencies. If you have Electron installed (e.g.
npm install -g electron) you can likely enter the
/srcdirectory, then do
electron .to run it. Nibbler should be compatible with at least version 5 and above.
As well as the menu options, various aesthetic adjustments are possible in the
config.jsonfile, which can be found via the Dev menu. For example, board colour can be changed.
If you like a different piece set, you can create a folder of
.svgfiles with the right names and point the
override_piece_directoryconfig option to it.
Most people won't need them, but all of Leela's engine options can be set in two ways:
lc0.configat startup - see here.
config.jsonfile (which you can find via the Dev menu).
An option to enable the UCI
searchmovesfeature is available in the Analysis menu. Once enabled, one or more moves can be specified as moves to focus on; Leela will ignore other moves. This is useful when you think Leela isn't giving a certain move enough attention.
Leela forgets much of the evaluation if the position changes. To mitigate this, an option in the Analysis menu allows you to hover over a PV (on the right) and see it play out on the board, without changing the position we're actually analysing. You might prefer to halt Leela while doing this, so that the PVs don't change while you're looking at them.
Leela running out of RAM can be a problem if searches go on too long. You might like to set a reasonable node limit (in the Engine menu), perhaps 10 million or so.
Note that other UCI engines should run OK if they support Chess960 castling format, but the results will be poor because we use
MultiPV, which cripples traditional A/B engines.
Thanks to everyone in Discord and GitHub who's offered advice and suggestions; and thanks to all Lc0 devs and GPU-hours contributors!
The pieces are from Lichess.