I am making modifications to a chess engine.

I want to get quick feedback on whether the modified version seems stronger than an unmodified version or not, by fighting the older version multiple times.

Does anyone know about a good tool to do this? (Currently I have some homemade code to do this using python-chess ... but a tried and tested tool would be preferred)


Cutechess is a very good solution for this. You can use either the CLI or the GUI to run matches of engines (both UCI and XBoard protocol), and at least the CLI even supports SPRT as a termination criterion of the match, see the help.

Cutechess is also heavily used in the development of Stockfish when running matches between different versions of Stockfish on fishtest.

  • The CLI for this looks really neat ... so does the fact that Stockfish is using it. Just compiled it on my machine and started a tournament. Thank you! – GPK Dec 4 '18 at 11:18
  • Sure. One feature also worth mentioning is that it supports concurrent games within a match (argument "-concurrency"), which makes testing on multiple cores very convenient and efficient. – Fabian Fichter Dec 4 '18 at 13:56

Arena would best suit you. It has a graphical user interface as well as other features required for engine development such as multi-PV, specifying number or cores, and many more (but as a new user it will take you some time to get used to it). Download it from their website.

  • Looks nice, but looks like it doesn't have CLI (forgot to list that as a requirement). Also seems to provide binaries only for Windows and Linux but not Mac (and no source code to compile it for Mac either) – GPK Dec 4 '18 at 11:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.