Skip to content
Chess and chess variant rules and operations in TypeScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
src reuse attacks.attacks for pseudo dests Nov 25, 2019
.gitignore do not ignore accidantely generated files Nov 19, 2019 fix typo and clarify changelog Nov 23, 2019
LICENSE.txt add gpl 3 Aug 17, 2019 prepare 0.1.0 Nov 22, 2019
tsconfig.json only publish compiled files in the future Nov 17, 2019


Test npm

Chess and chess variant rules and operations in TypeScript.


View TypeDoc


  • Read and write FEN
  • Vocabulary (Square, SquareSet, Color, Role, Piece, Board, Castles, Setup, Position)
  • Variant rules: Standard chess, Crazyhouse, King of the Hill, Three-check, Antichess, Atomic, Horde, Racing Kings
    • Move making
    • Legal move and drop move generation
    • Game end and outcome
    • Insufficient material
    • Setup validation
  • Supports Chess960
  • Attacks and rays using hyperbola quintessence
  • Read and write UCI move notation
  • Write SAN
  • Position hashing
  • Transformations: Mirroring and rotating


import { parseFen } from 'chessops/fen';
import { Chess } from 'chessops/chess';

const setup = parseFen('r1bqkbnr/ppp2Qpp/2np4/4p3/2B1P3/8/PPPP1PPP/RNB1K1NR b KQkq - 0 4').unwrap();
const pos = Chess.fromSetup(setup).unwrap();


chessops is licensed under the GNU General Public License 3 or any later version at your choice. See LICENSE.txt for details.

You can’t perform that action at this time.