ChessX Manual

Jens Nissen

ChessX Manual

Making moves

A move is done by gabbing a piece and dragging it to another square.

Depending on your settings in the board preferences, you can either

  • Click on a piece and a target square (if move guesses are deactivated)
  • Click on a piece and accepting the move quess (in case of deactivated next guess on right click)
  • Right Click on a piece and then again until the correct target square is high-lighted, then press the left mouse button to make the move (in case right click is used for next guess).

Going back a move can be done by a right-click (in case the right click is not configured for backtracking a move) or by pressing CTRL-right click if backtracking is assigned to the right mouse key.

Usually, making a move will insert a new variation unless you are at the end of the game or a variation. If you do not want to create a new variation, press CTR while moving, which replaces the current move and all following moves by the new move.

If you want to exchange a move without deleting subsequent moves, you can press CTRL+ALT while moving, this will exchange the move played with the new move and check the remaining game for illegal positions. The game is then truncated at these illegal positions.

If you want ChessX to replay the game, select "Game->Auto Player". You can change the move rate with the slider in the bottom right corner of the status bar.

Entering moves with the keyboard

If the focus is somewhere on the board or the notation, you can enter moves simply by starting to type. A label in the status bar will indicate, what you have typed. Whenever ChessX recognizes a complete move, the move is executed and the buffer is cleared.

You can enter anything that looks like (PGN-) notation, make sure, your move us unambiguos. For example, typing "e4" in the starting position is fine, whereas a subsequent "e2" could either be Be2,Ne2,Ke2,Qe2 - or f1e2...

By pressing [Enter] you can force ChessX to accept an entry or discard it, if ChessX cannot make anything reasonable of your entry.

Annotating moves

Move annotations can be done by activating the context menu in the games text browser or by simply pressing the corresponding key sequence, e.g. '!?','!!','??','!x','?x','=','+-','-+' and so on, where 'x' is used in case the first character is ambiguous, 'x' can be the Return/Enter-Key or literally the small letter 'x'.

You can make special annotations like drawing an arrow or coloring squares by pressing Shift+Right-Mouse-Clicking (either select a single square or make a drawing gesture for drawing an arrow).

Saving games

Saving games is slightly confusing! A game needs to be saved into the database (Press CTRL+S, Menu Game/Save). From there, the whole database needs to be saved to disk by pressing CTRL+Shift+S / Menu File/Save. This is somewhat inconvenient but on the other hand prevents you from mistakenly overwriting games or files.

If you want to commit a database to harddisk immediatelly and automatically when saving a game, you can select Option "Commit Database after Saving Game" from the Database Pane in the Preferences Dialog.

By default, a clipboard database is open, which does not have a backing file on disk. Anything that remains in the Clipboard is lost upon closing ChessX! So you need to open at least one other database for writing and transfer anything from the Clipboard into this database by either dragging the games to that database or using "Copy Games" from the Database menu.

Switching databases

Switching between open databases can be achieved by either the Database menu, pressing CTRL+Shift+Number 0 .. 9 or right-clicking into the database list. The currently selected database is highlighted there!

Analysing games

There are two analysis windows where two different engines can be configured to analyse the current board position.

