A command-line chess tool for managing engine matches and tournaments, with a focus on engine vs engine gameplay.
- Interactive CLI interface with color-coded output
- Engine vs engine matches with multiple time controls
- Real-time chess board visualization
- Match logging and analysis
- Cross-platform support (Windows, macOS, Linux)
- Zig 0.14.0 or later
- Chess engines (UCI compatible)
git clone https://github.com/strvdr/zduel.git
cd zduel
zig build
The executable will be available at zig-out/bin/zduel
.
Execute the following command from the project root. If you fail to run zduel from the root of the project, it won't be able to find engines in the "engines" folder.
./zig-out/bin/zduel
- Create an
engines
directory in your zduel folder - Place UCI-compatible chess engines in the directory
- Use
engines
command to manage them
If you don't have any chess engines installed, I recommend my engines Kirin(C) and Kirin(Zig) as a place to start. They are both UCI compatible chess engines in the ~2000 elo range.
help
- Display commands and usagedocs
- Open documentation in browserengines
- Manage chess enginesmatch
- Start an engine vs engine match
- Blitz (1 second per move)
- Rapid (5 seconds per move)
- Classical (15 seconds per move)
- Tournament (Best of 3 rapid games)
zduel has a basic configuration system powered by TOML and my (not great) toml parser written in Zig, ztoml.
Currently, only piece color preference is available within the config system, but I will add more features as I want them. If you want a feature, ask me or make it yourself and send a PR :)
To configure, navigate to the .config
directory and open zduel.toml
. From there, you can edit the colors as you wish.
cd .config
nvim zduel.toml
...
zduel/
├── src/
│ ├── main.zig # Entry point
│ ├── cli.zig # CLI interface
│ ├── enginePlay.wig # Engine management
│ ├── engineMatch.zig # Match handling
│ ├── displayManager.zig # Board visualization
│ └── logger.zig # Match logging
├── docs/
├── logs/
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the GPLv3 License - see the LICENSE file for details.
Full documentation available at https://zduel.strydr.net