### Stockfish.js Stockfish.js is a pure JavaScript implementation of Stockfish, the world's strongest chess engine. Stockfish.js is currently synced with Stockfish 10. ### API You can run Stockfish.js directly from the command line with Node.js. In a web browser, Stockfish.js can be run in a web-worker, which can be created like this: ```js var stockfish = new Worker("stockfish.js"); ``` The output of the engine is again posted as a message. To receive it, you need to add a message handler: ```js stockfish.onmessage = function onmessage(event) { console.log(event.data); }; ``` Input (standard UCI commands) to the engine is posted as a message to the worker: ```js stockfish.postMessage("go depth 15"); ``` Stockfish.js can be found in the npm repository and installed like this: `npm install stockfish`. If you want to use it from the command line, you may want to simply install it globally: `npm install -g stockfish`. Then you can simply run `stockfishjs`. In Node.js, you can either run it directly from the command line (i.e., `node src/stockfish.js`) or require() it as a module (i.e., `var stockfish = require("stockfish");`). ### Note about pondering The code has been refactored to allow for pondering. However, it can take a long time for Stockfish.js to process the "stop" or "ponderhit" commands. So it could be dangerous to use in a timed game. In the future, it may be improved upon. ### Compiling You need to have the emscripten compiler installed and in your path. Then you can compile Stockfish.js with the build script: `./build.js`. See `./build.js --help` for details. ### Example You can try out Stockfish.js online here. There are also examples in the example folder. You can either open the example/index.html directly in a web browser or run a small static server to try it out. If you have Node.js, you can start a simple web server in that directory like this: `node server.js`. There is also a simple example using Node.js (example/simple_node.js). Alternatively, you can also run Stockfish.js from the command line via `./stockfish.js` or `node src/stockfish.js`. ### Thanks - The Stockfish team - exoticorn - ddugovic - niklasf ### License GPLv3 (see license.txt)