Devlog 0x12 - zduel match manager
Over the past week, I created on a simple chess match manager that runs in the terminal. Here is a brief overview of it and some of the features it has.
Before we begin, if you'd like to use zduel, you can checkout the github page: zduel github
About zduel
zduel is a CLI chess match manager. There's a bunch of words jammed together there, so let's break it down. Basically, it's a command line interface tool. This means you run it from the terminal. It's also chess match manager. This means it runs matches between chess engines locally. I find it to be an incredibly useful debugging tool.
Some Features Available Now
- Engine Matches - Play matches between engines with a variety of time control modes.
- Player Matches - Play 1vs1 against a chess engine of your choice, also with a variety of bot time controls.
- Logging - Log each match your bots play, which is incredibly useful for collecting data on engine performance and debugging specific positions.
- Elo Estimation - Play a number of test games against Stockfish to determine a rough elo range for your engine. Not super accurate but interesting nonetheless.
- Configuration - Change the colors of white/black pieces via a configuration file. Works using the TOML parser I wrote, ztoml.
- Game Display - Using ANSI escape codes, zduel shows you the match being played in real time. This helps you visualize how your engine is playing and one of the most important parts of the match manager.

Some Features to Come
There are quite a few features I'd like to add to zduel to make it a more complete match manager. Here's a few features planned so far:
- Match History - Maintain a persistent match history in a toml file and read/store engine histories from the same file.
- Tournament Mode - Run a round-robin style tournament between all the engines available.
- Stockfish Game Analysis - Use Stockfish to analyze all games happening in real time, give a rough move accuracy number and performance value.
While the project is incomplete and a bit buggy in it's current state, I am enjoying using the program for debugging my own chess engines and I would recommend trying it if you want a light weight, simple and intuitive chess match manager. Thanks for reading and I'll see you next time :)