Search in Co-Wiki

Universal Chess Interface

game-theory 567 tokens 2 outbound links

Universal Chess Interface

The Universal Chess Interface (UCI) is an open communication protocol that enables chess-engines to communicate with user interfaces.

History In November 2000, the UCI protocol was released. Designed by Rudolf Huber and Stefan Meyer-Kahlen, the author of Shredder, UCI rivals the older "Chess Engine Communication Protocol" introduced with XBoard/WinBoard.

In 2002, Chessbase, the chess software company which markets Fritz, began to support UCI, which had previously been supported by only a few interfaces and engines.

, well over 300 engines are known to directly support UCI.

Design By design, UCI assigns some tasks to the user interface (i.e., presentation layer) which have traditionally been handled by the engine (at the business layer) itself.

Most notably, the opening book is usually expected to be handled by the UI, 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.

While the UI can also take responsibility for handling endgame-tablebases, this is arguably better handled in the engine itself, as having tablebase information can be useful for considering possible future positions.

Stefan-Meyer Kahlen's UCI protocol in Shredder uses a variation of long algebraic notation for moves. A "nullmove" from an engine to a GUI should be sent as 0000.

;Examples e2e4 e7e5 e1g1 (white short castling) e7e8q (for promotion)

Commands There are many commands used to communicate with an engine. {| class="wikitable" |+UCI Commands List * Universal Shogi Interface (USI), a dialect for shogi; * Universal Chinese Chess Interface (UCCI), a dialect for xiangqi.

Each of these protocols may also define variants of Portable Game Notation (PGN) and Forsyth–Edwards Notation (FEN). The XBoard CECP is said to require far fewer changes to support variants.

See also *Chess Engine Communication Protocol (XBoard protocol) *Shredder *XBoard

References ## External links *[List of UCI Engines (continuously updated)](https://www.chessprogramming.org/Category:UCI) BROKEN LINK, removed.