CUTECHESS-ENGINES.JSON(5)

NAME
cutechess-engines.json - Cute Chess engine configuration file

DESCRIPTION
cutechess-engines.json is the chess engine configuration file for cutechess-cli(6). An engine configuration defines a name, a command, a working directory and many other options. Engine configurations can be used in cutechess-cli(6) with the conf command-line option.

Engine configurations are defined in JavaScript Object Notation (JSON) format. See JSON FORMAT.

JSON FORMAT
JavaScript Object Notation (JSON) is a text-based format for structured data. JSON is a subset of ECMAScript (JavaScript).

  Values
A JSON value must be one of: object, array, number, string, false, true or null.

  Objects
An object is structure of name-value pairs enclosed in curly brackets. A name is a string. Name and value are separated by a single colon. Pairs are separated by commas.

Example objects would be:

    { "Finland" : ".fi", "Sweden" : ".se" }
    {
      "firstName" : "JC",
      "lastName"  : "Denton",
      "age"       : 28,
      "languages" : [ "English", "French", "Spanish" ]
    }

  Arrays
An array is a structure of zero or more values enclosed in square brackets. Values are separated by commas.

Example arrays would be:

    [ "Cute", "Chess" ]
    [
      [ 1, 0, 0 ],
      [ 0, 1, 0 ],
      [ 0, 0, 1 ]
    ]

  Numbers
A number consists of an integer part and optional fractional and/or exponent part. The integer part can be prefixed with a minus sign. Fractional part is a decimal point followed by one or more digits. Exponent part begins with a letter E in upper or lowercase which may be followed by a plus or minus sign. The E and optional sign are followed by one or more digits.

Octal and hex forms are not allowed.

Example numbers would be:

    128
    -1.04
    2e32
    -18E-20

  Strings
A string is sequence of characters enclosed in quotation marks. All Unicode characters may be placed within the quotation marks except for the characters that must be escaped: quotation mark, backslash, and control characters.

Available two-character escape sequences are as follows:

\\  Backslash character.
\/  Forward slash character.
\"  Quotation mark.
\b  Bell character.
\f  Form feed character.
\n  Line feed character.
\t  Vertical tab character.
\unum
    Unicode character where num is a four hexadecimal digits that encode the character's code point.

Example strings would be:

    "Hello, world!"
    "Please place all items \"carefully\" in bins."
    "\u03a6 is one of the letters of Greek alphabet."

ENGINE CONFIGURATION
The configuration file consist of an array of objects. Each object defines a single engine configuration. Required options for each engine configuration are:

name: string
    The name of the engine.

command: string
    The engine command.

protocol: "uci" | "xboard"
    The chess engine protocol used by this engine.

Other available options for an engine configuration are:

workingDirectory: string
    The working directory of the engine.

stderrFile: string
    File where the engine's standard error output is redirected.

initStrings: array of string
    Array of strings sent to the engine's standard input at startup.

whitepov: true | false
    When true invert the engine's scores when it plays black. The default is false.

    This option should be used with engines that always report scores from white's perspective.

ponder: true | false
    When true enable pondering if the engine supports it. The default is false.

EXAMPLES
A minimal engine configuration file for the Sloppy chess engine:

    [
      {
        "name": "Sloppy",
        "command": "sloppy",
        "protocol": "xboard"
      }
    ]

Using the above engine configuration file with the conf command-line option:

    $ cutechess-cli -engine conf=Sloppy -engine conf=Sloppy -each tc=40/60 -rounds 10

SEE ALSO
cutechess-cli(6) RFC 4627, The application/json Media Type for JavaScript Object Notation (JSON), July 2006.