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. |