About PyChess

PyChess is a gtk chess client, originally developed for GNOME, but running well under all other linux desktops. (Which we know of, at least). PyChess is 100% python code, from the top of the UI to the bottom of the chess engine, and all code is licensed under the GNU Public License.

The goal of PyChess is to provide an advanced chess client for linux following the GNOME Human Interface Guidelines. The client should be usable to those new to chess, who just want to play a short game and get back to their work, as well as those who wants to use the computer to further enhance their play.

Screenshot showing a human vs. computer game in PyChess with a preferences dialog showing a list of detected chess engines

Use Any Chess Engine

With PyChess it is easy to play a game against the computer or use the computer to help you find the best move during a game with the Hint Mode feature.

PyChess comes with its own built-in chess engine and will automatically detect and work with most popular chess engines as long as they're installed on your computer. This includes engines such as GnuChess, Crafty, Sjeng and Fruit, and even Windows engines like Rybka.

In the case PyChess doesn't automatically detect an engine you've installed, you can manually add and configure it engines menu. See the wiki for additional engines.

Screenshot showing the FICS Internet Chess Lounge with an Edit Seek dialog and an Internet Chess Chat window

Play Online on FICS/ICC

When you get sick of playing computer players you can login to FICS or ICC and play against people all over the world. You can also observe other games being played, create up to three custom seek profiles, browse other players on-line and view their profiles, login and resume an unfinished game after being disconnected, play any supported chess variant, and chat with your opponent and anyone else online.

PyChess also has a built-in Timeseal client, so you won't lose clock time during a game due to lag. While PyChess doesn't have full "pre-move" support yet, you can select or start dragging a piece before your opponent has made their move.

Screenshot showing the PyChess - Welcome screen along with a New Game dialog

Clean, Elegant, Easy To Use Interface

The goal of PyChess is to be usable both to those new to chess who just want to play a quick game, as well as those who want to use the computer to further enhance their chess skills. Wherever possible, PyChess follows the GNOME Human Interface Guidelines and tries to present the fewest possible options to the user such that they can configure PyChess to behave the way they want it to, while at the same time not being distracted with unnecessary options.


  • UCI and CECP chess engine support and playable at 8 different difficulty levels, and a built-in python chess engine
  • On-line play on FICS with built-in FICS Timeseal support
  • On-line play on ICC with timestamp support
  • Resizable chess board, "pre-drag" support, move and capture sounds and animations
  • Reads and writes PGN, EPD and FEN chess file formats; using the open dialog you can preview and open any position of any game contained in a PGN file and choose the player to play either side
  • Undo, pause and resume games
  • Chess variants: Atomic, Crazyhouse, Fischer Random/Chess 960, Losers, Suicide, Random and Asymmetric Random, Shuffle, Corner, Upside Down, Pawns Pushed/Passed, Pawn/Knight/Rook/Queen Odds, ASEAN, Makruk, Ouk Chatrang, Sittuyin, King of the hill, 3 check, Horde, Placement
  • Built-in opening book and Hint Mode arrows (the Hint arrow shows the best move according to whatever chess engine the user has chosen as the analysis engine in the Preferences)
  • Complies with the GNOME Human Interface Guidelines