Engines must be configured before in the Preferences Dialog. A default engine (Stockfish) comes with this installation and will be configured as first engine, if no other entries exist. Stockfish is an open source engine (see Homepage of Stockfish. The source code for Stockfish is also located on the homepage. Note that Stockfish is licensed under GPLv3

You can fine-tune engines with the protocol options dialog (works for UCI only, Winboard is seldom used and due to the clumsy specification hard to implement for GUI developers.

You can change the move rate with the slider in the bottom right corner of the status bar. Draw the slider to the very left for infinite analysis or to the right to make the engine analyse from 1 to 10 secondes per move.

Playing out games

You can play out a game after the final position by activating Auto Respond mode. and activating the engine in Analysis Pane 1. Whenever you make a move the engine will start to analyse the position for the time defined by the slider at the bottom right of the status bar. If the allotted time is over, the engine will make the best move found so far.

Using Books in engines

UCI engines may support books. Just set the OwnBook option to true, set the name of the "Book File" option and restart the engine. The engine will answer immediately with a book move when playing out games (see above), depending on "Best Book Move" option this may or may not be the best move from the book. In infinite analysis, the engine won't use information from opening books.

Automatically annotating games

Start an engine in the Analysis 1 window and select menu "Game->Auto Analysis". ChessX will start to move through the current game, analysing each position for some time. After the alotted time is over, the best move will be inserted as variation into the game text. Then ChessX will continue with the next move.

There are a couple of options which have an influence on the behaviuor:

  • The slider in the status bar will determine, how long the engine will ponder on each position
  • Preferences->Game->Automatically save and continue with next game: This allows analysing a complete database, select this option, start Engine 1, open the first game from the database and select move 1.
  • Preferences->Database->Commit Database after saving Game: Recommended, commits your results to the harddisk after each game, especially if you analyse a complete database, a loss of power will otherwise lose all results so far.

Using Books in ChessX

Polyglot is a book standard supported by ChessX. It is licensed under GNU GPL Version 2.0. See Home of Polyglot for code and details.

ChessX displays books like any other database in the Opening Tree Browser. Drag a polyglot book (which must have the suffix ".bin") to the Database List or open the book via menu. Once it is open, it becomes available as any other open database in the combo box "Source" beneath the opening tree.

One note: Polyglot books can be difficult to interpret: they are made for engines, as they give a hint on moves, the engine should play. Moves which did not succeed at all are usually not part of polyglot books.

So do not learn openings from polyglot books - important moves might be missing!

Creating your own book

You can create your own book by selecting a open PGN database (right click with the mouse) and select "Make polyglot book".

ChessX will query the following parameters and pass them for creating a book:

  • "max-ply" How many plies (half moves) to read for each game. E.g. if set to "20", only the first 10 full moves of each game will be scanned.
  • "min-game" How many times must a move be played to be kept in the book. In other words, moves that were played too rarely will be left out. If you scan full games "2" seems a minimum, but if you selected lines manually "1" will make sense.
  • "uniform" By default, a probability is calculated by PolyGlot for each move depending on how popular it is (how often it was playing in the provided PGN file) and how much it "scored". This option bypasses the default mechanism and affects equal probability to all moves. This allows more variety of play.

Generating content

You can copy/paste positions(FEN and images) and complete games(PGN) from/into the clipboard, export games in LATEX, HTML or PGN again. See the Edit menu and the File/Export Dialog.

Merging games

By dragging a game from the game list into the current notation, the dragged game will be merged into the current game at the first position after the current position, where both games deviate. The game will be merged with all annotations and variations. If nothing is merged, no suitable point for merging was found. This can happen, if

  • no position could be found where both games where equal (after the current position!)
  • the remainder of the game to be merged in was already contained in the current game

You can select multiple games and merge them at once.

Sorting and filtering games

The list of games can be filtered either by the opening tree, the Player or Event widget or from the context menu in the list header. Several searches can be combined or inverted. Further occurrences of the current board position in the current database can be found via the Find / Find Position menu.

Clicking on the header sorts the list. This feature is disabled for larger databases (>4K of games) as it will take far too long to sort the list.

Filter Databases into an opening tree

The opening tree takes the current board position and matches it with each game in the selected database. The moves found in the database are listed with the number of occurrences and the score that was achieved with each move alternative. The database is updated continuously, the progress bar gives a hint how far the database is analysed.

The result of the position search can be filtered into the list of games. This filter can again be used as input for the search in the opening tree. Especially on large databases this can speed up further searches (but will of course miss other move orders into the same position).

Usually, clicking onto one of the moves in opening tree will only update the small overview in the opening tree widget. Pressing Shift while clicking onto a move will add the move to the current game (if the position permits)

Training Mode

Selecting Game/Training starts the training mode. Moves starting from the current move are hidden on the game sheet. You can't modify a game so you can make any move in a position. If the move is the right one (the one that was played or a existing variation) then the move is executed and the game is moved one step forward. The game notation is updated and variations on that move become visible. Ideal for use with a tactics database.

If you have no idea what to move, you can get hints by hovering with the mouse over your pieces. Perhaps, the right move pops up! See the chapter on Making Moves and the associated preferences to enable move guesses.

You can combine training with Auto Respond mode, in this case, ChessX will make the next move automatically whenever you make a correct move.

Playing matches

The match button makes sure, that ChessX does not give away hints on the position. This effectively disables engine output, tablebase output, moving back or forward in a game etc.

Online Chess

ChessX supports online access to games played or stored on the free internet chess server.

If you have a FICS account, you can enter the credentials in the Preferences, otherwise, ChessX will login as guest.

ChessX connects to FICS upon opening the virtual database FICS. A successful connection is indicated in the message pane of the FICS console.

Selecting the tab "Games" will read in the list of games which are currently played on FICS. Double clicking a games will start monitoring this game. Selecting Players will read in all players currently connected to FICS. Double-clicking a player will read in the players history (last 10 games). Double clicking a game from the History pane will read in the game into the current game of the FICS database. You can finally save any observed or examined game and transfer it to a persistent database. Games in the FICS database are not persistent!

For playing games online, using TimeSeal is recommended. See the message pane upon connecting to FICS. It will show, if Telnet or Timeseal is used. Telnet will give you a disadvantage for faster games so this is not recommended.

You can accept incoming match requests from other players pressing "Accept" or you can seek for an opponent in the seek pane.

While waiting for your opponents move, you can already grab a piece and hover over a target square or you can enter a premove by dropping it somewhere, the premove piece and its target square a indicated. An active premove can be cancelled by clicking somewhere on the board or by selecting a new premove.


Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks