@lichess-org/stockfish-web
June 9, 2026 ยท View on GitHub
WebAssembly builds for Stockfish.
This package is optimized for the lichess.org website, which needs multiple builds and chess variants. It is not straight-forward to load and use.
Check out https://github.com/nmrugg/stockfish.js for a simpler browser Stockfish.
Building
# Example: Clean and make all web targets
./build.py all clean
Use --cxx-flags to override the default emcc flags which are -O3 -DNDEBUG --closure=1.
Use --ld-flags to override default linker flags (--ld-flags='-sENVIRONMENT=node' to target node).
Check ./build.py --help for all available targets.
To avoid installing or changing your emscripten version, use ./build-with-docker.sh or ./build-with-podman.sh:
# Example: Docker clean and make all targets for node as debug with SAFE_HEAP
./build-with-docker.sh --cxx-flags='-O0 -g3 -sSAFE_HEAP' --ld-flags='-sENVIRONMENT=node' all clean
# Example: Clean and make dist targets for web with a preallocated pthread pool size of 8
./build.py --ld-flags='-sENVIRONMENT=web,worker -sPTHREAD_POOL_SIZE=8' clean dist
./build.py downloads sources to the ./fishes folder then applies diffs from the ./patches folder.
Edit the Stockfish sources within ./fishes. Contribute your edits via patch file.
# Example: Update `sf_18.patch` with your source changes:
cd fishes/sf_18
git diff > ../../patches/sf_18.patch
Run locally on node
Download the required nnues from the list below. Then:
./build.py --ld-flags='-sENVIRONMENT=node'
node ./src/wasm-cli.js ./sf_18.js
uci
Sources
sf_18_smallnet (Stockfish 18 with sscg13/threat-small)
- repo: https://github.com/official-stockfish/Stockfish
- base: cb3d4ee9
- tag: sf_18 (patch includes rebase of https://github.com/sscg13/Stockfish/tree/threat-small)
- nnue: nn-4ca89e4b3abf.nnue
sf_18 (Stockfish 18)
- repo: https://github.com/official-stockfish/Stockfish
- base: cb3d4ee9
- tag: sf_18
- big nnue: nn-c288c895ea92.nnue
- small nnue: nn-37f18f62d772.nnue
sf_dev (Stockfish dev-20260609-415ff793)
- repo: https://github.com/official-stockfish/Stockfish
- base: 415ff793
- tag: stockfish-dev-20260609-415ff793
- nnue: nn-71d6d32cb962.nnue
fsf_14 (Fairy-Stockfish 14)
- repo: https://github.com/fairy-stockfish/Fairy-Stockfish
- base: a621470b
- nnues: see repo links
Older repositories kept for compatibility
stockfish-nnue.wasm
Stockfish 14 without dynamic import() in WebWorker.
stockfish.wasm and stockfish-mv.wasm
SF_classical (strongest handcoded eval) and multi-variant equivalent.
No SIMD. No dynamic import() in WebWorker.
stockfish.js
Stockfish 10 in pure JavaScript or WebAssembly without shared memory.