Universal Chess Interface

Also known as: UCI

A text protocol that lets a graphical interface control and query a chess engine.

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

  1. The interface starts the engine and sends uci.
  2. The engine replies with its identity, configurable options, and uciok.
  3. The interface may change options and uses isready to confirm that initialization is complete.
  4. The interface sends position with the starting position or a , optionally followed by moves.
  5. The go command starts a search with time, depth, or other limits.
  6. 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 term

Sources

Related terms

© 2026 MindZug