eleeye_engine is a command-line client for UCCI (based on UCI) protocol. It provides full support of basic UCI command, such as position, go, banmoves or bestmove and much more.
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 -- user interfaces -- 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.
Universal Chinese Chess Interface Protocol: <http://www.elephantbase.net/protocol/cchess_ucci.htm>