A chat bot that allows users to play chess via a messaging platform.
- Python 3.13+
- uv
- pyTelegramBotAPI - A simple, but extensible Python implementation for the Telegram Bot API
- python-chess: a chess library for Python
- pgn2gif
- Create a bot and obtain its API token by talking to the Bot Father on Telegram.
- Clone the repository and navigate to the directory:
git clone https://github.com/menisadi/ChessBot.git cd ChessBot - Install dependencies:
uv sync - Create a
.envfile containing your API token:BOT_TOKEN=<your token> - Run the bot:
uv run bot.py
- Start a conversation with the bot and use the following commands to play chess:
/start- start a new game (then pick an engine - Sunfish, Andoma or Random - and your color)<move>- make a move on the chess board (in standard algebraic notation e.g.e4,Nxe4,a8=Q)/help- show all the available commands/moves- show a list of legal moves/resign- resign from the current game/sunfish- switch to the Sunfish engine/andoma- switch to the Andoma engine/random- bot will make random moves/show- show the board/pgn- print the entire game in PGN format/fen- print a FEN representation of the board/gif- get a GIF of your game
- The bot supports one game at a time per user
- The bot targets Python 3.13 (see
.python-version).
This project is licensed under GNU GPL v3 License - see the LICENSE file for details.

