LeanExplore
A search engine for Lean 4 declarations
A search engine for Lean 4 declarations. This project provides tools and resources for exploring the Lean 4 ecosystem.
The current indexed projects include:
- Batteries
- CSLib
- FLT (Fermat's Last Theorem)
- FormalConjectures
- Init
- Lean
- Mathlib
- PhysLean
- Std
Installation
The base package connects to the remote API and does not require heavy ML dependencies:
pip install lean-explore
To run the local search backend (which uses on-device embedding and reranking models), install the extra ML dependencies:
pip install lean-explore[local]
Then fetch the data files and start the local MCP server:
lean-explore data fetch
lean-explore mcp serve --backend local
Claude Code and Codex plugin
The repository includes a plugin for both Claude Code and Codex. It connects to the hosted MCP server, so it does not need a Python install, a local search index, account, API key, or browser authorization. The tools are available as soon as the plugin is installed.
The hosted endpoint allows 30 POST requests per client IP in any 60-second window. Protocol initialization and tool-discovery requests count toward the limit, and clients sharing a public IP share the same budget.
Agents should begin with the token-efficient search_summary tool, then use
the per-field retrieval tools for the declarations they need. The older
full-result search MCP tool is deprecated and remains only for compatibility.
All LeanExplore MCP tools are read-only and cannot modify Lean packages or
external systems.
In Claude Code:
/plugin marketplace add justincasher/lean-explore
/plugin install lean-explore@lean-explore
/reload-plugins
In Codex:
codex plugin marketplace add https://github.com/justincasher/lean-explore
codex plugin add lean-explore@lean-explore
Start a new Codex session after installation so the MCP tools are loaded.
Documentation
Full docs live in the docs/ folder, or at https://www.leanexplore.com/docs.
| Page | Description |
|---|---|
| Getting Started | Install and run your first search. |
| CLI Reference | Every lean-explore command and flag. |
| MCP Server | Wire LeanExplore into Claude, Cursor, or any MCP client. |
| API Client | Use ApiClient from Python. |
| Local Search Backend | How hybrid BM25 + FAISS + reranking works. |
| Configuration | Environment variables and data layout. |
| Data Models | SearchResult, SearchResponse, and related types. |
| Extraction Pipeline | Rebuild the dataset from Lean source (contributors). |
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines on code style, testing, and development setup.
Cite
If you use LeanExplore in your research or work, please cite it as follows:
General Citation:
Justin Asher. (2025). LeanExplore: A search engine for Lean 4 declarations. https://arxiv.org/abs/2506.11085
BibTeX Entry:
@software{Asher_LeanExplore_2025,
author = {Asher, Justin},
title = {{LeanExplore: A search engine for Lean 4 declarations}},
year = {2025},
url = {https://arxiv.org/abs/2506.11085}
}
License
This code is distributed under an Apache License (see LICENSE).
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lean_explore-1.3.0.tar.gz.
File metadata
- Download URL: lean_explore-1.3.0.tar.gz
- Upload date:
- Size: 73.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
011d27d544218ba897800ea8b3a23e6e0388d92d9bd23ff62816475fdd5aa139
|
|
| MD5 |
f3b13b8da1debdbae5924bf9074d9e1c
|
|
| BLAKE2b-256 |
d92f196a50a444c3ba7740420ea4eac8bc944e1747b94afb4081643b2ea17067
|
File details
Details for the file lean_explore-1.3.0-py3-none-any.whl.
File metadata
- Download URL: lean_explore-1.3.0-py3-none-any.whl
- Upload date:
- Size: 84.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc999708ac6ce7229f4cea4df9313c8cca708d4b219b2cad95eec631a519ec85
|
|
| MD5 |
526ffd6552e3e0bc6215a2bc457f8ff0
|
|
| BLAKE2b-256 |
5c4365714f832d292c98a53263f5245c990fb485ca9fdb105ec23a2233c30944
|