Skip to content


Repository files navigation


cron ci website

Explore the changelog at

This Repo maintains an auto-updating list of the commits to mathlib for Lean to have these in a searchable, indexable location.

Currently this pulls in git commit messages, and attempts to parse out the changed lemma, def, theorem, inductive, abbreviation, and structure in the commit. This is just based on looking at the file in the commit, and doesn't load a full lean/mathlib environment, so it's not guaranteed to catch every change (but it should be pretty close!).

The full changelog in the following formats:

Project structure

This project consists of 3 components:

  • The exported changelogs, in the base directory
  • A crawler written in Python, which scans the mathlib git repo and builds the changelogs. This lives in the crawler directory
  • A static site for viewing the changelog, written in Typescript and Next.js/React. This lives in the website directory


To build the website, change into the website directory.

  • To install dependencies, run yarn install
  • To build the search index used on the main page of the site, run yarn build:search
  • To run a development environment, run yarn dev
  • To build a production version of the site, run yarn build


To use the crawler, change into the crawler directory. The crawler is a Python project and uses Poetry to manage dependencies and build environment. Flake8 is used for linting, MyPy is used for type-checking, and Black is used for code formatting.

  • To install dependencies, run poetry install
  • To run tests, run poetry run pytest
  • To run linting and type checks, run poetry run flake8 . and poetry run mypy .
  • To run the crawler, run poetry run python -m crawler.crawl


Contributions are welcome! If you have an idea for an improvement or want to report a bug, feel free to open an issue. If you want to work on a fix or improvement directly, open up a pull request in this repo.


This code is released under an MIT license