Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

chessboard.js npm MIT License

NOTE: chessboard.js can be found on npm as @chrisoakman/chessboardjs

chessboard.js is a JavaScript chessboard component. It depends on jQuery v3.4.1 (or higher).

Please see for documentation and examples.

Project Status (Dec 2022)

I am currently focusing my efforts on chessboard2.

What is chessboard.js?

chessboard.js is a standalone JavaScript Chess Board. It is designed to be "just a board" and expose a powerful API so that it can be used in different ways. Here's a non-exhaustive list of things you can do with chessboard.js:

  • Use chessboard.js to show game positions alongside your expert commentary.
  • Use chessboard.js to have a tactics website where users have to guess the best move.
  • Integrate chessboard.js and chess.js with a PGN database and allow people to search and playback games (see Example 5000)
  • Build a chess server and have users play their games out using the chessboard.js board.

chessboard.js is flexible enough to handle any of these situations with relative ease.

What can chessboard.js not do?

The scope of chessboard.js is limited to "just a board." This is intentional and makes chessboard.js flexible for building a variety of chess-related applications.

To be specific, chessboard.js does not understand anything about how the game of chess is played: how a knight moves, whose turn is it, is White in check?, etc.

Fortunately, the chess.js library deals with exactly this sort of problem and plays nicely with chessboard.js's flexible API. Some examples of chessboard.js combined with chess.js: Example 5000, Example 5001, Example 5002

Docs and Examples

Developer Tools

# create a build in the build/ directory
npm run build

# re-build the website
npm run website


MIT License