SkillAgentSearch skills...

Polyglot

ALPHA - Polyglot chess opening book program

Install / Use

/learn @ddugovic/Polyglot
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

POLYGLOT(6) POLYGLOT(6)

NAME PolyGlot - Winboard protocol to UCI protocol adapter - book engine for Polyglot books - a collection of utilities for creating and analyzing opening books - a utility for analyzing epd files - a perft counter

SYNOPSIS polyglot [configfile] [-noini] [-ec engine] [-ed enginedirectory] [-en enginename] [-log true/false] [-lf logfile] [-pg <name>=<value>]* [-uci <name>=<value>]*

   polyglot make-book [-pgn inputfile] [-bin outputfile] [-max-ply ply]
   [-min-game games] [-min-score score] [-only-white] [-only-black]
   [-uniform]

   polyglot merge-book -in1 inputfile1 -in2 inputfile2 [-out outputfile]

   polyglot info-book [-bin inputfile] [-exact]

   polyglot dump-book [-bin inputfile] -color color [-out outputfile]

   polyglot [configfile] epd-test [engineoptions] [-epd inputfile]
   [-min-depth depth] [-max-depth depth] [-max-time time] [-depth-delta
   delta]

   polyglot perft [-fen fen] [-max-depth depth]

DESCRIPTION PolyGlot as adapter and book engine PolyGlot is a "UCI adapter". It connects a GUI interface (such as XBoard, Winboard, Arena or Chessbase) to a UCI chess engine.

   By specifying an opening book (in PolyGlot book format) chess engines
   can transparently use such books.

   PolyGlot understands the two main GUI protocols: UCI and xboard.
   Normally the protocol will be auto detected but this can be overridden
   in the configuration file.

   In xboard mode PolyGlot fully translates between the xboard and UCI
   protocols.  In addition it tries to solve known problems with other
   adapters.  For instance, it detects and reports draws by fifty-move
   rule, repetition, etc ... It also supports Chess960.

   When in UCI mode PolyGlot mostly passes commands from the GUI to the
   engine and vice versa, except that it will play book moves on behalf of
   the engine when the occasion arises.

   The engine options are exported as UCI options in UCI mode and as
   "feature option=" commands in xboard mode. The latter form an extension
   of the xboard protocol as defined by H.G. Muller.

   Options which normally appear in the [PolyGlot] section of the config
   file (see below) are exported as options with their name prefixed by
   "Polyglot". This makes it easy to filter them in the GUI.

   NOTE: Not all options are exported, only those that make sense in the
   given mode.

Book making utilities PolyGlot supports the "PolyGlot opening book format". This is the defacto standard non-proprietary opening book format. It is fully documented here

   http://hardy.uhasselt.be/Toga/book_format.html

   Roughly speaking a PolyGlot opening book is a collection of triples
   (position, move, weight). A "position" is represented by a 64-bit
   Zobrist hash key. The weight is proportional to the probability the
   move should be played.

   Other opening book formats such as ChessBase's .ctg format and Arena's
   .abk format are undocumented and proprietary. They can only be used by
   their own GUIs.

   PolyGlot can compile a pgn file into a binary PolyGlot book and
   furthermore it can merge two such binary books into a third one.

   PolyGlot can also extract some useful information from PolyGlot books.
   The utility "dump-book" dumps the "lines" in a book for a given color.
   By definition a line is a sequence of moves (from the starting
   position) in which the given color makes only book moves and the other
   color makes arbitrary moves (i.e. not necessarily book moves).

   Since a PolyGlot book is built up from positions and not lines there
   may be (and there usually are) many positions in the book that are not
   on a "line" as defined in the previous paragraph. It is convenient to
   call such positions "isolated" positions. The utility "info-book"
   counts such isolated positions.

   Some of the isolated positions are provably unreachable and they could
   in principle be deleted from the book. For example if a book contains
   only the move "e4" in the starting position but also the position after
   "d4 d5" then this last position is provably unreachable since it
   requires white to make a non-book move when a book move is available.
   Such situations arise frequently from the priority rules in merging
   books.

   Unfortunately not all isolated positions are provably unreachable and
   it is difficult to identify the latter. If invoked with "-exact" the
   utility info-book will attempt to count the isolated positions which
   require a player to make a non-book move when a book move is available.
   Due to the possibility of transpositions this is not a fool proof
   method.

