fastchess-gui: a light GUI for engine testing and tournaments, built on fastchess

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

j_romang
Posts: 127
Joined: Mon May 16, 2011 2:52 am

Re: fastchess-gui: a light GUI for engine testing and tournaments, built on fastchess

Post by j_romang »

MartinBryant wrote: ↑Sat Nov 14, 2026 10:16 am Fantastic piece of work. Thank you so much.
Does that mean I can delete all my fastchess .bat files now? :D
Thanks Martin, glad you like it! :D

Mostly, yes :) Everything the .bat files pass to fastchess (engines and their options, time control, book, SPRT, concurrency, adjudication, tablebases) is set in the GUI and can be saved as a template. If you still want to script runs, the headless mode does it without a window: fastchess-gui --run setup.json starts a tournament from a saved setup, fastchess-gui --run <folder> resumes one, with exit codes and a clean stop on Ctrl+C. The queue chains several tournaments.
mar
Posts: 3119
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: fastchess-gui: a light GUI for engine testing and tournaments, built on fastchess

Post by mar »

j_romang wrote: ↑Sat Nov 14, 2026 9:19 am Myracle seems to have done the same for you, hence the twins. That's the price of having a format everyone wants to follow. :lol:
what kind of nonsense is this, Gabor asked for only one thing regarding the crosstable - and that was to include the event name,
the draw percentage was asked for by Guenther, the book was asked for by someone in the thread and the rest was there since the beginning, hence your statement is false.

I understand you took literally every possible shortcut there is but plagiarising even the crosstable layout, oh boy that's really low.
j_romang
Posts: 127
Joined: Mon May 16, 2011 2:52 am

Re: fastchess-gui: a light GUI for engine testing and tournaments, built on fastchess

Post by j_romang »

You're right, I got that wrong, sorry. The sort orders and the footer line came from Myracle, not from Gabor's posts. Using a layout testers already know isn't plagiarism to me, there's no point reinventing the wheel. I added to the v0.5.0 notes said these features were seen in Myracle.
j_romang
Posts: 127
Joined: Mon May 16, 2011 2:52 am

Re: fastchess-gui: a light GUI for engine testing and tournaments, built on fastchess

Post by j_romang »

To set the record straight: the layout I followed came from the gauntlet tables posted in the Myracle GUI thread, which are Myracle's own crosstable files. I mistook them for Gabor's format, so my remark that Myracle had done the same for us was wrong. Credit for that layout goes to Myracle. And since fastchess-gui is open source, Myracle is welcome to take any idea from it in return.
mar
Posts: 3119
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: fastchess-gui: a light GUI for engine testing and tournaments, built on fastchess

Post by mar »

j_romang wrote: ↑Sat Nov 14, 2026 1:03 pm And since fastchess-gui is open source, Myracle is welcome to take any idea from it in return.
stop it, really. this is not how I work, having tried the binary (not sure why the fastchess binary is included since this is a fork of it), I saw nothing interesting or original that i havent seen elsewhere. its not even the first fastchess frontend. now please leave my GUI out of this, I only wanted to correct a false statement, which you already set straight, so nothing else is needed.
j_romang
Posts: 127
Joined: Mon May 16, 2011 2:52 am

Re: fastchess-gui: a light GUI for engine testing and tournaments, built on fastchess

Post by j_romang »

fastchess-gui 0.5.9 is out: https://github.com/jromang/fastchess-gu ... tag/v0.5.9

macOS version
One universal app for Apple silicon and Intel, macOS 13.3 or newer. It builds and passes its tests on GitHub's Macs, but nobody has tried it on a real Mac yet, so feedback from Mac users would be very welcome. :D The app isn't signed by an Apple developer account, so the first time you open it you have to Control-click it and choose Open. On macOS 15, go to System Settings > Privacy & Security > Open Anyway.

More robust opening books
A PGN game with a comment before its first move, a FEN or EPD position without a king, or a malformed castling move are now skipped with a warning instead of stopping the tournament, and an ambiguous move only ends that opening's line. Thanks to Disservin for quickly reviewing and merging the corresponding fixes in fastchess and chess-library.

