AVA is a simple chess engine for lichess.org. You can play against it on lichess.
The bot uses a minimax algorithm with Alpha-Beta Pruning. It recursively searches the game tree to find the best move, cutting off branches that can't improve on the best move already found. Move ordering (captures → checks → quiet moves) is applied before each search to maximise pruning efficiency.
Position evaluation combines material value with piece-square tables, and switches to separate endgame values once both sides have fewer than 3915 points of material remaining. Search depth is scaled dynamically based on remaining clock time (depth 1–4).
Requirements: Python 3.10+, uv
- Clone this repo and install dependencies:
git clone https://github.com/SerhiiStets/AVA-chess-engine.git
cd AVA-chess-engine
uv sync
- Clone lichess-bot into the project folder:
git clone https://github.com/ShailChoksi/lichess-bot.git lichess-bot
- Copy
config.yml.defaulttoconfig.ymlin thelichess-bot/directory (or use the one already provided):
cp lichess-bot/config.yml.default lichess-bot/config.yml
- Set your Lichess OAuth token in
lichess-bot/config.yml:
token: "your_token_here"Generate a token at lichess.org/account/oauth/token with the Bot play permission. The account must be upgraded to a bot account.
uv run python lichess-bot/lichess-bot.py --config lichess-bot/config.yml -v
The -v flag enables verbose output including engine evaluations. Once running, the bot automatically accepts challenges sent to your bot account.
All bugs, feature requests, pull requests, feedback, etc., are welcome. Create an issue