- min max search
- alpha-beta pruning
- quiescence search to sort captures
- iterative deepening with best moves kept
- aspiration windows to speed up the process
- evaluation function with material and piece position tables.
- simple time management routine
From the 'bot' object, it's straightforward to create a lichess-bot (code omitted). The bot itself is here: https://lichess.org/@/maxoul-bot.