A Chess bot for Slack. Uses a fully-functional chess engine, graphical boards (none of that low-budget ASCII stuff), keeps track of your record against your friends and coworkers, and automatically uploads each game to lichess.org for analysis.
- Fully-functional chess engine with en passant, castling, minor promotion, all that good stuff
- Graphical boards courtesy of jinchess.com
- Keeps track of personal and org-wide records against each opponent
- Lets you undo moves for when your friends screw up algebraic notation
- Optional waiting period between moves to force you to get some amount of work done
- Uploads each game to lichess.org for analysis (sample)
Basic setup requires a Slack bot token. A Redis instance is also required, which is set up for you if you're running on Heroku. Once the bot is online, enter a channel with it and say chess help
to see the command list.
Tarrasch is configured through environment variables.
TARRASCH_MESSAGE_PREFIX
: Set the word Tarrasch listens for at the beginning of your messages to know you're talking to it. Default:chess
.TARRASCH_COOLDOWN_SECONDS
: Number of seconds to wait after each move before accepting another move. Default:0
.
There are also various TARRASCH_REDIS_*
variables for configuring the Redis connection, but if you're deployed on Heroku this should Just Work™.
To keep things simple, Tarrasch can manage one game per channel it is in. The recommended way of playing a game is to invite your opponent and Tarrasch to a group DM. You can also play in public channels if you want an audience, but only one game can go on in that channel at a time.
You'll need to take Tarrasch offline for 6 hours a day if you plan to deploy it on Heroku free dynos. See the scaling doc for more information.