Skip to content

Welcome to Fishtest

Fishtest is a distributed task queue for testing chess engines through self-playing. The main instance for testing the chess engine Stockfish is at this web page: https://tests.stockfishchess.org

How does Fishtest work?

Developers submit patches with new ideas and improvements, and CPU contributors install the fishtest worker on their computers to play some chess games in the background to help the developers test their patches.

The worker

  • Automatically connects to the server to download a chess opening book, the cutechess-cli chess game manager, and the chess engine sources (both for the current Stockfish and for the patch with the new idea). The sources will be compiled according to the platform of the worker.
  • Starts a batch of games using cutechess-cli.
  • Uploads the results of the games to the server.

The server

  • Manages the queue of tests with customizable priorities.
  • Computes several probabilistic values from the game results sent by the workers.
  • Updates and publishes the results of ongoing tests.
  • Knows how to stop tests when they are statistically significant and publishes the final test results.

How to contribute to Stockfish/Fishtest

If you are a developer interested in chess, fork Stockfish and write some patches, following the instructions in [[Creating my first test]] to submit tests. Or you could contribute to improve the server itself (Fishtest) -- to test a patch locally on your computer simply follow [[Fishtest server setup]]. Developers should read these pages:

  • [[Fishtest FAQ]]
  • [[Creating my first test]]
  • [[Advanced topics]]
  • [[Fishtest server setup]]
  • [[Build cutechess with Qt5 static]]

Even if you do not know how to program yet, you can help the Stockfish developers to improve the chess engine by installing the Fishtest worker and letting it play some games on your PC. Simply follow these instructions:

  • [[Fishtest FAQ]]
  • [[Running the worker]]
  • [[Running the worker on Windows]]
  • [[Running the worker on Linux]]
  • [[Running the worker on macOS]]
  • [[Running the worker in the Amazon AWS EC2 cloud]]
  • Running the worker on Google Colaboratory