macOS
brew install elan-initlocal Homebrew formula metadata
sudo port install leanMacPorts ports tree · math/lean/Portfile · source: api.github.com
brew
Lean Theorem Prover installer and version manager. Version 4.2.3 via Homebrew; verified 2026-06-13.
install
brew install elan-initlocal Homebrew formula metadata
sudo port install leanMacPorts ports tree · math/lean/Portfile · source: api.github.com
sudo apt install elanDebian stable package indexes · elan · source: deb.debian.org
nix profile install nixpkgs#elannixpkgs package indexes · pkgs/by-name/el/elan/package.nix · source: api.github.com
scoop install main/elanScoop official bucket manifest trees · bucket/elan.json · source: api.github.com
winget install --id Lean.Elan -eWindows Package Manager source index · Lean.Elan · source: cdn.winget.microsoft.com
overview
Lean Theorem Prover installer and version manager
history
elan is the Lean theorem prover toolchain manager. It installs Lean toolchains and places proxy binaries such as `lean`, `lake`, and `elan` on PATH so a project can select the compiler version declared in its `lean-toolchain` file.
The elan repository was created in April 2018 as Lean's answer to language-specific version managers. Its README explicitly describes the implementation as a fork of rustup, adapted from Rust's toolchain model to Lean's compiler, package manager, and release infrastructure.
The design followed Lean's project-local workflow: a repository can commit a `lean-toolchain` file, and elan will automatically select and download the required Lean version when `lean` or `lake` is invoked.
elan became central to modern Lean usage because Lean projects often depend on precise compiler versions, especially around Lean 4 nightly and stable releases. The Lean reference manual documents elan as the standard way to manage installed toolchains, select defaults, and override versions per project.
Its package adoption is practical rather than flashy: package managers distribute `elan-init`, while the installed proxies expose Lean, Lake, and related tools under their usual command names.
Typical usage starts with the `elan-init` installer, which installs into `~/.elan` by default and can update shell startup files. After installation, `elan show`, `elan default`, and project-local `lean-toolchain` files control which Lean version is active.
For package maintainers, elan matters because a single package can provide a family of executables while deferring the actual Lean compiler download until a project requests a specific toolchain.
elan is a clean example of the rustup pattern spreading to another language ecosystem: a tiny manager package, shim executables, per-project version files, and lazy toolchain installation. That makes it especially interesting in package-manager databases because the package name `elan-init` is only the installer face of a larger language runtime workflow.
security posture
infrastructure mutation or orchestration signal.
orange risk · medium confidence · infrastructure
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
local files
These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.
Config paths the tool may read or write during local use.
lean-toolchainexecutables
| Command | Kind | Exposure | Note |
|---|---|---|---|
elan | cli | global executable | |
elan-init | cli | global executable | |
lake | cli | global executable | |
lean | cli | global executable | |
leanc | cli | global executable | |
leanchecker | cli | global executable | |
leanmake | cli | global executable | |
leanpkg | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/leanprover/elan
install metadata
| Package key | brew:elan-init |
|---|---|
| Version | 4.2.3 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/elan-init |
| Homepage | https://github.com/leanprover/elan |
| Repository | https://github.com/leanprover/elan |
| Upstream docs | https://github.com/leanprover/elan#readme |
| License | Apache-2.0 OR MIT |
| Source archive | https://github.com/leanprover/elan/archive/refs/tags/v4.2.3.tar.gz |
| Last updated | 2026-06-13T01:24:10+02:00 |
| Pulse | updated |
| Dependencies | coreutils, gmp |
| Build dependencies | pkgconf, rust |
| Uses from macOS | bzip2, curl |
| Bottle | available (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | elan-init |
| Aliases |
|
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Conflicts With |
|
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
lean
sudo port install leanelan 3.1.1-6
tool for managing installations of the Lean theorem prover
https://github.com/leanprover/elan
sudo apt install elanelan
nix profile install nixpkgs#elanlean
nix profile install nixpkgs#leanelan 3.1.0-1build2
tool for managing installations of the Lean theorem prover
https://github.com/leanprover/elan
sudo apt install elanmain/elan
scoop install main/elanLean.Elan
winget install --id Lean.Elan -eLean.Lean
winget install --id Lean.Lean -eMPI.ELAN
winget install --id MPI.ELAN -esource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.