Epd test mode In epd test mode, PolyGlot will search positions in an epd file and record the number of times the right best move was found. The arguments specify when to stop the search in any given position.

Perft counts A perft count is the number of legal move sequence in a given position up to a given depth. PolyGlot can perform such perft counts. It is however much slower than other more dedicated programs.

OPTIONS When PolyGlot is invoked as an adapter of in epd-test mode it gets its options from a config file and then from the command line. The default config file is "polyglot.ini" but an alternative one may be optionally included as first argument. The config file format is described below.

   The following engine options may be specified on the command line.

   -noini
       Do not use a config file, even if one was specified on the command
       line.

   -pg The argument is a string of the form <name>=<value>. This option
       will set the Polyglot option <name> to <value>.

   -uci
       The argument is a string of the form <name>=<value>. This option
       will set the engine option <name> to <value>.

   -ec This is an alias for -pg "EngineCommand=<value>"

   -ed This is an alias for -pg "EngineDir=<value>"

   -en This is an alias for -pg "EngineName=<value>"

   -log (default: false)
       This is an alias for -pg "Log=<value>"

   -lf (default: "polyglot.log")
       This is an alias for -pg "LogFile=<value>".

   -wb (default: "true")
       This is an alias for -pg "OnlyWbOptions=<value>".

   When invoked as

polyglot make-book PolyGlot supports the following options

   -pgn (default: "book.pgn")
       Input file in pgn format.

   -bin (default: "book.bin")
       Output file in PolyGlot format.

   -max-ply (default: 1024)
       Specifies the maximum ply-depth of lines included in the book.

   -min-game (default: 3)
       Specifies the minimum number of games that have to contain this
       move for it to be included in the book.

   -min-score (default: 0.0)
       Specifies the minimum score (or weight) this move should have
       received for it to  be included in the book. The score is
       2*(wins)+(draws), globally scaled to fit into 16 bits.

   -only-white
       Include only moves for white in the book.

   -only-black
       Include only moves for black in the book.

   -uniform
       Set all weights to 1. In other words, all moves will be selected
       with equal probability.

   When invoked as

polyglot merge-book PolyGlot supports the following options

   -in1
       First input file (in PolyGlot book format).

   -in2
       Second input file (in PolyGlot book format).

   -out (default: out.bin)
       Output file (in PolyGlot book format).

   Input files are not symmetrical, "in1" has priority over "in2". In
   other words when a position occurs both in "in1" and "in2" only the
   moves and weights from "in1" will be retained in "out".

   When invoked as

polyglot dump-book PolyGlot supports the following options

   -bin (default: book.bin)
       Input file in PolyGlot book format.

   -color
       The color for whom to generate the lines.

   -out (default: book_<color>.txt)
       The name of the output file.

   When invoked as

polyglot info-book PolyGlot supports the following options

   -bin (default: book.bin)
       Input file in PolyGlot book format.

   -exact
       Attempt to count the provably unreachable positions among the
       isolated ones.  Note that this takes a very long time.

   When invoked as

polyglot epd-test (possibly with a config file as first argument) PolyGlot supports besides the generic options described above the following additional options.

   -max-depth (default: 63)
       Unconditionally stop the search when this depth has been reached.

   -max-time (default: 5.0)
       Unconditionally stop the seach after this amount of time.

   -depth-delta (default: 3)
       Stop the search if the solution as been found and the best move has
       been constant for this many depths, on condition that the mininal
       depth and minimal time have been reached.

   -min-depth (default: 8)
       Minimal search depth when the search is stopped using
       "-depth-delta".

   -min-time (default: 1.0)
       Minimal search time when the search is stopped using
       "-depth-delta".

   When invoked as

polyglot perft PolyGlot supports the following options

   -fen 
View on GitHub
GitHub Stars33
CategoryDevelopment
Updated1mo ago
Forks9

Languages

C

Security Score

90/100

Audited on Feb 24, 2026

No findings