UCI Feature Support

The Universal Chess Interface (UCI) protocol specifies how a Graphical User Interface (GUI) communicates with a chess engine. MadChess supports most but not all UCI features. See the table below for details.

In addition to the following standard UCI commands, MadChess supports custom commands.

Support Command MadChess Implementation
GUI To Engine
uci Display engine name and author name.
debug Display search statistics.
isready Respond readyok.
setoption Set engine option.
register Engine does not require registration.
ucinewgame Reset best move cache, killer moves, and move history.
position Set pieces on board.
go wtime btime winc binc movestogo Determine think time, search, return best move.
go depth nodes mate movetime infinite Search to a specific depth (ply), node count, mate in x moves, for a specific duration, or until stopped via stop or quit command.
go searchmoves Search only specified moves.
go ponder Pondering (thinking on opponent’s time) not supported.
stop Stop searching, return best move.
ponderhit Pondering (thinking on opponent’s time) not supported.
quit Exit program.
Engine To GUI
id name / author Display engine name and author name.
uciok Ready to receive commands.
readyok Ready to receive position.
bestmove Return best move.
bestmove ponder Pondering (thinking on opponent’s time) not supported.
copyprotection Engine is not copy-protected.
registration Engine does not require registration.
info multipv depth seldepth time nodes score cp mate nps pv lowerbound upperbound hashfull currmove currmovenumber Update each depth and every 250,000 nodes. Display hash utilization.
info string Display debug information (if debug on).
info cpuload CPU load is not shown. Assume it’s 100% on a single thread.
option name uci_engineabout Display engine name, author name, and website link.
option name hash multipv uci_limitstrength uci_elo uci_analysemode Analysemode true = 3 rep draw. Analysemode false = 2 rep draw.
option name ponder Pondering (thinking on opponent’s time) not supported.
option name nalimovpath nalimovcache Nalimov tablebases not implemented.
option name uci_shredderbasespath Shredder tablebases not implemented.
option name ownbook Opening book not implemented by engine. If you wish to use an opening book, enable it in the GUI instead.
option name uci_showcurrline Displaying currently analyzed line not implemented.
option name uci_showrefutations Displaying refutations of candidate moves not implemented.
option name uci_opponent Engine does not adjust its play based on opponent.
option name uci_setpositionvalue Setting the value of a position (for analysis) not supported.

Comments are closed.