Dummyette is a Lichess bot. It is not that great at chess, but it is reasonably decent. Dummyette as a project is also a chess library and Lichess API library that can be used independently of the bot.
You might be able to play Dummyette on Lichess if you catch it online. Note that it will only accept challenges that meet these criteria:
- The game is not a variant. (Chess 960 and different starting positions are accepted, though!)
- The time control is not bullet.
- If the time control is correspondence (including unlimited), the game isn’t rated.
As a program, Dummyette is written in JavaScript for Deno with experimental support for Bun and Node. It has no external library dependencies!
As a project, Dummyette is separated into a couple modules, each specialized in a specific kind of functionality that come together to form the bot.
main.js
[reference | tutorial]
The command line interface entrypoint of the bot.dummyette.js
[reference | tutorial]
The AI algorithm used to rate the quality of moves in a position.chess.js
[reference | tutorial]
Utilities for interacting with chess boards and finding valid moves.lichess.js
[reference | tutorial]
Interface for interacting with Lichess through its bot API.openings.js
[reference | tutorial]
Parsing Polyglot.bin
opening books.notation.js
[reference | tutorial]
Convertingchess.js
datatypes to/from string formats.streams.js
[reference | tutorial (slightly incomplete)]
High level API for handling streams of data, e.g. the network.streams-browser.js
[reference | tutorial]
Interoperation between streams from thestreams.js
module and WHATWG streams.
perft
tests can be run using deno test
. Some tests will be skipped to avoid taking too long.
The default is to skip tests that would compare against over one million nodes, but that can be changed by specifying a numeric argument to the tests, e.g. deno test -- 5000000
.
There are other projects directly related to Dummyette that don’t fit into this repository. Either because they are out of scope or because not as much effort was put into them. Still, they may be interesting, so they are listed below!
- Dummyette on Discord
A Discord bot that uses Dummyette’s library to allow you to play chess on Discord. - Dummyette in your browser
Play Dummyette in your browser, no Deno required! (Only a simple HTTP file server.) - UCI front end
Simple (and currently partially incomplete) UCI front end for Dummyette, so that you can play Dummyette in your favorite chess GUI. - PGN viewer
A PGN viewer widget using Dummyette’s library.
Any kind of contribution is welcome! Among other things, programming, reporting issues, sharing ideas, or even just showing interest are things that are very appreciated.