Security
The code is now checked automatically for vulnerabilities (CodeQL, Coverity, sanitizers and fuzzing), and the broadcast tunnel was hardened.

Binaries for Linux, Windows and macOS are on the release page.
j_romang
Posts: 127
Joined: Mon May 16, 2011 2:52 am

Re: fastchess-gui: a light GUI for engine testing and tournaments, built on fastchess

Post by j_romang »

fastchess-gui 0.6.0 is out, for Windows, Linux and macOS: release page.

It is the biggest release so far, and much of it is about long unattended runs: what happens to your tournaments while you are not watching them.

Close the window, the tournaments keep playing

Each tournament now plays in a process of its own. When you close the window, the default choice is "Keep them running and quit": the games go on, and the window shows the tournaments again at its next launch, exactly where they are. A crash takes down one tournament, not the others nor the window.

Several tournaments can run at once and share the machine: a budget of cores in Settings, split by a weight on each tournament's card, and a smaller share never interrupts a game in progress. There is a memory budget too (a game starts only when its engines' Hash fits), and engines that use a GPU never outnumber the GPUs. On a server,

Code: Select all

fastchess-gui --run setup.json --detach
does the same without a window, and

Code: Select all

--attach
talks to a running tournament from a terminal.

Image
A round robin of the GaiaChess releases and an SPRT between two of them, side by side on the home page. Click any picture for full size.

Other computers

A tournament can now run on another computer, a test box, a server or a second PC, over SSH, and be followed from the window as if it played here. It reconnects by itself after a network cut, and the games and logs are copied back as they come. Windows PCs work too, through the OpenSSH server Windows provides.

Settings installs or updates fastchess-gui there, checks each engine on the machine, and copies the ones that are missing, after checking that the build is meant for that machine's system and processor. A SHA-256 tells you whether the engine over there is the same build as yours, so that a difference in results is not a difference in builds. The books and Syzygy files the tournament needs are copied as well.

Image
Settings > Machines: a Windows 11 PC tested over SSH.

Unattended runs

An engine that cannot start no longer stops the tournament. Its games are set aside, the others go on, it is tried again every five minutes, and its games come back once it starts. The home page tells you which engine failed and why, with its log and three buttons: Try again, Withdraw, Replace. In the picture below, a development build cannot find its network file.

More generally, the messages now name the engine, the resource and the fix, with a button that applies it: a program that moved, an engine that takes every core by default, an option value it refuses. The Syzygy files are checked before the start, a Health card counts the incidents per engine (losses on time in the first moves are shown apart, as they usually point to a setup problem rather than to time management), and a rebuilt engine is noticed, with what changed in its options.

Image

Setting up a tournament

The New tournament page was rebuilt around profiles, one for each part of the setup (format and SPRT bounds, time control, openings, adjudication, engine settings), with presets for the usual conditions: a new test is set up by choosing a profile for each part, and a change for one tournament can be saved as a new profile. The engine library sits beside the participants, with a filter, groups and sorting by rating; a double-click or a drag adds an engine.

Also new: team matches (two teams of engines, everyone against everyone or board by board), an Elo bias and a minimum number of games for SPRT, a randomness setting for Polyglot books, and unbalanced openings flagged as the games end, with their pairs replayed from another opening if you want.

Image

The Board page

A new page for everything that is not a tournament. Any position can be analysed by an engine of the library, with its lines drawn as arrows, and pressing A on any board of the program (a live game, a finished one, an opening of a book) opens it there. You can open any PGN file and filter its games by their tags, paste a FEN, a PGN or a list of moves, or set up a position. A finished game can be analysed move by move, with its inaccuracies, mistakes and blunders marked. You can also play a game, or a pair, between two engines from the position on the board, while a tournament keeps running.

Image
A game of the round robin analysed with Gaia 4.4.3: the mistake 12...Qa5? is where the curve jumps.

The guide, built in

