Skip to content

codedeliveryservice/Reckless

Repository files navigation

Reckless – Chess Engine in Rust

Reckless CI Reckless PGO GitHub Release GitHub Release

Reckless is a competitive chess engine, consistently performing among the top engines in major tournaments including Chess.com Computer Chess Championship (CCC) and Top Chess Engine Championship (TCEC).

Rating

Version CCRL Blitz CCRL 40/15 CCRL FRC Release Date
Reckless v0.8.0 3765 +/- 14 [#2] 3609 +/- 11 [#3] 4077 +/- 13 [#3] Aug 29, 2025
Reckless v0.7.0 3500 +/- 12 [#68] 3422 +/- 12 [#72] Aug 23, 2024
Reckless v0.6.0 3386 +/- 15 [#95] 3317 +/- 15 [#103] Mar 22, 2024
Reckless v0.5.0 3240 +/- 17 [#133] 3211 +/- 17 [#140] Feb 4, 2024
Reckless v0.4.0 2934 +/- 17 [#210] 2926 +/- 16 [#222] Dec 13, 2023
Reckless v0.3.0 2616 +/- 19 [#297] 2617 +/- 19 [#321] Nov 6, 2023
Reckless v0.2.0 2349 +/- 18 [#406] Oct 7, 2023
Reckless v0.1.0 2005 +/- 18 [#539] May 16, 2023

Getting started

Precompiled binaries

You can download precompiled builds from the GitHub Releases page.

  • -avx512: Fastest, requires a recent CPU with AVX-512 support
  • -avx2: Fast, supported on most modern CPUs
  • -generic: Compatible with virtually all CPUs, but significantly slower than AVX2 or AVX512 builds

Note

If you're unsure which binary to use, try the AVX-512 build first. If it doesn't run on your system, fall back to the AVX2 build, or the generic one as a last resort.

Building from source

To build Reckless from source, make sure you have:

Once installed, you can build it with:

cargo rustc --release -- -C target-cpu=native
# ./target/release/reckless

PGO builds

For profile-guided optimization (PGO) builds, you need to install additional tools:

rustup component add llvm-tools
cargo install cargo-pgo

Then, you can build the engine using make:

make
# ./reckless

Or run the steps manually:

cargo pgo instrument
cargo pgo run -- bench
cargo pgo optimize
# ./target/x86_64-unknown-linux-gnu/release/reckless
# (the path may vary based on your system)

Usage

Reckless is not a standalone chess program but a chess engine designed for use with UCI-compatible GUIs, such as Cute Chess, En Croissant, or Nibbler.

UCI options

Reckless supports the following UCI options:

Name Default Description
Hash 16 Size of the transposition table in MB [1–262144]
Threads 1 Number of search threads [1–512]
MultiPV 1 Number of principal variations to display [1–218]
UCI_Chess960 false Enable Chess960 (Fischer Random) support [false–true]
Minimal false Enable minimal UCI output [false–true]
MoveOverhead 100 Time in milliseconds reserved for overhead during each move [0–2000]
Clear Hash Clear the transposition table
SyzygyPath Path to Syzygy endgame tablebases

Custom commands

Along with the standard UCI commands, Reckless supports additional commands for testing and debugging:

Command Description
perft <depth> Run a perft test to count the number of leaf nodes at a given depth
bench <depth> Run a benchmark on a set of positions to measure the engine's performance
d Print the current board position in a human-readable format together with FEN
eval Print the network evaluation of the current position from white's perspective
compiler Print the compiler version, target and flags used to compile the engine

Acknowledgements