Sisyphus32 ♟
Sisyphus32 is an open-source pruning-based chess engine! It can be run as an executable, where it uses UCI for communication. Alternatively, it can be used as a crate.
Lichess Bot
Supported UCI Commands (documentation)
Sisyphus32 is UCI-compliant, implementing the following UCI commands:
uciucinewgameisreadyposition (fen <fenstring> | startpos) [moves <move1> ... <movei>]go [perft <plies> | [depth <plies>] [wtime <ms>] [btime <ms>] [winc <ms>] [binc <ms>] [movetime <ms>]]stop | squit | qexit | eevaldisplay | dbench | benchmediumbenchlongbenchshortsetoption name Clear Hashsetoption name Threads value <n>setoption name SyzygyPath value <path>setoption name LichessToken value <token>setoption name Hash value <size_mb>
Local Development
Setup
- Install Rust.
- (OPTIONAL) Download a syzygy tablebase and put it in
tables/syzygy/for optimal endgame performance. - (OPTIONAL) Create a personal access token at https://lichess.org/account/oauth/token/create (no scopes
need to be selected), copy and rename
.env.exampleto.env, then fill in the value to enable the opening book.
How to use
- Run
cargo build --releaseto build the strongest version of the engine. - Run
cargo run --releaseto build and run the strongest version of the engine. - Run
cargo run --release --no-default-features --features <version>to build and run a specific version of the engine. Version names can be found insrc/versions.rs. - Run
cargo test -- --test-threads=1to run all unit and integration tests. - Run
cargo run --bin test_allto run all unit and integration tests for all versions. - (WINDOWS ONLY) Run
cargo run --bin build_allto build executables for all versions totarget/release_all/. - (WINDOWS ONLY) Run
cargo run --bin cutechess_sprt <version1> <version2>to run SPRT against the specified versions, which should correspond to binary names intarget/release_all/. This requires Cute Chess to be installed. - (WINDOWS ONLY) Run
cargo run --bin samply_profile <profile name>to run a profiler on the specified profile name, which should correspond to a file insrc/bin/. This requires Samply to be installed.