Graphical User Interfaces for Computer Chess

For a listing of all GUIs available to chess enthusiasts, please check out the Computer Chess Wiki (in particular, the GUI Protocol List).

My focus will be on GUIs that are typically used to conduct engine tournaments.

1) WinBoard/XBoard

Originally created to be as the user interface for GNUChess, XBoard was the first interface built separate from the chess engine (a more through account of the history of WinBoard (for Windows OS) and XBoard (Unix and Unix-like OSes) can be found here and here). This made it possible for other engines to eventually connect their engines to the interface in place of GNUChess. Though not originally designed to conduct engine tournaments (though, due to the work done by long-time maintainer Tim Mann, it could be used, along with an automated player created by Tim called Zippy, to allow computer engines to play automatically on Internet chess servers such as ICS), several WinBoard tournament managers (such as Alex WBTM, PSWBTM, Galis WBTM, FSTM, and others) were developed to create and automate tournaments on users' computers. In addition, WinBoard communicates with engines using the Chess Engine Communication Protocol, (informally known as the WinBoard protocol). To use UCI engines with WinBoard, Polyglot had to be used as an adapter. However, due to the work done by the current maintainer of WinBoard and XBoard, Harm Geert Muller (also known as HGM on the forums), Winboard now has a built-in tournament manager and can communicate directly with UCI engines. Additional, HGM has made WinBoard/XBoard capable of playing a multitude of chess variants.

2) Arena

First created in 2001 by Martin Blume, Arena is a versatile GUI that handles both WinBoard and UCI engines. Due to its ease of use, it may be the most popular of the free GUIs. Though it does have a few known flaws and can be a bit buggy, Arena has much to recommend it to computer chess enthusiasts. Installing engines and setting up engine tournaments is an easy process. Tournaments can be stopped and resumed later. Engines can be added or removed mid-tournament. It comes preconfigured for many engines. Several Arena enthusiasts have created books for engine matches, which are freely available at the Arena website. The program menus are available in numerous languages. And it is free!

3) ChessGUI

Created by Matthias Gemuh because other GUIs could not handle very large Swiss tournaments, ChessGUI can handle WinBoard and UCI engines. Very versatile, with a multitude of options (which can be a deterrent to someone new to ChessGUI). ChessGUI can import engines from Arena and Winboard. In conjunction with Tom's Live Chess Viewer, matches played in ChessGUI can be viewed live by other people (also true in a more limited way with WinBoard and Arena). Also, ChessGUI is the GUI of choice for Ray Bank's FRC (Chess960) testing (CCRL 40/4 FRC List). In fact, ChessGUI can conduct engine matches in other chess variants, such as Gothic and Capablanca.

4) Scid vs. PC

Scid vs. PC (developed by Steven Atkinson) is a fork of Scid, the chess database program originally created by Shane Hudson. Steven has added the ability to conduct engine tournaments. While this ability is still being developed (and is not the sole focus of Steven's work) and thus is not on the same level of the GUIs mentioned above, the promise of GUI/tournament manager/chess specific database tool in one package is quite desirable. I hope Steven continues his good work.

5) LittleBlitzer

Not actually a GUI (but I am including LittleBlitzer in this since my focus is on programs that can be used to conduct engine tournaments), LittleBlitzer is a tournament manager created by Nathan Thom with the focus on engine testing. LittleBlitzer allows the tester to generated thousands of fast time control games quickly so that the progress (in terms of strength) of an engine can be tracked efficiently. The primary problem with LittleBlitzer is that it only supports UCI engines. This facts, along with a couple of other small issues, limits its usefulness as a general use tournament manager. However, it is quite good at what it does.

6) CuteChess-CLI

Like LittleBlitzer, CuteChess-Cli (created by Ilari Pihlajisto) is not a GUI (it is operated from the command line). However, it is probably the best tournament manager for the purpose of improving (strength-wise) a chess engine. It can handle both Winboard and UCI engines. It can test with fixed nodes, with fixed depths, or with various time controls. It can produce games as efficiently as LittleBlitzer. And it can be used with Rémi Coulom's CLOP to automate chess engine parameter tuning.

7) Chess for Android

Chess for Android is a free GUI created by Aart Bik for playing chess against engines on an Android device. He included the ability to conduct engine tournaments. Many engines, UCI and XBoard/WinBoard, have been compiled for use with the program (links can be found here ).

8) Commercial GUIs

Fritz 13 GUI (taken from )

Description of Fritz 13 GUI by Gábor Szöts:

A very stable GUI. Only for native and UCI engines but WB engines can be used as well via the WB2UCI adaptor. Occassionally certain WB engines won't start.
Installing engines is not particularly comfortable. You cannot give them any name you wish, only the default offered. You have to edit the created *.uci file afterwards.
Changing parameters is also painful. After altering them you have to save a parameter file lest you lose your changes. At every use later you must remember loading that parameter file, otherwise defaults will be used.
You cannot use a common truncated book for a tournament, the full length book will be used unless, when selecting participats for your tournament, you specify book options separately for each engine, which is a bit tedious.
If, for whatever reason, you alter an engine or tournament parameter during a tournament in progress, the tournament will be restarted from game 1. You won't lose your already finished games but they will be replayed anyway.
You can stop a running tournament only by losing the game in progress.
You cannot specify resign margins for the games, you can only choose from 3 predefined conditions of resigning.

Shredder 12 GUI (taken from )

Description of Shredder 12 GUI by Gábor Szöts:

A very stable GUI. Only for UCI engines but WB engines can be used as well via the WB2UCI adaptor. Occassionally certain engines won't start and a message 'this is not a UCI engine' is displayed, which is ridiculous.
You can modify a running tournament only by manually editing the tournament files, which is uncomfortable and easy to mix up.
You cannot specify resign margins for the games, you can only switch resigning on and off.

9) There are other GUIs that can be used for engine matches (possibly tournaments).

CBoard (for Linux)