testsAndMisc/PYTHON/lichess_bot
2025-09-06 18:26:31 +02:00
..
tests feat: C engine 2025-09-06 18:26:31 +02:00
tools feat: compare move chosen with the blunder move 2025-08-23 21:30:15 +02:00
__init__.py feat: make the analyze chess game script use more pc resources 2025-08-22 22:30:47 +02:00
.bot_version feat: C engine 2025-09-06 18:26:31 +02:00
engine.py feat: C engine 2025-09-06 18:26:31 +02:00
lichess_api.py feat: log failures in connecting to lichess 2025-08-22 21:48:28 +02:00
main.py feat: fix the queen blunder 2025-08-23 15:46:05 +02:00
README.md feat: simple lichess bot 2025-08-22 16:49:30 +02:00
requirements.txt feat: simple lichess bot 2025-08-22 16:49:30 +02:00
run_tests.sh feat: added tests for lichess bot 2025-08-23 15:16:26 +02:00
run.sh fix: not able to start game as white 2025-08-22 17:04:42 +02:00
utils.py feat: added bot versioning 2025-08-22 20:22:06 +02:00

Lichess Bot (minimal)

A small Lichess BOT that accepts standard challenges and plays quick random legal moves using python-chess. It demonstrates the Lichess Board API basics with a simple, readable implementation.

Features

  • Connects to Lichess Board API via streaming NDJSON
  • Accepts only standard chess challenges (bullet/blitz/rapid/classical)
  • Spawns a thread per active game
  • Plays random legal moves (swap in a stronger engine later)
  • Simple logging and basic retries on transient network errors

Requirements

  • Python 3.9+
  • A Lichess account that is activated as a BOT
  • A Lichess API access token with at least the scopes:
    • bot:play
    • challenge:read
    • challenge:write

Install dependencies:

pip install -r PYTHON/lichess_bot/requirements.txt

Activate BOT and get a token

  1. Create or use an existing Lichess account for your bot.
  2. Activate it as a BOT (one-time): https://lichess.org/api#tag/Bot
    • If not already BOT, you need to convert the account; follow Lichess docs.
  3. Create a personal API token: https://lichess.org/account/oauth/token/create
    • Grant scopes: bot:play, challenge:read, challenge:write

Export the token in your shell (recommended):

export LICHESS_TOKEN="your_bot_token_here"

Run

From the repo root:

python -m PYTHON.lichess_bot.main

Optional flags:

  • --log-level INFO|DEBUG|WARNING|ERROR (default: INFO)
  • --decline-correspondence (declines correspondence challenges)

You can also use the helper script:

bash PYTHON/lichess_bot/run.sh

Notes

  • The engine is intentionally weak (random moves). Swap it with a UCI engine or implement a better search in engine.py.
  • Network calls hit real Lichess endpoints. Keep the bot polite; respect rate limits.

Development

  • Small unit tests are in tests/ and only cover local helpers (no network). Run:
python -m pytest PYTHON/lichess_bot/tests -q

If you add tests requiring third-party packages, install them in your environment first.