Explanation
UCI stands for Universal Chess Interface. It is an open protocol that defines how a user interface talks to a . The graphical interface is the program that displays the board, clocks, and controls; the engine is the program that calculates moves and evaluations. UCI lets products from different developers work together.
A typical exchange
- The interface starts the engine and sends uci.
- The engine replies with its identity, configurable options, and uciok.
- The interface may change options and uses isready to confirm that initialization is complete.
- The interface sends position with the starting position or a , optionally followed by moves.
- The go command starts a search with time, depth, or other limits.
- During calculation the engine may send info lines. It finishes with bestmove and its chosen move.
Moves sent through UCI normally use origin and destination squares, such as e2e4. A promotion adds the chosen piece, as in e7e8q. This is not the same form as normally used to read games.
UCI defines a communication language, not an engine's strength or an interface's appearance. It also differs from the . They solve a similar problem, but their commands are not interchangeable without an adapter.
Common confusions
UCI versus engine
UCI does not calculate moves. It is the protocol used to request calculations from a compatible engine.
UCI versus CECP
They are different protocols. An engine that supports one does not necessarily understand the other.
View termSources
- 1.UCI Protocol, Shredder Chess
- 2.UCI Protocol and Stockfish Commands, Stockfish
