4.1 Chess Engine Options
- -tc or -timeControl minutes[:seconds]
- Each player begins with his clock set to the
Default: 5 minutes.
The additional options
are mutually exclusive.
- -mps or -movesPerSession moves
- When both players have made
movesPerSession moves, a
timeControl period is added to both clocks. Default: 40 moves.
- -inc or -timeIncrement seconds
- If this option is specified,
movesPerSession is ignored.
Instead, after each player's move,
timeIncrement seconds are
added to his clock.
Use ‘-inc 0’ if you want to require the entire
game to be played in one
timeControl period, with no increment.
Default: -1, which specifies
- -clock/-xclock or -clockMode true/false
- Determines whether or not to display the chess clocks. If clockMode is
false, the clocks are not shown, but the side that is to play next
is still highlighted. Also, unless
is set, the chess engine still keeps track of the clock time and uses it to
determine how fast to make its moves.
- -st or -searchTime minutes[:seconds]
- Tells the chess engine to spend at most the given amount of time
searching for each of its moves. Without this option, the chess engine
chooses its search time based on the number of moves and amount
of time remaining until the next time control.
Setting this option also sets clockMode to false.
- -depth or -searchDepth number
- Tells the chess engine to look ahead at most the given number of moves
when searching for a move to make. Without this option, the chess
engine chooses its search depth based on the number of moves and
amount of time remaining until the next time control. With the option,
the engine will cut off its search early if it reaches the specified depth.
- -firstNPS number
- -secondNPS number
- Tells the chess engine to use an internal time standard based on its node count,
rather then wall-clock time, to make its timing decisions.
The time in virtual seconds should be obtained by dividing the node count
through the given number, like the number was a rate in nodes per second.
Xboard will manage the clocks in accordance with this, relying on the number
of nodes reported by the engine in its thinking output. If the given number equals zero,
it can obviously not be used to convert nodes to seconds, and the time reported
by the engine is used to decrement the XBoard clock in stead. The engine is supposed to
report in CPU time it uses, rather than wall-clock time, in this mode. This option
can provide fairer conditions for engine-engine matches on heavily loaded machines,
or with very fast games (where the wall clock is too inaccurate).
showThinking must be on for this option to work. Default: -1 (off).
Not many engines might support this yet!
- -firstTimeOdds factor
- -secondTimeOdds factor
- Reduces the time given to the mentioned engine by the given factor.
If pondering is off, the effect is indistinguishable from what would happen
if the engine was running on an n-times slower machine. Default: 1.
- -timeOddsMode mode
- This option determines how the case is handled where both engines have a time-odds handicap.
If mode=1, the engine that gets the most time will always get the nominal time,
as specified by the time-control options, and its opponent's time is renormalized accordingly.
If mode=0, both play with reduced time. Default: 0.
- -hideThinkingFromHuman true/false
- Controls the Hide Thinking option. See Options Menu. Default: true.
(Replaces the Show-Thinking option of older xboard versions.)
- -thinking/-xthinking or -showThinking true/false
- Forces the engine to send thinking output to xboard.
Used to be the only way to control if thinking output was displayed
in older xboard versions,
but as the thinking output in xboard 4.3 is also used for several other
purposes (adjudication, storing in PGN file) the display of it is now controlled
by the new option Hide Thinking. See Options Menu. Default: false.
(But if xboard needs the thinking output for some purpose,
it makes the engine send it despite the setting of this option.)
- -ponder/-xponder or -ponderNextMove true/false
- Sets the Ponder Next Move menu option. See Options Menu. Default: true.
- -smpCores number
- Specifies the maximum number of CPUs an SMP engine is allowed to use.
Only works for engines that support the XBoard/WinBoard-protocol cores feature.
- -mg or -matchGames n
- Automatically runs an n-game match between two chess engines,
with alternating colors.
loadPositionFile option is set,
starts each game with the given opening moves or the given position;
otherwise, the games start with the standard initial chess position.
saveGameFile option is set, a move record for the
match is appended to the specified file. If the
option is set, the final position reached in each game of the match is appended
to the specified file. When the match is over, XBoard
displays the match score and exits. Default: 0 (do not run a match).
- -mm/-xmm or -matchMode true/false
matchMode to true is equivalent to setting
matchGames to 1.
- -sameColorGames n
- Automatically runs an n-game match between two chess engines,
without alternating colors.
Otherwise the same applies as for the ‘-matchGames’ option,
over which it takes precedence if both are specified. (See there.)
Default: 0 (do not run a match).
- -fcp or -firstChessProgram program
- Name of first chess engine.
- -scp or -secondChessProgram program
- Name of second chess engine, if needed.
A second chess engine is started only in Two Machines (match) mode.
- -fe or -firstEngine nickname
- This is an alternative to the
fcp option for specifying the first engine,
for engines that were already configured (using the ‘Load Engine’ dialog)
in XBoard's settings file.
It will not only retrieve the real name of the engine,
but also all options configured with it.
(E.g. if it is UCI, whether it should use book.)
- -se or -secondEngine nickname
fe, but for the second engine.
- -fb/-xfb or -firstPlaysBlack true/false
- In games between two chess engines, firstChessProgram normally plays
white. If this option is true, firstChessProgram plays black. In a
multi-game match, this option affects the colors only for the first
game; they still alternate in subsequent games.
- -fh or -firstHost host
- -sh or -secondHost host
- Hosts on which the chess engines are to run. The default for
each is localhost. If you specify another host, XBoard
uses rsh to run the chess engine there. (You can substitute a
different remote shell program for rsh using the
option described below.)
- -fd or -firstDirectory dir
- -sd or -secondDirectory dir
- Working directories in which the chess engines are to be run.
The default is "", which means to run the chess engine
in the same working directory as XBoard
itself. (See the CHESSDIR environment variable.)
This option is effective only when the chess engine is being run
on the local host; it does not work if the engine is run remotely
using the -fh or -sh option.
- -initString string or -firstInitString
- -secondInitString string
- The string that is sent to initialize each chess engine for a new game.
Setting this option from the command line is tricky, because you must
type in real newline characters, including one at the very end.
In most shells you can do this by
entering a ‘\’ character followed by a newline.
Using the character sequence ‘\n’ in the string should work too, though.
If you change this option, don't remove the ‘new’
command; it is required by all chess engines to
start a new game.
You can remove the ‘random’ command if you like; including it
causes GNU Chess 4 to randomize its move selection slightly so that it
doesn't play the same moves in every game. Even without
‘random’, GNU Chess 4 randomizes its choice of moves from its
opening book. Many other chess engines ignore this command entirely
and always (or never) randomize.
You can also try adding other commands to the initString; see the
documentation of the chess engine you are using for details.
- -firstComputerString string
- -secondComputerString string
- The string that is sent to the chess engine if its opponent is another
computer chess engine. The default is ‘computer\n’. Probably the
only useful alternative is the empty string (‘’), which keeps the
engine from knowing that it is playing another computer.
- -reuse/-xreuse or -reuseFirst true/false
- -reuse2/-xreuse2 or -reuseSecond true/false
- If the option is false,
XBoard kills off the chess engine after every game and starts
it again for the next game.
If the option is true (the default),
XBoard starts the chess engine only once
and uses it repeatedly to play multiple games.
Some old chess engines may not work properly when
reuse is turned on, but otherwise games will start faster if it is left on.
- -firstProtocolVersion version-number
- -secondProtocolVersion version-number
- This option specifies which version of the chess engine communication
protocol to use. By default, version-number is 2. In version 1, the
"protover" command is not sent to the engine; since version 1 is a
subset of version 2, nothing else changes. Other values for
version-number are not supported.
- -firstScoreAbs true/false
- -secondScoreAbs true/false
- If this option is set, the score reported by the engine is taken to be
that in favor of white, even when the engine plays black.
Important when XBoard uses the score for adjudications, or in PGN reporting.
- -niceEngines priority
- This option allows you to lower the priority of the engine processes,
so that the generally insatiable hunger for CPU time of chess engines does not interfere so much
with smooth operation of XBoard (or the rest of your system).
Negative values could increase the engine priority, which is not recommended.
- -firstOptions string
- -secondOptions string
- The given string is a comma-separated list of (option name=option value) pairs,
like the following example: "style=Karpov,blunder rate=0".
If an option announced by the engine at startup through the feature commands of the XBoard/WinBoard protocol
matches one of the option names (i.e. "style" or "blunder rate"),
it would be set to the given value (i.e. "Karpov" or 0)
through a corresponding option command to the engine.
This provided that the type of the value (text or numeric) matches as well.
- -firstNeedsNoncompliantFEN string
- -secondNeedsNoncompliantFEN string
- The castling rights and e.p. fields of the FEN sent to the mentioned engine
with the setboard command will be replaced by the given string. This can for
instance be used to run engines that do not understand Chess960 FENs in
variant fischerandom, to make them at least understand the opening position,
through setting the string to "KQkq -". (Note you also have to give the e.p. field!)
Other possible applications are to provide work-arounds for engines that want to see
castling and e.p. fields in variants that do not have castling or e.p.
(shatranj, courier, xiangqi, shogi) so that XBoard would normally omit them
(string = "- -"), or to add variant-specific fields that are not yet supported by XBoard
(e.g. to indicate the number of checks in 3check).
- Forces shuffling of the opening setup in variants that normally have a fixed initial position.
Shufflings are symmetric for black and white, and exempt King and Rooks in variants
with normal castling.
Remains in force until a new variant is selected.