The Universal Chess Interface (UCI) is an open communication protocol that enables a chess program's engine to communicate with its user interface.
It was designed and released by Rudolf Huber and Stefan Meyer-Kahlen, the author of Shredder, in November 2000, and can be seen as a rival to the older XBoard/WinBoard Communication protocol. Like the latter, it is free to use without license fees.
Customarily, UCI assigns some tasks to the user interface that have traditionally been handled by the engine itself. Most notably, the opening book is usually expected to be handled by the interface, by simply selecting moves to play until it is out of book, and only then starting up the engine for calculation in the resulting position. (UCI does not specify any on-disk format for the opening book; different UIs usually have their own, proprietary formats.) Also, the user interface may handle endgame tablebases if the engine does not support it itself, although this is often better handled in the engine, as having tablebase information can be useful to consider a possible future position.
Only a few interfaces and engines supported this protocol until Chessbase, the chess software company which markets Fritz, began to support UCI in 2002. As of 2007, there are well over 100 engines that support UCI.