Nibbler is a real-time chess analysis GUI for Leela Chess Zero (Lc0) and other UCI-compatible chess engines such as Stockfish.
It runs an engine in the background, continuously evaluates the current position, shows candidate moves visually, and lets you force analysis of selected moves. The project is historically based on the original Nibbler by Rooklift and is loosely inspired by Lizzie and Sabaki.
Current maintained fork: https://github.com/perejaslav/nibbler
Latest Windows release: https://github.com/perejaslav/nibbler/releases/tag/v2.7.1
- Real-time engine analysis for Lc0 and traditional UCI engines.
- Graphical display of top candidate moves.
- Winrate graph.
- Optional Leela statistics such as N, P, Q, S, U, V, and WDL.
- UCI
searchmovessupport. - Automatic full-game analysis.
- Play against the engine from any position.
- Engine self-play from any position.
- PGN loading through menu, clipboard, or drag-and-drop.
- PGN variation support with arbitrary depth.
- FEN loading from clipboard or menu.
- Chess960 support.
- Analysis toolbar with quick access to engine controls, navigation, board flip, MultiPV, and focus clearing.
- Visual UCI engine settings dialog for standard engine options.
Version 2.7.1 adds a right-click context menu for working with PGN variations from the movelist.
- Added a native right-click context menu on movelist notation entries.
- The menu exposes variation actions already available from the top menu, including promote and delete operations.
- Right-click first selects the clicked node so actions apply to the visually highlighted variation.
- Right-click on empty movelist space opens the menu for the current node.
- Unavailable actions stay visible but are disabled for the current node.
- Added protection against repeated context menu popups.
Windows build for this release is available here:
https://github.com/perejaslav/nibbler/releases/tag/v2.7.1
- Open the latest release page: https://github.com/perejaslav/nibbler/releases
- Download
nibbler-2.7.1-windows.zipor the newest available Windows archive. - Extract the archive to a folder of your choice.
- Run
nibbler.exe. - Configure your engine path from inside Nibbler if needed.
The 2.7.1 Windows build uses Electron 9.4.4.
Nibbler can also be run directly from source. This is useful for development or quick local checks.
Requirements:
- Node.js / npm
- Electron
From the repository root:
cd files/src
npx electron .A global Electron install also works:
npm install -g electron
electron .Nibbler is a classic Electron application. It does not require a modern JavaScript build step for normal development.
The upstream project historically provided install scripts for Linux and macOS. They may still be useful, but they may not install this fork's latest release.
Legacy upstream Linux script:
curl -L https://raw.githubusercontent.com/rooklift/nibbler/master/files/scripts/install.sh | bashLegacy upstream macOS script:
curl -L https://raw.githubusercontent.com/rooklift/nibbler/master/files/scripts/install_mac.sh | bashFor this fork, prefer the Releases page unless you specifically want to build or run from source.
Nibbler works best when a UCI-compatible engine is configured correctly.
For Lc0, see the official Lc0 quickstart and configuration documentation:
For Stockfish and other traditional UCI engines, typical important options include:
ThreadsHashMultiPV
For maximum strength in some engines, MultiPV should often be kept at 1, while Threads and Hash should be set appropriately for your hardware.
Engine options can be configured in several ways.
Use:
Engine > Engine settings...
The dialog shows known options for the current engine and provides visual controls for standard UCI option types:
check— checkboxspin— numeric inputcombo— dropdown liststring— text field
Confirmed changes are saved and applied through the existing engine configuration flow where possible.
Advanced users can still use manual configuration:
- Lc0 can load options from
lc0.configat startup. - Nibbler can send UCI options stored in its own
engines.jsonfile, available from the Dev menu.
Manual configuration remains the safest option for engine-specific, unusual, or unsupported settings.
The UCI searchmoves feature is available from the Analysis menu. Once enabled, one or more moves can be selected as focus moves. The engine will ignore other moves. This is useful when a move appears under-analysed.
When browsing principal variations on the right side of the interface, Nibbler can show the PV on the board without changing the actual analysed position. Halting the engine while inspecting PVs can make this easier, because the displayed lines will not keep changing.
Long searches can consume significant memory. If your engine runs out of RAM, consider setting a reasonable node limit from the Engine menu.
Nibbler's runnable source lives under:
files/src
Important files include:
files/src/main.js
files/src/nibbler.html
files/src/nibbler.css
files/src/renderer/
The project intentionally keeps the renderer simple and does not require React, Vue, TypeScript migration, or a bundler for ordinary changes.
To run syntax checks on changed JavaScript files:
node --check files/src/main.js
node --check files/src/renderer/90_engine.js
node --check files/src/renderer/95_hub.js
node --check files/src/renderer/94_uci_options_dialog.jsTo run the app locally:
cd files/src
npx electron .Current release:
All releases:
This repository is a maintained fork of the original Nibbler project by Rooklift:
Thanks to everyone in the original Discord and GitHub community who contributed advice, testing, and suggestions. Thanks also to all Lc0 developers and GPU-hours contributors.
The chess pieces are from Lichess:
Icon design by ciriousjoker, based on this icon:
Nibbler is licensed under GPL-3.0. See LICENSE.md for details.