TJchess is an engine that plays normal chess, Fischer random, crazyhouse, loop chess, and bughouse. Playing strength for normal chess is around rating 2300-2400 on CCRL.


  • plays standard chess
  • opening book
  • hash table
  • pondering
  • plays Chess960 / Fischer Random
  • can offer draw by agreement and accept draw offers (WB only)
  • plays crazyhouse variant (WB only)
  • plays loop chess (similar to crazyhouse) variant (WB only)
  • plays bughouse variant (WB only, currently only in private versions, playing at ICC and FICS)
  • resigns automatically (WB only)
  • analysis mode (WB only)

TJchess Version History: (some minor changes are not listed)

6/20/2006:  Version 0.49:

  • Initial public version

12/31/2006:  Version 0.78:

  • fixed pondering bugs that caused losses on time
  • added piece square tables
  • opening book support for crazyhouse
  • improved hash table usage
  • move sorting improvements, killer moves
  • IID (internal iterative deepening)

11/11/2007:  Version 0.96:

  • extension on single reply
  • nullmove now works correctly
  • SEE (static exchange evaluation)
  • hash table size is configurable

07/21/2008:  Version 0.121:

  • added pawn hash table
  • evaluation now accounts for bishop pair
  • added some limited endgame knowledge
  • time management changes
  • move sorting improvements
  • report score for self in thinking output, instead of score for white
  • added UCI version

04/08/2011:  Version 1.0:

  • WinBoard protocol changes:
  • - support WinBoard “memory” command
  • - added some options to WinBoard engine menu
  • - improved draw claim handling
  • - support “level” command during game
  • UCI version can now ponder under polyglot
  • time management improved
  • mobility term added to evaluation
  • crazyhouse evaluation improved
  • improved crazyhouse opening book is available
  • added chess960 / FRC support (crazyhouse960 is also possible)
  • implemented late move reductions
  • .ini file handling changed.  new engine is no longer compatible with old TJchess.ini files.

04/25/2011: Version 1.01:

  • fixed a couple chess960 / FRC bugs (mostly affecting UCI chess960 mode)

02/12/2012: Version 1.1:

  • fixed hash table usage bug
  • added aspiration windows
  • time management should be improved for conventional time control
  • added support for loop chess variant (similar to crazyhouse)
  • crazyhouse/loop chess only: further improved late move reductions
  • code is now cross platform and can be compiled for Windows/Linux/Android
  • started using profile guided optimization (pgo)
  • added 64-bit versions (only a small speed gain over 32-bit)
  • WinBoard protocol change: support “st” command
  • UCI protocol changes:
  • - support “movetime” command
  • - support “depth” command
  • - improved compliance to UCI spec (e.g. whitespace handling, case insensitivity)
09/08/2016: Version 1.3:
  • misc. improvements, mostly for crazyhouse variant