F1 now opens the guide in a panel beside the page, at the section about whatever is under the mouse: a row of the setup, a card of the home page, a column of a table. The guide is built into the program, in all eight languages of the interface, and works offline. It gained a quick start, every keyboard shortcut in one table, tips for choosing the settings, a troubleshooting section and a glossary. Questions are still welcome here, of course.

Image

And the rest

A game's result can be set by hand, even while it is being played, with its effect shown first and an undo. A big screen mode shows one game filling the window, for a television or a stream. Boards get colours, piece sets, move sounds and engine logos. Chess324 start positions come as a book, Polyglot books can be built from a PGN file, a portable mode keeps everything in one folder (a USB stick, for instance), and the window now draws without OpenGL 3.2, on virtual machines and remote desktops.

Download

About 10 MB for Windows and Linux: one executable, nothing to install, nothing else to download. On macOS it is one universal app, with the fastchess command line tool beside it; it is not signed, so Control-click it and choose Open the first time.
Release page and full notes · README, with more screenshots

A big thank you to everyone who tried it and took the time to write, report a bug, ask for a feature or answer someone else's question. Most of what is above started as a question or a remark from a tester, here, on Discord, or on GitHub, so please keep them coming.
cpeters
Posts: 265
Joined: Wed Feb 17, 2021 7:44 pm
Full name: Christian Petersen

Re: fastchess-gui: a light GUI for engine testing and tournaments, built on fastchess

Post by cpeters »

Hello!


In addition to mirrored installs of fastchessgui (remote/ssh) is there an option (may have overlooked it) to add engine(s) to a local tournament from remote (ssh) machine(s)?

For all the other GUIs I've to use polyglot for that (works under fastchess/-GUI too of course), because they tend to need an executable which can be found through a file dialog initially (working on dot-files prior or afterwards is of course always possible), while cli-programs conveniently won't.

regards
j_romang
Posts: 127
Joined: Mon May 16, 2011 2:52 am

Re: fastchess-gui: a light GUI for engine testing and tournaments, built on fastchess

Post by j_romang »

Hello,

There's no remote engine type yet, but you don't need polyglot for it: an engine's Program and Arguments are plain text fields, and the program can be ssh itself.

- Engines → Add… → pick /usr/bin/ssh (Windows: C:\Windows\System32\OpenSSH\ssh.exe). The first read fails, since ssh has no arguments yet.
- Arguments: -T -o BatchMode=yes user@host /path/to/engine
or, when the engine needs its own folder: -T -o BatchMode=yes user@host cd /path/to/dir && ./engine
- Rename it, then "Read the UCI options again" and Check. Duplicate it for more engines from the same machine.

It needs a login that never prompts (the SSH agent, or a key without a passphrase) and the host key already known, so connect once by hand first. The Program must be the full path to ssh, not just ssh.

I tried it on 0.6.0 with a UCI and a WinBoard engine through ssh, in a round robin against a local engine at 3+0.05: options read, every game played, no time loss, nothing left running afterwards. :D On localhost ssh added about a millisecond per move.

Things to keep in mind:
- The program fingerprint, CPU and memory figures are those of ssh, not of the remote engine.
- Every engine opens its own ssh connection: if some fail to start when many games begin at once, raise MaxStartups in the machine's sshd_config.
- Most engines quit when ssh closes their input. Keep -T (no pseudo-terminal).

Your question gave me a good idea, and I'm going to work on it: an engine that runs on one of the Machines, through the SSH settings already there (no OpenSSH client needed, Windows included), read, checked and fingerprinted on that machine like a local one !

regards
cpeters
Posts: 265
Joined: Wed Feb 17, 2021 7:44 pm
Full name: Christian Petersen

Re: fastchess-gui: a light GUI for engine testing and tournaments, built on fastchess

Post by cpeters »

There's no remote engine type yet, but you don't need polyglot for it: an engine's Program and Arguments are plain text fields, and the program can be ssh itself.
Yes I know - exactly the point. To add an engine, you will have to click on something first; inserting just a string/command isn't initially possible.

greetings

(the polyglot-workflow was/is just my own ergonomy-thing just for GUIs; it works everytime, else I do prefer scripted headless things)