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