python-chess is a chess library for Python, with move generation, move validation, and support for common formats. If used with ipython or Jupyter, it'll render the board as SVG images so you can see what's going on. Otherwise it'll display an ASCII chess board. Supports multiple variants of chess. Seems fairly smart at detecting situations, like check, repetitions, checkmates, stalemates, and draws by insufficient material.
Designed such that you can interface it with other software, such as chess playing engines, endgame searchers, GUIs, and AI research environments.
ChessMaker is a Python (3.11+) chess implementation that can be extended to support any custom rule or feature. It allows you to build almost any variant you can think of easily and quickly. It was inspired by r/AnarchyChess - and the packaged optional rules are almost all inspired by that subreddit.
ChessMaker isn't tied to any GUI, but comes with a thin, pywebio, multiplayer web interface. The web interface supports choosing from the packaged rules, single player (vs Yourself), and multiplayer (vs a friend or random opponent). It also supports saving and loading games - which can be shared with others and be used as puzzles.
There are multiple sets of packaged rules to start with.
Sunfish is a simple, but strong chess engine, written in Python, mostly for teaching purposes. Without tables and its simple interface, it takes up just 111 lines of code! Yet it plays at ratings above 2000 at Lichess.
Because Sunfish is small and strives to be simple, the code provides a great platform for experimenting. People have used it for testing parallel search algorithms, experimenting with evaluation functions, and developing deep learning chess programs. Fork it today and see what you can do!