Older Version Newer Version

GerdIsenberg GerdIsenberg Mar 4, 2018

[[toc]]
**[[Home]] * [[Protocols]] * Chess Engine Communication Protocol**

The **Chess Engine Communication Protocol**, also called **xboard** or **WinBoard** protocoll, is an open [[https://en.wikipedia.org/wiki/Communication_protocol|communication protocol]] for chess engines to play [[Games|games]] automatically, that is to communicate with other programs including [[GUI|Graphical User Interfaces]].  

=GUI=
A [[GUI]] supporting the protocol is known as [[XBoard]] or [[WinBoard]], being for [[Unix]] (Posix) or [[Windows]] operating systems, respectively. Many other GUIs support the protocol, which is based on text commands, while requiring the engine to keep the state of the game internally. While the [[UCI|Universal Chess Interface]] is somewhat more popular today, the Chess Engine Communication Protocol protocol is preferred by some because it allows greater flexibility for the engine (for instance, in [[Pondering|pondering]]).

=How it began=
[[Tim Mann]] in an Interview by [[Frank Quisinsky]], April 2000 <ref>[[http://tim-mann.org/history.html|XBoard Project History]]</ref>:
|| {{Originally, xboard and WinBoard were simply graphical user interfaces for [[GNU Chess]], then for GNU Chess and [[Chess Server|Internet chess servers]]. Because the [[GUI]] and the chess engine are separate programs, several people thought of the idea of connecting their own chess programs in place of GNU Chess, and they began to email me asking how to do it. I think the first person to ask was [[Shay Bushinsky]], in November 1994. Over the years I received so many requests for this information that I was more or less forced into documenting and extending the ad-hoc engine protocol to support them. The document that exists now (chess-engines.html) evolved directly from the original email reply I sent to Shay. Unfortunately, because the protocol was never really designed, but just grew out of documenting the existing communication with GNU Chess, there are still several bugs and deficiencies in it today. It would be nice to make some major revisions, but then of course it would (at best) take a long time for the existing engines to convert over to the new protocol, so both would have to be supported, probably forever.}} ||
[[#UMLStates]]
=UML State diagram=
|| [[image:xboard.gif link="http://walkofmind.com/programming/chess/xboard.htm"]] ||
|| WinBoard/XBoard protocol [[https://en.wikipedia.org/wiki/UML_state_machine|UML state diagram]] by [[Alessandro Scotti]] <ref>[[http://walkofmind.com/programming/chess/xboard.htm|Winboard/XBoard UML state diagram]] by [[Alessandro Scotti]]</ref> ||

=Version 2=
[[Harm Geert Muller]] established a protocol Version 2 in September, 2009 <ref>[[http://home.hccnet.nl/h.g.muller/engine-intf.html|Chess Engine Communication Protocol]] by [[Tim Mann]] & [[Harm Geert Muller|H.G. Muller]]</ref>, also covering [[Games|Chess Variants]] and different board sizes.

=Engines=
* [[WinBoard Engines]]
* [[XBoard Engines]]
[[#GUI]]
=GUIs=
==Native==
* [[WinBoard]]
* [[XBoard]]
==Compatible==
* [[Arena]]
* [[ChessGUI]]
* [[ChessPartner]]
* [[ChessX]]
* [[Cute Chess]]
* [[EBoard]]
* [[jose]]
* [[PyChess]]
* [[SCID]]
* [[Scid vs. PC]]
* [[Scidb]]

=Utilities=
* [[InBetween]]
* [[PolyGlot]]
* [[Wb2UCI]]
* [[UCI2WB]]

=See also= 
* [[CPW-Engine_com]]
* [[Engine Testing]]
* [[GNU Chess]]
* [[icsdrone]]
* [[Pondering]]
* [[UCI]]
* [[Vice#CECP|Vice XBoard/WiBoard-Videos]]

=Forum Posts=
==1990 ...==
* [[http://groups.google.com/group/gnu.chess/browse_frm/thread/40206c9937414b0d|xboard datapoint]] by Paul Vaughan, [[GNU Chess#NewsGroup|gnu.chess]], January 29, 1991
* [[http://groups.google.com/group/gnu.chess/browse_frm/thread/28d5826a078d091d|xboard v1.2]] by Chris Sears, [[GNU Chess#NewsGroup|gnu.chess]], June 14, 1991
* [[http://groups.google.com/group/gnu.chess/browse_frm/thread/4dc93bfa82e41a08|reading in a position and playing in xboard]] by [[Lewis Stiller]], [[GNU Chess#NewsGroup|gnu.chess]], February 20, 1992
* [[http://groups.google.com/group/gnu.chess/browse_frm/thread/a7d8892d10f66aff|Re: Accessing remote computers with WinBoard]] by [[Tim Mann]], [[GNU Chess#NewsGroup|gnu.chess]], November 7, 1993
==1995 ...==
* [[http://groups.google.com/group/rec.games.board/browse_frm/thread/63700b0fcfa8b39e|XBoard and WinBoard 3.4, patchlevel 1]] by [[Tim Mann]], [[Computer Chess Forums|rec.games.board]], December 13 1995
* [[https://groups.google.com/d/msg/rec.games.chess.misc/M-NkXvEu1DM/XeESczC85o0J|XBoard and WinBoard, version 3.6.0]] by [[Tim Mann]], [[Computer Chess Forums|rgc]], May 09, 1997
* [[http://www.stmintz.com/ccc/index.php?id=26696|new autoplayer interface standard]] by [[Robert Hyatt]], [[CCC]], September 15, 1998
* [[http://www.stmintz.com/ccc/index.php?id=62577|WinBoard and pondering under W98]] by [[Frank Phillips]], [[CCC]], July 28, 1999 » [[Pondering]], [[WinBoard]]
==2000 ...==
* [[https://groups.google.com/d/msg/rec.games.chess.computer/r5-Kdb4p4bE/tKCt-SwZKlgJ|Winboard for Dummies]] by [[Russell Reagan]], [[Computer Chess Forums|rgcc]], June 30, 2001
* [[http://groups.google.com/group/gnu.chess/browse_frm/thread/3fffd13e5ba818aa|xboard and WinBoard 4.2.4 released]] by [[Tim Mann]], [[GNU Chess#NewsGroup|gnu.chess]], December 10, 2001
* [[http://www.open-aurec.com/wbforum/viewtopic.php?f=18&t=39184|what is the importance of the ping command?]] by [[Uri Blass]], [[Computer Chess Forums|Winboard Forum]], September 24, 2002 
* [[http://www.stmintz.com/ccc/index.php?id=389667|Kiwi for Win98 and input-reading stuff]] by [[Alessandro Scotti]], [[CCC]], September 29, 2004 » [[Kiwi]], [[Windows]], [[Cpp|C++]], [[Thread]]
==2005 ...==
* [[http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=1622|Safe I/O (repeated)]] by [[Fabien Letouzey]], [[Computer Chess Forums|Winboard Forum]], February 11, 2005
* [[http://www.open-aurec.com/wbforum/viewtopic.php?f=2&t=1693&p=7809|A question about kibitz]] by [[Niyaz Khasanov]], [[Computer Chess Forums|Winboard Forum]], February 18, 2005
* [[http://lists.gnu.org/archive/html/info-gnu-chess/2006-05/msg00004.html|Re: gnuchess/xboard protocol]] by [[Hans Eric Sandström]], [[GNU Chess#NewsGroup|gnu.org]], May 19, 2006
* [[http://www.talkchess.com/forum/viewtopic.php?t=24327|Authors of WinBoard SMP engines, take note!]] by [[Harm Geert Muller]], [[CCC]], October 11, 2008 » [[Parallel Search]], [[SMP]], [[SMP Engines]]
* [[http://www.open-aurec.com/wbforum/viewtopic.php?f=19&t=50429|UCI protocol in winboard]] by [[Engin Üstün]], [[Computer Chess Forums|Winboard Forum]], September 24, 2009 » [[UCI]], [[WinBoard]]
* [[http://www.talkchess.com/forum/viewtopic.php?t=30088|Adapter for non-standard chess engine to Winboard]] by [[Carey Bloodworth|Carey]], [[CCC]], October 10, 2009
==2010 ...==
* [[http://www.talkchess.com/forum/viewtopic.php?t=32254|XBoard and epd tournament]] by [[Vlad Stamate]], [[CCC]], January 31, 2010 » [[Engine Testing]]
* [[http://www.talkchess.com/forum/viewtopic.php?t=32952|Aquarium (other GUIs too?) and WB support => I am shocked]] by [[Miguel A. Ballicora]], [[CCC]], February 27, 2010
**2011**
* [[http://www.open-aurec.com/wbforum/viewtopic.php?f=24&t=51739|WinBoard protocol driver]] by [[Harm Geert Muller]], [[Computer Chess Forums|Winboard Forum - Chess Programming Lessons]], April 30, 2011
* [[http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=52093|Starting to use the Winboard Protocol]] by [[Reinhard Scharnagl]], [[Computer Chess Forums|Winboard Forum]], December 11, 2011
**2012**
* [[http://www.talkchess.com/forum/viewtopic.php?t=42834|XBoard / WinBoard 4.6.0 released]] by [[Harm Geert Muller]], [[CCC]], March 11, 2012
* [[http://www.talkchess.com/forum/viewtopic.php?t=45325|Winboard protocol and fractional increments]] by [[Jon Dart]], [[CCC]], September 25, 2012 » [[Time Management]]
**2013**
* [[http://www.talkchess.com/forum/viewtopic.php?t=46780|A few questions about CECP]] by [[Martin Sedlak]], [[CCC]], January 05, 2013
* [[http://www.talkchess.com/forum/viewtopic.php?t=49683|WB protocol: describing how a piece moves]] by [[Harm Geert Muller]], [[CCC]], October 12, 2013
**2014**
* [[http://www.talkchess.com/forum/viewtopic.php?t=50903|WB protocol extension: thinking output]] by [[Harm Geert Muller]], [[CCC]], January 14, 2014
* [[http://www.talkchess.com/forum/viewtopic.php?t=53265|Handling xboard new game race condition in protover 1 engine]] by [[Matthew Lai]], [[CCC]], August 12, 2014
* [[http://www.talkchess.com/forum/viewtopic.php?t=53734|for Chess-variant authors]] by [[Harm Geert Muller]], [[CCC]], September 17, 2014
* [[http://www.talkchess.com/forum/viewtopic.php?t=54124|XBoard and chess variants]] by [[Evert Glebbeek]], [[CCC]], October 28, 2014
* [[http://www.talkchess.com/forum/viewtopic.php?t=54162|UCCI2WB]] by [[Harm Geert Muller]], [[CCC]], October 27, 2014
* [[http://www.talkchess.com/forum/viewtopic.php?t=54629|WB protocol specs]] by [[Harm Geert Muller]], [[CCC]], December 12, 2014
==2015 ...==
* [[http://www.talkchess.com/forum/viewtopic.php?t=57082|xboard softquit]] by [[Matthew Lai]], [[CCC]], July 26, 2015
* [[http://www.open-chess.org/viewtopic.php?f=5&t=2871&p=22300|Winboard 2 state diagram]] by thevinenator, [[Computer Chess Forums|OpenChess Forum]], August 26, 2015 
* [[http://www.talkchess.com/forum/viewtopic.php?t=57430|XBoard for Mac: Zippy problems]] by [[Steven Edwards]], [[CCC]], August 29, 2015 » [[Mac OS]]
* [[http://www.talkchess.com/forum/viewtopic.php?t=57446|Suggestions for XBoard documentation]] by [[Steven Edwards]], [[CCC]], August 30, 2015
* [[http://www.talkchess.com/forum/viewtopic.php?t=58714|CECP ('WB protocol') specs]] by [[Harm Geert Muller]], [[CCC]], December 28, 2015
**2016**
* [[http://www.talkchess.com/forum/viewtopic.php?t=59784|Release of XBoard 4.9.0 soon]] by [[Harm Geert Muller]], [[CCC]], April 07, 2016
* [[http://www.talkchess.com/forum/viewtopic.php?t=59905|Chess on Android]] by [[Pedro Castro]], [[CCC]], April 19, 2016 » [[Chess for Android]], [[DanaSah]]
* [[http://www.talkchess.com/forum/viewtopic.php?t=60239|CECP: Chess variants with dice]] by [[Harm Geert Muller]], [[CCC]], May 22, 2016
* [[http://www.talkchess.com/forum/viewtopic.php?t=61823|ChessGUI Timer Problem]] by [[Dennis Sceviour]], [[CCC]], October 24, 2016 » [[ChessGUI]]
**2017**
* [[http://www.talkchess.com/forum/viewtopic.php?t=63525|Winboard variants online]] by [[Erin Dame]], [[CCC]], March 22, 2017 » [[Chess#Variants|Chess Variants]]
* [[http://www.talkchess.com/forum/viewtopic.php?t=64411|Winboard questions]] by [[Ed Schroder]], [[CCC]], June 26, 2017
* [[http://www.talkchess.com/forum/viewtopic.php?t=64432|Winboard: Resigning?]] by [[Rasmus Althoff]], [[CCC]], June 27, 2017
**2018**
* [[http://www.talkchess.com/forum/viewtopic.php?t=66745|UCI vs Winboard question]] by [[Michael Sherwin]], [[CCC]], March 05, 2018 » [[UCI]]

=External Links= 
* [[https://en.wikipedia.org/wiki/Chess_Engine_Communication_Protocol|Chess Engine Communication Protocol from Wikipedia]]
* [[http://hgm.nubati.net/CECP.html|Chess-Engine Communication Protocol]] by [[Harm Geert Muller]] <ref>[[http://www.talkchess.com/forum/viewtopic.php?t=58714|CECP ('WB protocol') specs]] by [[Harm Geert Muller]], [[CCC]], December 28, 2015</ref>
* [[http://home.hccnet.nl/h.g.muller/engine-intf.html|Chess Engine Communication Protocol]] by [[Tim Mann]] & [[Harm Geert Muller]]
* [[http://hgm.nubati.net/newspecs.html|Chess Engine Communication Protocol - New Specs]] by [[Harm Geert Muller]] <ref>[[http://www.talkchess.com/forum/viewtopic.php?t=54629|WB protocol specs]] by [[Harm Geert Muller]], [[CCC]], December 12, 2014</ref>
* [[http://hgm.nubati.net/news.html|XBoard News]] by [[Harm Geert Muller]]
> [[http://hgm.nubati.net/XB-4.9.0/|What is new in XBoard/WinBoard 4.9.0?]] by [[Harm Geert Muller|H.G. Muller]]
* [[http://timmann.server269.com/xboard.html|Tim Mann's Chess Pages, XBoard and WinBoard]]
> [[http://www.tim-mann.org/winboard/rshd-readme.txt|rshd-readme.txt]] by [[Dan Newman]] <ref>[[https://en.wikipedia.org/wiki/Remote_Shell|Remote Shell from Wikipedia]]</ref> <ref>[[http://rshd.sourceforge.net/|Windows Implementation of RSHD]]</ref>
* [[http://www.mail-archive.com/bug-xboard@gnu.org/maillist.html|bug-xboard mail archive]] 
* [[http://walkofmind.com/programming/chess/winboard_x.htm|Tinkering with Winboard...]] by [[Alessandro Scotti]]
> [[http://walkofmind.com/programming/chess/xboard.htm|Winboard/XBoard UML state diagram]] by [[Alessandro Scotti]]
* [[http://www.horizonchess.com/FAQ/Winboard/index.html|FAQ on Winboard and Chess Engines]] by [[Aaron Tay]]
* [[http://www.reocities.com/lyapko/winboard.htm|Lyapko George's WinBoard related page]] (outdated) by [[George Lyapko]] <ref>[[http://www.talkchess.com/forum/viewtopic.php?t=46721|Tool to recreate PGN from winboard.debug?]] by [[Sven Schüle]], [[CCC]], January 01, 2013</ref>
* [[http://computer-chess.org/doku.php?id=winboard:faq:index|Winboard and Chess Engines FAQ]] from [[Ron Murawski|Ron Murawski's]] [[http://computer-chess.org/doku.php?id=home|Computer-Chess Wiki]]
* [[http://www.open-aurec.com/wbforum/viewforum.php?f=19|WinBoard development and bugfixing Forum]]

=References= 
<references />
**[[Protocols|Up one Level]]**