Explanation
UCI stands for Universal Chess Interface. It is a text protocol that lets a graphical interface, the program showing the board and controls, communicate with a , the program that calculates moves. A UCI option is a setting the engine exposes to that interface, such as memory size, processing threads, or Chess960 support.
When the interface starts a UCI session, the engine advertises each option with a name, type, and, where relevant, a default value, limits, or allowed choices. The interface can turn that description into a visible control and later send a setoption command to change it. Available options vary by engine and version.
The five UCI option types
- check: a true-or-false value, usually displayed as a checkbox.
- spin: an integer constrained by a minimum and maximum.
- combo: one choice from a predefined set.
- button: a one-time action with no stored value, such as clearing an internal table.
- string: free text, such as a file path.
An option is neither a chess rule nor a promise of universal compatibility. Two engines may use different names, ranges, and values for similar features. Controlling software should read what each engine actually advertises instead of assuming a fixed list.
Common confusions
UCI versus a UCI option
UCI is the complete communication protocol; a UCI option is one setting exposed through that protocol.
Sources
- 1.UCI Protocol and Stockfish Commands, Stockfish
- 2.UCI Protocol, backscattering.de
