Install
Every channel installs the same mapdiff command.
macOS and Linux.
brew install avgvi/tap/mapdiffA prebuilt binary for macOS or Linux, arm64 or x86_64.
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/avgvi/mapdiff/releases/latest/download/mapdiff-installer.sh | shcargo install mapdiff # builds from sourcecargo binstall mapdiff # downloads the release binarynpm install -g mapdiff-cliThe package is called mapdiff-cli on npm. The command it installs is
still mapdiff.
uv tool install mapdiff # or: pipx install mapdiffCheck it:
mapdiff --versionBuild from source
Section titled “Build from source”You need Rust (1.88 or later) and Node (22 or later).
git clone https://github.com/avgvi/mapdiff && cd mapdiffcd ui && npm ci && npm run build && cd ..cargo install --path crates/mapdiff-cliThe second line builds the page. It has to come before the third, because the page is put inside the mapdiff binary: once installed, the binary needs nothing else and runs from any folder.
Optional: references by type
Section titled “Optional: references by type”Out of the box mapdiff finds what uses what by name. To also find methods called on a value (client.send()), install the indexer for your language. mapdiff uses whichever it finds.
| Language | Indexer | Install |
|---|---|---|
| Rust | rust-analyzer | rustup component add rust-analyzer |
| TypeScript, JavaScript | scip-typescript | npm install -g @sourcegraph/scip-typescript |
| Python | scip-python | npm install -g @sourcegraph/scip-python |
Then start mapdiff with mapdiff --index, or press Index above the map. See languages and references.
Uninstall
Section titled “Uninstall”Remove it the way you installed it: brew uninstall mapdiff, cargo uninstall mapdiff, npm uninstall -g mapdiff-cli or uv tool uninstall mapdiff.
Before that, mapdiff clean removes everything mapdiff has written: its cache folder (~/Library/Caches/mapdiff on macOS, ~/.cache/mapdiff on Linux), and the review marks and fetched pull requests in each repository’s .git.
Next: the quick start.