Request your personal fishnet key: https://lichess.org/get-fishnet
Install the fishnet client.
Via pip
To install or upgrade to the latest version do:
pip install --upgrade --user fishnet
Example usage:
python -m fishnet --auto-update
Other useful commands:
python -m fishnet configure # Rerun the configuration dialog python -m fishnet systemd # Generate a systemd service file python -m fishnet --help # List all commands and options
Via Docker
There is a Docker container courtesy of @mklemenz. For example you can simply do:
docker run mklemenz/fishnet --key MY_APIKEY --auto-update
fishnet is using a fork of Stockfish (hence the name) with multi-variant support by @ddugovic, @ianfab et al.
You can build Stockfish yourself (for example with ./build-stockfish.sh
)
and provide the path using python -m fishnet --stockfish-command
. Otherwise
a precompiled binary will be downloaded for you.
- Precompiled Stockfish binaries available for Linux, Windows and OS X on Intel and AMD CPUs
- Python 3.3+ or 2.7
- Will max out the number of configured CPU cores
- Uses a default of 256 MiB RAM per engine process, spawns one process for each group of ~3 cores
- A small amount of disk space
- Low-bandwidth network communication with Lichess servers (only outgoing HTTP requests, so probably no firewall configuration required)
Almost all processors will be able to meet the requirement of 4 meganodes in 6 seconds. Clients on the faster end will automatically be assigned analysis jobs that have humans waiting for the result (the user queue, as opposed to the system queue for slower clients).
Feel free to turn your client on and off at any time. By default, the client will try to finish any jobs it has already started. On immediate shutdown, the client tries to inform Lichess that jobs should be reassigned. If even that fails, Lichess will reassign the jobs after a timeout.
No, Stockfish is a classical alpha-beta engine. (Supporting Lc0 analysis is a future prospect.)
To the best of our knowledge. All network communication uses modern TLS.
However you implicitly trust the authors, PyPI infrastructure when running with
--auto-update
, the CI infrastructure when using precompiled Stockfish
binaries, and Lichess to not exploit potential vulnerabilities in Stockfish's
UCI implementation. You can mitigate all of these by running fishnet as an
unprivileged user.
No, sorry, not publically. It would incentivize gaming the metrics.
Yes, see the installation instructions above.
There is currently no ready-made solution, but an API for monitoring the job queue status is provided.
See protocol.md for details.
fishnet is licensed under the GPLv3+. See LICENSE.txt for the full license text.