mrkeyoor.com_
Fri 16 Oct 16:51 UTC
Indexopen data2,993 projectslast run 16 Oct 2026

Install Success Index

95.3% of the 2,688 open-source projects we tried to install completed a documented clean install — 2,562 of them. The other 126 failed on a fresh machine that did exactly what the project’s own instructions said.

The headline numbers

Install success rate95.3%
Installs attempted2,688
Median install30s
Median dependencies178

Denominator: the 2,688 published repositories where an install was actually attempted. A further 305 are books, curated lists or Dockerfile-only projects with no manifest to install from, so they sit outside the rate rather than dragging it down. Across all 2,993 projects, 2,228 (74.4%) got all the way to a build and a test run.

Where the runs ended

OutcomeProjectsShareWhat it means
ran2,22874.4%Cloned and installed, then the build and the project’s own test suite were run. Either may still have failed; the repo page says which.
build failed33411.2%The install finished, the build script or compiler did not.
install failed1264.2%The project’s own install command exited non-zero in a clean container, or ran past the 15-minute limit.
not runnable29810%No supported manifest at the root or one level down — books, curated lists, Dockerfile-only projects. Nothing was installed, so these are outside the install rate.
clone failed60.2%We never got the source: too large to clone, or the clone itself failed.
not recorded10%Published before the harness recorded a status.

13 of the failed installs hit the 15-minute limit rather than erroring outright; we report those as unfinished installs, not as broken projects.

By ecosystem

EcosystemAttemptedInstalledRateMedian installMedian deps
Node.js1,1861,10493.1%28s494
Python78677698.7%27s50
Go38437798.2%50s229
Rust26226099.2%26s382
C/C++381436.8%7snot counted
JVM323196.9%54snot counted

Medians, not means: a handful of ten-minute installs would otherwise decide the number for everyone. Install seconds are cold-start seconds — every container begins with an empty npm, uv, cargo and Go cache. Dependency counts are packages on disk after install, which is why C/C++ and JVM projects show none: their toolchains do not give us a figure we would trust. Rows with a small sample are still printed; the counts are there so you can judge them.

How we measured this

Each project is cloned at a named commit into a throwaway Debian Bookworm container: 3 CPUs, 8 GB of RAM, a non-root user, no credentials, no cache carried over from a previous run. We then run the project’s own install command — its package manager, its lockfile if it has one — and nothing else. No apt packages are added for a project that needs them, no README is followed by hand, no second attempt is made after a failure. The commit hash and the run date sit in every row of the dataset.

That is a harsher machine than a developer laptop, and we would rather say so than hide it. A project that assumes make, pkg-config, a GPU or a running database will fail here and work fine for you. The number this index reports is not “how many projects are broken”; it is how many install from their own documented instructions on a machine that has nothing else on it. The full procedure, including the time limits and what each outcome word means, is on how we test.

Runs in this snapshot: 22 Aug 2026 to 16 Oct 2026. Every project is re-run roughly every five weeks, so this page and both downloads change over time; cite the date you pulled them. Numbers here are computed from the database when the page loads, not typed in.

The ten slowest installs that still finished

ProjectEcosystemInstallDepsOutcome
numpy/numpypython14m 59s36ran
cypress-io/cypressnode14m 56s4,239ran
scikit-learn/scikit-learnpython14m 23s42ran
rrweb-io/rrwebnode14m 07s2,450ran
QwenLM/qwen-codenode13m 36s1ran
calcom/cal.diynode12m 49s4,673build failed
pytorch/pytorchpython12m 27s62build failed
dataease/SQLBotpython11m 34s239ran
siderolabs/talosgo11m 13s1,610ran
firecrawl/pdf-inspectorpython10m 24s36ran

The ten heaviest dependency trees

ProjectEcosystemPackages on diskInstallOutcome
stdlib-js/stdlibnode12,1119m 56sran
streetwriters/notesnooknode9,1071m 51sbuild failed
novuhq/novunode5,4732m 57sran
backstage/backstagenode5,4363m 54sran
twentyhq/twentynode5,2707m 25sran
CopilotKit/CopilotKitnode4,77841sran
calcom/cal.comnode4,6733m 51sbuild failed
calcom/cal.diynode4,67312m 49sbuild failed
nrwl/nxnode4,44262sbuild failed
cypress-io/cypressnode4,23914m 56sran

Every one of these arrives from a single install command. Whether that is a problem is a judgement; the count is not.

Take the data

One row per published project: slug, repository, ecosystem, outcome, install seconds, dependency count, the commit we tested and the date we tested it. Free to reuse with attribution (CC BY 4.0) — cite “MrKeyoor Install Success Index” and link to this page.

CSVdata.csv
JSONdata.json
Rows2,993
LicenceCC BY 4.0

Our other index measures what an MCP server costs your context window before it does any work: the MCP Context Tax Index. Think a number here is wrong? Tell us which project and we will re-run it — contact, corrections policy.