A modern, free UCI chess engine built around verified search and efficient NNUE evaluation.
Official website · Download · Quick start · Build · Changelog
Coco Chess Engine is a free, open-source, cross-platform UCI chess engine created and maintained by NotKaede-11. Its search combines bitboards, staged move ordering, parallel alpha-beta techniques, an incrementally updated neural evaluator, and optional Syzygy tablebase probing.
Important
Coco is an engine, not a graphical chess application. Use it through a UCI-compatible interface such as Arena, BanksiaGUI, Cute Chess, or another chess GUI.
| Version | My Estimate | CCRL 40/15 | CCRL Blitz |
|---|---|---|---|
| 1.5.1 | 2977 | - | - |
| 1.5.0 | 2977 | 2994 | - |
| 1.4.0 | - | - | - |
| 1.3.0 | - | - | - |
| 1.1.1 | - | - | 2595 |
| 1.1.0 | - | - | - |
| 1.0.1 | - | - | - |
| 1.0.0 | - | - | - |
- Download a published binary for your platform from the releases page.
- Choose the binary that best matches your CPU using the table below.
- Add the executable as a UCI engine in your chess GUI.
To check the engine directly from a terminal, start it and enter:
uci
isready
position startpos
go movetime 1000
Wait for bestmove, then enter quit.
| Platform | Build | Best fit |
|---|---|---|
| Windows / Linux | x86-64-bmi2 |
Modern Intel and AMD Zen 3 or newer; recommended for most recent x86 systems |
| Windows / Linux | x86-64-avx2 |
AMD Zen 1/2 or systems where BMI2 pext is relatively slow |
| Windows / Linux | x86-64-avx512 |
CPUs with AVX-512F, BW, DQ, and VL support |
| Windows / Linux | x86-64-popcnt |
Older 64-bit x86 CPUs with SSE4.1 and POPCNT |
| macOS | apple-silicon |
Apple M-series processors |
| macOS | x86-64-avx2 / x86-64-popcnt |
Intel-based Macs |
| Linux ARM | arm64 / arm64-dotprod |
ARMv8 systems, with dot-product build for supported ARMv8.2+ CPUs |
Using instructions unsupported by your CPU will prevent the engine from starting. When uncertain, choose the POPCNT or baseline ARM64 build.
| Component | Architecture & Highlights |
|---|---|
| Board & Movegen | 64-bit bitboards, magic bitboards with optional BMI2/PEXT, staged move ordering |
| Search | Alpha-beta PVS, iterative deepening, aspiration windows, RFP, NMP, LMR, and singular extensions |
| Neural Evaluation | Embedded 768→512×2 NNUE with SIMD-vectorized incremental accumulator updates |
| Concurrency | Lazy SMP multithreading across CPU cores sharing a lockless transposition table |
| Endgame & Tools | MultiPV, ponder support, and integrated Syzygy tablebase probing (up to 6-piece) |
The release build identifies as Coco v1.5.1 and exposes these fifteen options to chess GUIs:
| Option | Default | Purpose |
|---|---|---|
Hash |
16 MiB | Transposition-table memory |
Clear Hash |
button | Clear the transposition table |
Threads |
1 | Parallel search workers |
Ponder |
false | Think during the opponent's turn |
MultiPV |
1 | Number of principal variations to report |
Move Overhead |
30 ms | Safety allowance for GUI and operating-system latency |
Use PEXT |
hardware dependent | Use the BMI2 sliding-attack backend when supported |
EvalFile |
<embedded> |
Use built-in weights; set an explicit file path to load a compatible external network |
SyzygyPath |
empty | Path to Syzygy tablebase files |
SyzygyProbeDepth |
1 | Depth threshold for probing positions at the largest loaded tablebase size |
SyzygyProbeLimit |
true | Apply that depth threshold at the largest loaded tablebase size |
Syzygy50MoveRule |
true | Respect the 50-move rule in root tablebase decisions |
UCI_ShowWDL |
false | Include win/draw/loss permille estimates in analysis output |
UCI_AnalyseMode |
false | Accept the standard GUI analysis-mode signal |
Contempt |
0 | Optional draw-preference setting; neutral by default |
The build requires a C++20-capable compiler and Python for generating the embedded network header. Release builds embed coco.nnue into the executable.
With GCC/MinGW available on PATH:
build.batmake build ARCH=x86-64-popcnt COMP=gcc
make build ARCH=x86-64-avx2 COMP=gcc
make build ARCH=x86-64-bmi2 COMP=gcc
make build ARCH=x86-64-avx512 COMP=gcc
make build ARCH=armv8 COMP=gcc
make build ARCH=armv8-dotprod COMP=gcc
make build ARCH=apple-silicon COMP=clangUse COMP=mingw to cross-compile Windows binaries from Linux. Run make help for all supported targets and options.
Coco is a personal chess engine created, architected, and maintained by NotKaede-11. Ideas are treated as hypotheses: changes are retained through correctness checks, deterministic comparisons, and self-play evidence rather than because another engine uses a similar technique.
The name comes from Coco, the protagonist of Witch Hat Atelier.
Bug reports, test games, code review, and constructive feedback are welcome through GitHub Issues.
Coco is free software distributed under the GNU General Public License v3. If you distribute a modified binary, you must also make the corresponding source available under the GPL.