An instrument pointed at 417 open-source repositories.
Read every 4 hours. Compared against its own history, never against anything else. Every figure links to its source.
Attention vs use
Stars and installs answer different questions, and this is where they disagree. No single source can produce this reading.
| Repository | Stars | Installs, weekly | Per star |
|---|---|---|---|
| nodejs/undici | 7,687 | 172,855,692 | 22,487 |
| encode/httpx | 15,462 | 125,830,672 | 8,138 |
| evanw/esbuild | 40,030 | 275,165,454 | 6,874 |
| sqlalchemy/sqlalchemy | 12,128 | 77,087,326 | 6,356 |
| vitest-dev/vitest | 17,035 | 99,878,658 | 5,863 |
| numpy/numpy | 32,642 | 190,327,363 | 5,831 |
| eslint/eslint | 27,495 | 159,441,094 | 5,799 |
| pnpm/pnpm | 36,359 | 177,649,226 | 4,886 |
| Repository | Stars | Installs, weekly | Per star |
|---|---|---|---|
| BurntSushi/ripgrep | 67,843 | 37,660 | 0.6 |
| directus/directus | 37,671 | 22,027 | 0.6 |
| pulumi/pulumi | 25,638 | 20,188 | 0.8 |
| flairNLP/flair | 14,383 | 12,899 | 0.9 |
| denoland/deno | 108,361 | 150,628 | 1.4 |
| unslothai/unsloth | 75,446 | 360,241 | 4.8 |
| NVIDIA/TensorRT | 13,313 | 67,114 | 5.0 |
| vllm-project/vllm | 90,730 | 569,122 | 6.3 |
Stars measure attention, installs measure use, and they are different questions. Median across the 126 repositories where both figures are available: 269.13 installs per star. A project distributed mainly as a binary will sit low here and that is a fact about the channel, not about the project — repositories under 10,000 weekly installs are excluded for exactly that reason. How
Installs
Stars can be bought. Installs cannot.
| # | Repository | Package | Downloads | Against the largest | Window |
|---|---|---|---|---|---|
| 1 | evanw/esbuild | npm esbuild | 275,165,454 | per week | |
| 2 | microsoft/TypeScript | npm typescript | 273,429,217 | per week | |
| 3 | tokio-rs/tokio | crates.io tokio | 212,304,019 | per 90 days | |
| 4 | numpy/numpy | PyPI numpy | 190,327,363 | per week | |
| 5 | babel/babel | npm @babel/core | 181,283,982 | per week | |
| 6 | pnpm/pnpm | npm pnpm | 177,649,226 | per week | |
| 7 | vitejs/vite | npm vite | 176,345,363 | per week | |
| 8 | nodejs/undici | npm undici | 172,855,692 | per week | |
| 9 | eslint/eslint | npm eslint | 159,441,094 | per week | |
| 10 | expressjs/express | npm express | 132,879,571 | per week | |
| 11 | prettier/prettier | npm prettier | 132,375,801 | per week | |
| 12 | pandas-dev/pandas | PyPI pandas | 128,489,750 | per week | |
| 13 | encode/httpx | PyPI httpx | 125,830,672 | per week | |
| 14 | tailwindlabs/tailwindcss | npm tailwindcss | 125,634,238 | per week | |
| 15 | rollup/rollup | npm rollup | 124,564,577 | per week | |
| 16 | tokio-rs/axum | crates.io axum | 110,381,444 | per 90 days | |
| 17 | fastapi/fastapi | PyPI fastapi | 109,326,260 | per week | |
| 18 | vitest-dev/vitest | npm vitest | 99,878,658 | per week | |
| 19 | microsoft/playwright | npm playwright | 87,469,377 | per week | |
| 20 | sqlalchemy/sqlalchemy | PyPI sqlalchemy | 77,087,326 | per week | |
| 21 | scipy/scipy | PyPI scipy | 62,664,533 | per week | |
| 22 | honojs/hono | npm hono | 59,611,206 | per week | |
| 23 | astral-sh/ruff | PyPI ruff | 59,586,435 | per week | |
| 24 | webpack/webpack | npm webpack | 56,430,458 | per week |
Bars against 275,165,454. Windows never added together, and never ranked against each other. How
| # | Repository | Package | Downloads | Against the largest | Window |
|---|---|---|---|---|---|
| 1 | JamesNK/Newtonsoft.Json | NuGet Newtonsoft.Json | 9,065,319,093 | all time | |
| 2 | serilog/serilog | NuGet Serilog | 3,178,279,954 | all time | |
| 3 | dotnet/efcore | NuGet Microsoft.EntityFrameworkCore | 2,452,674,929 | all time | |
| 4 | App-vNext/Polly | NuGet Polly | 1,612,151,456 | all time | |
| 5 | rspec/rspec | RubyGems rspec-core | 1,191,420,265 | all time | |
| 6 | LuckyPennySoftware/AutoMapper | NuGet AutoMapper | 1,135,883,660 | all time | |
| 7 | guzzle/guzzle | Packagist guzzlehttp/guzzle | 1,087,499,671 | all time | |
| 8 | Seldaek/monolog | Packagist monolog/monolog | 1,052,604,851 | all time | |
| 9 | xunit/xunit | NuGet xunit | 1,022,866,827 | all time | |
| 10 | sebastianbergmann/phpunit | Packagist phpunit/phpunit | 988,965,448 | all time | |
| 11 | rails/rails | RubyGems rails | 782,201,874 | all time | |
| 12 | rubocop/rubocop | RubyGems rubocop | 738,207,300 | all time | |
| 13 | puma/puma | RubyGems puma | 598,653,543 | all time | |
| 14 | laravel/framework | Packagist laravel/framework | 570,581,382 | all time | |
| 15 | sinatra/sinatra | RubyGems sinatra | 354,654,052 | all time | |
| 16 | sidekiq/sidekiq | RubyGems sidekiq | 333,295,297 | all time | |
| 17 | doctrine/orm | Packagist doctrine/orm | 311,462,175 | all time | |
| 18 | heartcombo/devise | RubyGems devise | 293,447,032 | all time | |
| 19 | fastlane/fastlane | RubyGems fastlane | 210,187,071 | all time | |
| 20 | composer/composer | Packagist composer/composer | 203,430,873 | all time | |
| 21 | CocoaPods/CocoaPods | RubyGems cocoapods | 138,887,390 | all time | |
| 22 | spatie/laravel-permission | Packagist spatie/laravel-permission | 113,407,654 | all time | |
| 23 | varvet/pundit | RubyGems pundit | 108,894,268 | all time | |
| 24 | livewire/livewire | Packagist livewire/livewire | 100,849,903 | all time |
Bars against 9,065,319,093. Windows never added together, and never ranked against each other. How
Health
OpenSSF and OSV. Not judged here.
| Repository | Scorecard | Advisories | Scored |
|---|---|---|---|
| iden3/circom | 2.5 | — | 2026-08-17 |
| parcel-bundler/parcel | 2.6 | 0 | 2026-08-17 |
| CocoaPods/CocoaPods | 3.0 | 0 | 2026-08-17 |
| meta-llama/llama | 3.0 | — | 2026-08-17 |
| ArweaveTeam/arweave | 3.1 | — | 2026-08-17 |
| emacs-mirror/emacs | 3.2 | — | 2026-08-17 |
| hotwired/turbo-rails | 3.2 | 0 | 2026-08-17 |
| jesseduffield/lazydocker | 3.2 | — | 2026-08-17 |
| iden3/snarkjs | 3.4 | 1 | 2026-08-17 |
| yarnpkg/berry | 3.4 | — | 2026-08-17 |
| makerdao/dss | 3.5 | — | 2026-08-17 |
| beego/beego | 3.6 | — | 2026-08-17 |
Scorecards OpenSSF, advisories OSV — neither judged here. 101 never scanned, and absent rather than zero. How
Ask
Answered only from the readings here.
Watchlist
Curated and partial. A category is why a repository was added, not a fact about it.
| Category | Watched | Measured | Forks added | Findings | Busiest |
|---|---|---|---|---|---|
| ai-ml | 74 | 74 | 482 | 408 | ggml-org/llama.cpp |
| crypto-web3 | 75 | 75 | 17 | 152 | bitcoin/bitcoin |
| database | 81 | 81 | 100 | 161 | apache/airflow |
| devtool | 104 | 104 | 110 | 372 | zed-industries/zed |
| web-framework | 83 | 83 | 34 | 231 | vercel/next.js |
| All | 417 | — | 1324 | — | |
Forks added covers measured repositories only. No figure means not yet measured, never zero.
| Repository | Category | Language | Forks | Stars | Added | Reading |
|---|---|---|---|---|---|---|
| ggml-org/llama.cpp | ai-ml | C++ | 22,637 | 126,706 | 83 | nominal |
| vllm-project/vllm | ai-ml | Python | 21,571 | 90,730 | 78 | nominal |
| sgl-project/sglang | ai-ml | Python | 8,460 | 33,076 | 53 | nominal |
| BerriAI/litellm | ai-ml | Python | 11,090 | 57,779 | 44 | nominal |
| zed-industries/zed | devtool | Rust | 10,389 | 89,604 | 34 | nominal |
| ollama/ollama | ai-ml | Go | 17,653 | 179,928 | 29 | nominal |
| microsoft/vscode | devtool | TypeScript | 41,935 | 190,390 | 20 | nominal |
| langchain-ai/langchain | ai-ml | Python | 24,275 | 145,465 | 20 | nominal |
| Comfy-Org/ComfyUI | ai-ml | Python | 15,441 | 131,102 | 20 | nominal |
| langchain-ai/langgraph | ai-ml | Python | 6,897 | 40,882 | 19 | nominal |
| pytorch/pytorch | ai-ml | Python | 29,076 | 102,710 | 17 | nominal |
| ultralytics/ultralytics | ai-ml | Python | 11,683 | 61,179 | 14 | nominal |
| huggingface/transformers | ai-ml | Python | 34,421 | 164,703 | 12 | nominal |
| unslothai/unsloth | ai-ml | Python | 6,851 | 75,446 | 12 | nominal |
| vercel/next.js | web-framework | JavaScript | 31,855 | 142,069 | 11 | nominal |
| mlflow/mlflow | ai-ml | Python | 6,247 | 27,768 | 11 | nominal |
| shadcn-ui/ui | web-framework | TypeScript | 10,066 | 122,747 | 10 | nominal |
| run-llama/llama_index | ai-ml | Python | 8,066 | 51,973 | 9 | nominal |
| grafana/grafana | devtool | TypeScript | 14,683 | 76,553 | 8 | nominal |
| microsoft/playwright | devtool | TypeScript | 6,375 | 95,509 | 8 | nominal |
| apache/airflow | database | Python | 17,720 | 46,689 | 7 | nominal |
| supabase/supabase | database | TypeScript | 13,691 | 108,706 | 7 | nominal |
| ClickHouse/ClickHouse | database | C++ | 8,887 | 49,601 | 7 | nominal |
| oven-sh/bun | web-framework | Rust | 5,029 | 95,838 | 7 | nominal |
| drizzle-team/drizzle-orm | database | TypeScript | 1,572 | 35,654 | 7 | nominal |
| spring-projects/spring-framework | web-framework | Java | 38,767 | 60,217 | 6 | nominal |
| expressjs/express | web-framework | JavaScript | 24,907 | 69,417 | 6 | nominal |
| pandas-dev/pandas | ai-ml | Python | 20,316 | 49,620 | 6 | nominal |
| openai/whisper | ai-ml | Python | 13,129 | 108,293 | 6 | nominal |
| tldr-pages/tldr | devtool | Markdown | 5,398 | 63,559 | 6 | nominal |
| microsoft/onnxruntime | ai-ml | C++ | 4,196 | 21,712 | 6 | nominal |
| EleutherAI/lm-evaluation-harness | ai-ml | Python | 3,534 | 13,860 | 6 | nominal |
| deepset-ai/haystack | ai-ml | Python | 3,064 | 26,392 | 6 | nominal |
| vitest-dev/vitest | devtool | TypeScript | 1,953 | 17,035 | 6 | nominal |
| bigskysoftware/htmx | web-framework | JavaScript | 1,651 | 49,309 | 6 | nominal |
| kubernetes/kubernetes | devtool | Go | 43,978 | 125,930 | 5 | nominal |
| redis/redis | database | C | 24,773 | 76,172 | 5 | nominal |
| cli/cli | devtool | Go | 8,949 | 46,103 | 5 | nominal |
| ray-project/ray | ai-ml | Python | 7,987 | 43,681 | 5 | nominal |
| traefik/traefik | devtool | Go | 6,181 | 64,704 | 5 | nominal |
Added counts forks gained across the current observation window. A repository whose window has not filled yet shows no figure rather than a zero.
Today
Since midnight UTC. Empty is the ordinary state.
| UTC | Repository | Signal | Confidence | Reading | Link |
|---|---|---|---|---|---|
| 04:32 | openai/openai-python | release | confirmed | v3.7.0 | source |
| 04:32 | renovatebot/renovate | release | confirmed | 44.56.3 | source |
| 04:32 | ultralytics/ultralytics | release | confirmed | v8.4.138 | source |
| 04:32 | wevm/viem | release | confirmed | viem@2.56.3 | source |
Signals
Five detectors. Most need fourteen days of history before they can say anything.
Our record
How often this has been right, and whether its bars are reachable.
| Detector | Compares | Bar | Highest seen | Of bar | Measured | Crossed | Reading |
|---|---|---|---|---|---|---|---|
| fork-spike | multiplier against own baseline | 3 | 6.37 | 212% | 58 | 1 | Reached |
| fork-outlier | ratio to category median | 8 | 71 | 888% | 136 | 136 | Reached |
| demand | engagement across repositories | 60 | 1877 | 3128% | 165 | 165 | Reached |
| lineage | new descendants this week | 10 | 175 | 1750% | 72 | 30 | Reached |
Never approached means nothing reached half the bar — a fault in this instrument, not in the repositories. How
The token
What funds this.
This project is funded by a token on Robinhood Chain. Trading it pays a fee, and most of that fee goes to whoever launched the pool — which is what pays for this to keep running and to stay free to read.
That is the whole of it. Holding it does not unlock anything here, there is nothing to connect a wallet to, and no part of this site is behind it. Every reading, every bundle and every archive is public and always will be.
It launched on Virtuals, Robinhood Chain — 0x9288a2961368cCebF2E2509a877Eb8EE578857fc. It is still on its bonding curve, so that address is replaced if it graduates. The payment rail is not charging yet: no wallet and no rate are set, so every tool is still free. The plan was to run this in the open first and name it after the answer rather than after a guess, which is what happened.