Record in aggregate · metrics 2.10.0

The state of Hex.

Aggregate statistics across every inspected repository publishing to Hex — how health distributes, where the download volume sits, and which practices are common or rare, measured against the whole record.

Inspected repositories
1,634 of 1,634 indexed
Monthly downloads under inspection
328M registry-reported
Median health index
50 Moderate
Good or better
22% index 65 and above

Health-index distribution

Latest health index of every inspected repository, in five-point intervals over the 1–100 scale.

Where the download volume sits

Combined monthly downloads by band, against repository counts.

29% of the monthly download volume under inspection flows through repositories below the good band — and the top 1% most-downloaded repositories carry 62% of the entire volume.

Repositories
29%27%19%
Download volume
34%30%
BandRepositoriesDownloads / moVolume share
Exceptional12112M34%
Excellent11896.8M30%
Good23522.9M7.0%
Moderate47949.9M15%
Weak44926.9M8.2%
At Risk30419M5.8%
Critical37652K0.2%

Score shapes

The distribution behind each category median, in ten-point bins — where the record clusters, and where a category separates repositories or saturates.

Vitality48
1100
Community & Adoption48
1100
Sustainability & Governance61
1100
Engineering Quality56
1100
Security38
1100
AI Readiness40
1100

Category profile

Median category score across the scope. Ticks mark the whole-record median. Categories are documented in the methodology wiki.

Vitality
48
Community & Adoption
48
Sustainability & Governance
61
Engineering Quality
56
Security
38
AI Readinessunweighted
40

The state of practice

Share of inspected repositories where the practice is publicly evident. Reports that predate a signal are excluded from its basis, never counted as missing.

Engineering & community practice

README
97% of 1,634
Automated tests
96% of 1,634
License detected
91% of 1,634
CI workflows
83% of 1,634
Documentation directory
24% of 1,634
Contributing guide
20% of 1,634
Code of conduct
16% of 1,634
Security policy
4.9% of 1,634
Linter configuration
3.0% of 1,634

Agent-era signals

One-command bootstrap
19% of 1,634
AI agent instructions
13% of 1,634
llms.txt
8.3% of 1,634

Signals read by the unweighted AI Readiness category.

Does popularity mean health?

Median health index (dot) and the middle half of repositories (band) per popularity bracket, on the shared 1–100 scale.

By GitHub stars

Under 100 stars 1,106
47 · 34–57
100 – 999 436
54 · 44–69
1,000 – 9,999 86
74 · 58–84
10,000 and more 6
96 · 89–96

By monthly downloads

Under 10K / month 823
47 · 35–59
10K – 1M 603
53 · 41–67
1M – 100M 49
62 · 48–82
100M and more 0
—

Security under the microscope

Average OpenSSF Scorecard result per check across the scope, weakest first, on Scorecard's 0–10 scale. Check results are mostly all-or-nothing, so the average tracks how much of the record passes. Checks Scorecard reports inconclusive are excluded from scoring, never counted as zero; each row's tooltip carries its basis.

CII-Best-Practices
0.0
SAST
0.4
Signed-Releases
0.4
Branch-Protection
0.6
Pinned-Dependencies
0.8
Fuzzing
1.2
Security-Policy
1.3
Token-Permissions
1.7
Code-Review
2.1
Dependency-Update-Tool
2.4
Maintained
3.3
CI-Tests
3.9
Contributors
6.4
Vulnerabilities
6.9
License
9.0
Binary-Artifacts
10.0
Dangerous-Workflow
10.0
Packaging
10.0

Red flags

Findings that adjust a rating downward rather than scoring into it. Each is reported as a count, as a share of the whole record, and as a rate among the repositories where it could be determined at all.

Abandonment
17411% of the record · 11% of 1,634 assessed
High-risk jurisdiction exposure
140.9% of the record · 0.9% of 1,547 assessed
Malicious dependencies
1<0.1% of the record · 0.5% of 182 assessed
Inorganic growth
1<0.1% of the record · 2.6% of 38 assessed

A red flag needs its own evidence, so its basis is smaller than the record. Growth authenticity is assessed only where day-by-day history was collected; dependency findings only where a dependency graph resolved. Repositories the evidence cannot answer for are left out of the basis rather than counted as passing.

