Combusken is a UCI-compliant open source chess engine using Alpha-beta algorithm. You can play with it on lichess.  smile

UCI options


Size of transposition table in megabytes. Usually the more the better.


Number of threads used in search. Usually the more the better.


Size of Pawn Hash Table. Default value should always work ok, as hit-ratio in Pawn Hash Table is usually pretty high.

Move Overhead

Time buffer in ms. Should be increased when you notice time-losses.

CLI options

combusken bench

Runs benchmark

combusken tune

Runs tuning that is a combination of coordinate descent and gradient descent where gradient is calculated with symmetric derivative.

combusken trace-tune

Runs tuning based on gradient descent where gradient is calculated with a vectors that stores how much each evaluation-constant was used in a given position. In order to work it requires compilation with tuning constant set to true in evaluation/eval.go file.

Games for tuning must be put in games.fen file.


Counter by Vadim Chizhov
UCI protocol implementation and search cancelation pattern is based on CounterGO's. Also some miscellaneous things like LMP weights, or EPD parsing.

Ethereal by Andrew Grant, Alayan & Laldon
Combusken's search procedure is heavily inspired by Ethereal's, some parts of evaluation(for example king safety) were taken directly from it. Andrew Grant's OpenBench is used for testing.

Laser by Jeffrey An
SEE, Internal Iterative Deepening constants.

Stockfish by Tord Romstad, Marco Costalba, Joona Kiiski & Gary Linscott
Some evaluation heuristics.

Zurichess by Alexandru Moșoi
It's tuning positions set was used in Combusken's tuning


Combusken is distributed under the GNU General Public License version 3 (GPL v3)"

x64 Compile

arm 64 compile (android