Checkmate is a minimalist uci chess engine written in C.
The codebase is compact, making it suitable for learning, research, and lightweight
play.
- UCI support -- compatible with GUIs such as Arena, CuteChess or enCroissant
- Move generation -- legal moves including castling, en passant, and promotions
- Search -- Negamax with pruning and quiescence search
- Transposition tables -- Zobrist hashing with exact, lower, and upper bounds
- Evaluation -- material balance with basic heuristics and piece-square tables
- FEN parser -- load and analyze arbitrary positions
- Zero Bloat -- the engine is completely written from scratch, only requiring core system libraries like stdlib
- Strong tactically: sharp in open positions
- Limited positional depth: struggles with long-term pawn structures and strategic maneuvering
- Practical strength: effective in fast time controls and tactics-heavy games
- Runs on most modern hardware (depth needs to be adjusted accordingly, iterative deepening ís not yet implemented)
- In theory, about 5MB of Ram is needed, i reccommend about 1-2GB if you plan to use zobrist transposition tables
git clone https://github.com/kuglatec/checkmate
cd checkmate
sudo chmod +x run.sh
./run.shhttps://lichess.org/@/checkmate-engine only long time controls, no increment
- Improved positional evaluation (king safety, pawn structure, mobility, maybe NNUE)
- Endgame refinements / tablebase support
GPLv3