node-stockfish
v0.1.2
Published
This is a Node.js wrapper around the [Stockfish](https://stockfishchess.org/) chess engine. It can be used to analyse chess positions and get the best lines of play.
Downloads
39
Readme
Node Stockfish
This is a Node.js wrapper around the Stockfish chess engine. It can be used to analyse chess positions and get the best lines of play.
Installation
A quick npm i node-stockfish
should do the trick.
This will install the necessary node modules, compile the TypeScript code,
clone the latest Stockfish source code and compile it.
Note that the installation will take a while because of the Stockfish compilation.
On my machine, it takes just under a minute to install.
The final size of the node_modules/node-stockfish
directory is just over 100MB on my setup.
Usage
import { StockfishInstance } from 'node-stockfish'
// Create a Stockfish instance.
const engine = StockfishInstance.getInstance()
// Set the starting position by providing a string of UCI moves.
engine.setBoardstateByMoves('e2e4 e7e5 b1c3')
// We can also set the starting position by providing a FEN string.
engine.setBoardstateByMoves('rnbqkbnr/pppp1ppp/8/4p3/4P3/2N5/PPPP1PPP/R1BQKBNR b KQkq - 0 1')
// Start anaylsing the position.
engine.startAnalysing({
// Number of lines to include in the analysis.
lines: 5
})
// Listen for analysis updates.
engine.onAnalysisData(analysisData =>
{
console.log(`Analysis for depth ${ analysisData.depth }:`)
for (const line of analysisData.lines)
{
console.log(`\t${ line.score }: ${ line.moves.join(' ') }`)
}
console.log('')
if (analysisData.depth >= 15)
{
// Stop the analysis and terminate the Stockfish instance.
engine.terminate()
}
})