TypeScript chess libraries following FIDE rules. Strict types, zero dependencies, ESM-only.
npm · echecs.dev · Contributing
| Package | Description | ||
|---|---|---|---|
@echecs/position |
Chess position type and board utilities | docs | |
@echecs/fen |
Parse and stringify FEN chess positions | ||
@echecs/san |
Parse, resolve, and stringify SAN chess moves | ||
@echecs/pgn |
PGN parser with comments, variations, NAGs, and annotations | ||
@echecs/game |
Chess game engine with legal move generation and undo/redo | docs | |
@echecs/zobrist |
Polyglot standard Zobrist hash keys for chess positions |
| Package | Description | ||
|---|---|---|---|
@echecs/uci |
UCI engine wrapper for communicating with Stockfish and others | docs |
| Package | Description | ||
|---|---|---|---|
@echecs/elo |
ELO rating system following FIDE rules | docs |
| Package | Description | ||
|---|---|---|---|
@echecs/swiss |
Swiss tournament pairing and standings following FIDE rules | docs | |
@echecs/round-robin |
Round-robin pairings following FIDE Berger tables | ||
@echecs/tournament |
Stateful tournament orchestrator for any FIDE pairing system | docs |
| Package | Description | |
|---|---|---|
@echecs/buchholz |
Buchholz tiebreak family (Cut, Median, Average, Fore) | |
@echecs/sonneborn-berger |
Sonneborn-Berger tiebreak | |
@echecs/progressive |
Progressive score tiebreak | |
@echecs/koya |
Koya tiebreak for round-robin tournaments | |
@echecs/direct-encounter |
Direct encounter tiebreak | |
@echecs/number-of-wins |
Win-counting tiebreaks (Wins, Black Wins, Standard Points) | |
@echecs/average-rating |
Average Rating of Opponents tiebreak | |
@echecs/performance-rating |
Performance rating tiebreaks (TPR, Perfect TPR) |
| Package | Description | ||
|---|---|---|---|
@echecs/react-board |
React chessboard with drag & drop, animation, and theming | docs | |
@echecs/react-movesheet |
React move notation panel with click navigation and variations |
| Package | Description | ||
|---|---|---|---|
@echecs/trf |
FIDE Tournament Report File (TRF) parser | docs | |
@echecs/tunx |
SwissManager TUNX binary file parser/serializer |