chess.js is a TypeScript chess library used for chess move generation/validation, piece placement/movement, and check/checkmate/stalemate detection - basically everything but the AI.
chess.js has been extensively tested in node.js and most modern browsers.
This README provides a quick example, full documentation can be found at https://jhlywa.github.io/chess.js.
Run the following command to install the most recent version of chess.js from NPM:
npm install chess.js
The code below plays a random game of chess:
import { Chess } from 'chess.js'
const chess = new Chess()
while (!chess.isGameOver()) {
const moves = chess.moves()
const move = moves[Math.floor(Math.random() * moves.length)]
chess.move(move)
}
console.log(chess.pgn())
If you have any questions, suggestions, or find any bugs please open an issue. PRs are very welcome too.