cutechess-cli(6)
| CUTECHESS-CLI(6) | Games Manual | CUTECHESS-CLI(6) |
NAME
cutechess-cli —
Automate chess engine tournaments
SYNOPSIS
cutechess-cli |
-engine engine-options
-engine engine-options
[-engine engine-options ...]
[options] |
DESCRIPTION
The cutechess-cli utility automates chess
engine tournaments.
Its options are as follows:
-engineengine-options- Add an engine defined by engine-options to the tournament. See Engine Options.
-eachengine-options- Apply engine-options to each engine in the tournament. See Engine Options.
-variantvariant- Set the chess variant, where variant is one of:
- 3check
- Three-check Chess
- 5check
- Five-check Chess
- ai-wok
- Ai-Wok (Makruk variant)
- almost
- Almost Chess
- amazon
- Amazon Chess
- andernach
- Andernach Chess
- antiandernach
- Anti-Andernach Chess
- antichess
- Antichess / Losing Chess
- asean
- ASEAN-Chess
- atomic
- Atomic Chess
- berolina
- Berolina Chess
- cambodian
- Ouk Chatrang (Cambodian Chess)
- capablanca
- Capablanca Chess
- caparandom
- Capablanca Random Chess
- cfour
- Cfour (7x6, line up 4 to win)
- chancellor
- Chancellor Chess (9x9)
- changeover
- Change-Over Chess
- checkless
- Checkless Chess
- chessgi
- Chessgi / Drop Chess
- chigorin
- Chigorin Chess
- circulargryphon
- Circular Gryphon Chess
- codrus
- Game of Codrus (Losing Chess Variant)
- coregal
- Co-regal Chess
- courier
- Courier Chess (Medieval)
- crazyhouse
- Crazyhouse (Drop Chess Variant)
- displacedgrid
- Displaced Grid Chess
- dobutsu
- Dobutsu Shogi (3x4)
- embassy
- Embassy Chess
- euroshogi
- EuroShogi (8x8)
- extinction
- Extinction Chess
- fischerandom
- Fischer Random Chess / Chess 960
- giveaway
- Giveaway Chess (Losing Chess)
- gomoku
- Gomoku (15x15, exactly 5 in a row to win)
- gomokufreestyle
- Gomoku Free-Style (5 in a row to win)
- gothic
- Gothic Chess
- grand
- Grand Chess
- grid
- Grid Chess
- gridolina
- Berolina Grid Chess
- gryphon
- Gryphon Chess
- gustav3
- Gustav III's Chess
- hoppelpoppel
- Hoppel-Poppel (has N/B hybrids)
- horde
- Horde Chess (v2)
- janus
- Janus Chess
- jesonmor
- Jeson Mör
- judkins
- Judkins Shogi (6x6)
- karouk
- Kar Ouk (One-check Ouk)
- kinglet
- Kinglet Chess
- kingofthehill
- King of the Hill Chess
- knightmate
- Knightmate
- knightrelay
- Knight-Relay Chess
- loop
- Loop Chess (Drop Chess Variant)
- losalamos
- Los Alamos Chess
- losers
- Loser's Chess
- makruk
- Makruk (Thai Chess)
- minishogi
- Minishogi (5x5)
- modern
- Modern Chess (9x9)
- newzealand
- New Zealand Chess (has N/R hybrids)
- placement
- Placement Chess
- pocketknight
- Pocket Knight Chess
- racingkings
- Racing Kings Chess
- rifle
- Rifle Chess
- seirawan
- S-Chess (Seirawan Chess)
- shatranj
- Shatranj
- shogi
- Shogi
- shoot
- Shoot Chess
- simplifiedgryphon
- Simplified Gryphon Chess
- sittuyin
- Sittuyin (Myanmar Chess)
- slippedgrid
- Slipped Grid Chess
- suicide
- Suicide Chess (Losing Chess Variant)
- superandernach
- Super-Andernach Chess
- threekings
- Three Kings Chess
- tictactoe
- Tic-tac-toe
- twokings
- Two Kings Each Chess (Wild 9)
- twokingssymmetric
- Symmetrized Wild 9
- standard
- Standard Chess (default)
-concurrencyn- Set the maximum number of concurrent games to n.
-drawmovenumber=numbermovecount=countscore=score- Adjudicate the game as draw if the score of both engines is within score centipawns from zero for at least count consecutive moves, and at least number full moves have been played. Captures and pawn moves will reset the counters.
-resignmovecount=countscore=score [twosided=value]- Adjudicate the game as a loss if an engine's score is at least score centipawns below zero for at least count consecutive moves. If value is true (default: false) then activate two-sided resign adjudication. The winning side's scores must be at least score centipawns above zero for at least count consecutive moves
-maxmovesn- Adjudicate the game as a draw if at least n full moves have been played without result. Ignored if n equals zero (default).
-tbpaths- Adjudicate games using Syzygy tablebases. Paths should be semicolon-delimited list of paths to the compressed tablebase files. Only the WDL tablebase files are required.
-tbpiecesN- Only use tablebase adjudication for positions with N pieces or less.
-tbignore50- Disable the fifty move rule for tablebase adjudication.
-tournamenttype- Set the tournament type, where type is one of:
- round-robin
- Round-robin tournament (default)
- gauntlet
- First engine(s) against the rest
- knockout
- Single-elimination tournament
- pyramid
- Every engine plays against all of its predecessors
-eventarg- Set the event name to arg.
-gamesn- Play n games per encounter. This value should be set to an even number in tournaments with more than two players to make sure that each player plays an equal number of games with white and black pieces.
-roundsn- Multiply the number of rounds to play by n. For two-player tournaments this option should be used to set the total number of games to play.
-sprtelo0=E0elo1=E1alpha=αbeta=β- Use a Sequential Probability Ratio Test as a termination criterion for the
match.
This option should only be used in matches between two players to test if engine P1 is stronger than engine P2. Hypothesis H1 is that P1 is stronger than P2 by at least E0 ELO points, and H0 (the null hypothesis) is that P1 is not stronger than P2 by at least E1 ELO points. The maximum probabilities for type I and type II errors outside the interval [ E0, E1 ] are α and β.
The match is stopped if either H0 or H1 is accepted or if the maximum number of games set by
-roundsand / or-gamesis reached. -ratingintervaln- Set the interval for printing the ratings to n games.
-outcomeintervaln- Set the interval for printing outcomes to n games.
-debug- Display all engine input and output.
-openingsfile=fileformat=[epd|pgn]order=[random|sequential]plies=pliesstart=startpolicy=[default|encounter|round]- Pick game openings from file. The file can be either
in
epd(Extended Position Description) orpgn(Portable Game Notation) format. The default format ispgn. Openings can be picked inrandomorsequential(default) order. The opening depth is limited to plies number of plies. If plies is not set the opening depth is unlimited. In sequential mode start is the number of the first opening that will be played. The minimum value for start is 1 (default).The value of policy rules when to shift to a new opening. If set to
encountera new opening is used for any new pair of players,roundshifts when a new round begins. Thedefaultshifts for any new pair of players and also when the specified number of opening repetitions is reached. -bookmodemode- Set Polyglot book access mode, where mode is either
ram(the whole book is loaded into RAM) ordisk(the book is accessed directly on disk). The default mode isram. -pgnoutfile [min] [fi]- Save the games to file in PGN format. Use the
minargument to save in a minimal PGN format. Only finished games will be saved if argumentfiis given. -epdoutfile- Save the games to file in FEN format.
-recover- Restart crashed engines instead of stopping the game.
-repeat[n]- Play each opening twice (or n times). Unless the
-noswapoption is used, the players swap sides after each game. So they get to play the opening on both sides. Please note that a new encounter will use a new opening. -noswap- Do not swap sides of paired engines.
-reverse- Use schedule with reverse sides.
-seedsn- Set the first n engines as seeds in the tournament. The default is 0.
-sitearg- Set the site / location to arg.
-srandseed- Set the random seed for the book move selector.
-waitn- Wait n milliseconds between games. The default is 0.
-resultformatformat- Specify the format of result lists.
Format can either be a comma separated list of
fields or a format name. Format
helpshows available named formats. Thedefaultformat lists rank, name, elo, elo error, number of games, score percentage, and draw percentage of every player. -version- Display the version information.
-help- Display help information.
-engines- Display a list of configured engines and exit.
Engine Options
conf=arg- Use an engine with the name arg from engine configuration file.
name=arg- Set the name to arg.
cmd=arg- Set the command to arg.
dir=arg- Set the working directory to arg.
stderr=arg- Redirect standard error output to file arg.
proto=[uci|xboard]- Set the chess protocol.
tc=[tcformat |inf]- Set the time control. The format is moves/time+increment, where
moves is the number of moves per tc,
time is time per tc (either seconds or
minutes:seconds), and increment is the time
increment per move in seconds.
Infinite time control can be set with
inf. option.name=value- Set custom engine option.
arg=arg- Pass arg to the engine as a command line argument.
initstr=arg- Send arg to the engine's standard input at startup.
restart=[auto|on|off]- Set the engine restart mode.
automeans the engine decides whether to restart (default),onmeans the engine is always restarted between games andoffmeans the engine is never restarted between games. Setting this option does not prevent engines from being restarted between rounds in a tournament featuring more than two engines. trust- Trust result claims from the engine without validation. By default all claims are validated.
st=n- Set the time limit for each move to n seconds. This
option cannot be used in combination with the
tcoption. timemargin=n- Let engines go n milliseconds over the time limit.
book=file- Use file (Polyglot book file) as the opening book.
bookdepth=n- Set the maximum book depth (in fullmoves) to n.
whitepov- Invert the engine's scores when it plays black. This option should be used with engines that always report scores from white's perspective.
ponder- Enable pondering if the engine supports it.
depth=plies- Set the search depth limit.
nodes=count- Set the node count limit.
tscale=factor- Scale engine timeouts by factor. Only use this option if necessary.
debug- Activate debug mode (per protocol, UCI only).
EXAMPLES
Play ten games between two Sloppy engines with a time control of 40 moves in 60 seconds:
$ cutechess-cli -engine cmd=sloppy
-engine cmd=sloppy -each proto=xboard tc=40/60 -rounds 10Play a single game between Atak and Glaurung engines with a time control of 40 moves in one minute and 30 seconds with one second increment:
$ cutechess-cli -engine name=Atak
cmd=Atak32.exe dir=C:\atak proto=xboard -engine cmd=glaurung proto=uci
option.Threads=1 -each tc=40/1:30+1- Use the name=Atak parameter because it's a Xboard protocol 1 engine and doesn't tell its name.
- Use the dir=C:\atak parameter to point the location of the executable.
- Glaurung can tell its name and is in the PATH variable so only the command is needed.
- Set Glaurung to use 1 thread.
- Set the time control to 40 moves in one minute and 30 seconds with one second increment.
Play a Round-Robin tournament between Fruit, Crafty, Stockfish and Sloppy:
$ cutechess-cli -engine conf=Fruit
-engine conf=Crafty -engine conf=Stockfish -engine conf=Sloppy -each tc=4
book=book.bin -games 2 -rounds 10 -repeat- Play two games per encounter, effectively multiplying the number of games by 2.
- Play 10 times the minimum amount of rounds (3). So the total number of rounds to play will be 30, and the total number of games 120.
- In each two-game encounter colors are switched between games and the same opening line is played in both games.
SEE ALSO
AUTHORS
The cutechess-cli utility was written by
Ilari Pihlajisto,
Arto Jonsson and contributors. See the project page
for more details.
RESOURCES
- Project page: http://github.com/cutechess/cutechess
| June 28, 2020 | Linux 6.12.85-6.12-alt1 |