The pulse

How recently each inspected repository last saw a push, at inspection time.

Half of the inspected repositories saw a push within 57 days of inspection.

Push recency
39%18%27%
Last pushRepositoriesShare
Pushed within 30 days64439%
31 – 90 days30218%
91 – 365 days43727%
Over a year25115%

Stewardship & resilience

Who stands behind the inspected repositories, and how many people the code depends on. Both are read by the governance category.

869Organization-stewarded median 56
765Personal accounts median 44

Maintainer bus factor

81% of inspected repositories depend on a single maintainer for the majority of their commits — including 27 with over a million monthly downloads.

1 maintainer
1,322
2 maintainers
215
3–5 maintainers
83
6+ maintainers
4

The dependency iceberg

Declared direct dependencies against the full resolved graph (direct plus transitive), across the 1,222 reports with a collected dependency graph.

The median repository declares 0 direct dependencies — and resolves to 0 packages in total.

Resolved packages per repository

0
1,038
1 – 5
12
6 – 20
24
21 – 50
37
51 – 200
51
201 – 500
25
501 – 1,000
19
Over 1,000
16

License landscape

The most common detected licenses across the scope (SPDX identifiers).

MIT
732
Apache-2.0
471
Custom license
224
No license detected
152
BSD-2-Clause
12
BSD-3-Clause
11
ISC
9
AGPL-3.0
7
GPL-3.0
4
GPL-2.0
3

Most relied upon

The most-downloaded repositories under inspection publishing to Hex — the records the figures above weigh heaviest. The rest is covered by the full catalogue · tag index.

npm · Hex
81Excellenthealth index
supabase/phoenix
Peace of mind from prototype to production
Elixir · JavaScript★ 3↓ 66.9M/moAug 27, 2026
MITAug 27, 2026 · metrics 2.10.0
npm · PyPI · Hex +2
99Exceptionalhealth index
taskforcesh/bullmq
BullMQ - Message Queue and Batch processing for NodeJS, Python, .NET, Elixir, Rust and PHP based on Redis or PostgreSQL
TypeScript · Rust · Elixir★ 9,336↓ 36.1M/moAug 27, 2026
MITAug 27, 2026 · metrics 2.10.0
npm · PyPI · Packagist +4
96Exceptionalhealth index
cucumber/gherkin
A parser and compiler for the Gherkin language.
C★ 400↓ 32.5M/moAug 27, 2026
MITAug 27, 2026 · metrics 2.10.0
npm · Packagist · Hex +4
94Exceptionalhealth index
cucumber/messages
A message protocol for representing results and other information from Cucumber
C# · PHP · Java★ 41↓ 29.3M/moOct 20, 2026
MITOct 20, 2026 · metrics 2.10.0
PyPI · crates.io · Go +1
91Excellenthealth index
ethereum/c-kzg-4844
A minimal implementation of the Polynomial Commitments API for EIP-4844 and EIP-7594, written in C.
C · Rust★ 174↓ 7.4M/moAug 27, 2026
Apache-2.0Aug 27, 2026 · metrics 2.10.0
npm · Hex
96Exceptionalhealth index
phoenixframework/phoenix
Peace of mind from prototype to production
Elixir · JavaScript★ 23.2K↓ 6.6M/moSep 16, 2026
MITSep 16, 2026 · metrics 2.10.0

Reading these figures

  • Every figure is computed from the latest published inspection of each repository, under the versioned methodology (currently metrics 2.10.0). See the methodology · band scale.
  • Statistics describe the inspected record — software admitted for inspection, not a random sample of all open source. Admission follows the public-interest criteria.
  • Download figures come from package registries; registries that publish no monthly number (Maven Central, Go, NuGet, RubyGems) contribute no volume rather than zero. Coverage per ecosystem is documented in supported ecosystems.
  • Where a signal is unavailable in a report — an uncollected dependency graph, an inconclusive Scorecard check, a report predating a signal — the repository is excluded from that figure's basis, never counted against it.
  • Health indices are signals of publicly visible practice, not audits or warranties — how to read them is covered by the health index.
  • Figures computed 2026-10-21 09:48 UTC; the aggregate is recomputed hourly. The underlying data is available as JSON.