Task Runner Census 2025


TL;DR - Key Take-aways

GitHub Actions dominates CI/CD, Make is omnipresent, and new package managers like uv and pnpm are popular in new repos.

How and why I counted

Every software project accretes snippets of code for developers to execute that are outside the primary codebase. These are named and saved in shell scripts, configs for build tools, package managers, CI runners, and occasionally just code blocks in the README. To find out what people are actually doing in 2025, I crawled the 100,000 most starred repos on GitHub and checked what config files they had. The primary motivation was figuring out what I should support in dela, my delegating task runner.

The Leaderboards

Most used task runners

Of the top 100,000 starred repos, 72,804 had detectable task runners. For repo counts, y axis is the total number of repos in which a task runner was detected. For star counts, y axis is the cumulative sum of stars in the detected repos. To be included in the chart, the task runner had to appear in at least 100 repos.

All time top task runners by repo count All time top task runners by star count

Most used since 2025-01-01

Below are charts only for the repositories created since 2025-01-01 that feature in the top 100k starred repositories. 1,127 repositories made this year have made it into the top 100k most starred repos overall. To be included in the chart, the task runner also had to appear in at least 10 of those repositories.

New since 2025, top task runners by repo count New since 2025, top task runners by star count

A taxonomy of task runners

There is a continuum of tooling that can execute code, but not all executions could be considered tasks. My criteria is that the tool is meant to work with the repository and has well-known patterns that could be detected from filenames. This means that things like Python scripts and shell scripts are out because their domain of utility can’t be localized to the repository. Any code that is meant to be run by the user rather than by the developer is also out, such as arg parsers for CLI tools. GitHub Actions, on the other hand, are included because they deal with the repository and are run on behalf of the developer even if they are not typically executed locally.

  • Build Tool - Tools to manage caching of dependencies when compiling but allow arbitrary code execution. make is the prototypical example and is probably the inspiration for most tools in this and other categories.
  • Package Manager - Package managers like npm and uv can have a list of tasks they execute, even though it is not their primary purpose.
  • Easy CLI - These are tools that make it easy to create code that is callable from the shell by developers, but not meant to be distributed. Examples include rake and invoke, which turn Ruby and Python methods into tasks invokable via the shell.
  • Task Runner - This is a category for pure task runners that aren’t coupled to another major feature; just and go-task are examples.
  • CI/CD Tool - Like build tools but running on somebody else’s infrastructure and also allow arbitrary code execution.
  • Process Manager - Orchestrate concurrent tasks and supervise their execution. Useful for production servers like systemd, but also used in development like foreman.

Make & GitHub Actions - General Purpose Leaders

GitHub Actions appears in 39.8% of the repositories, beating out the next best of 13.9% for Travis CI and 2.1% for Circle CI in the CI/CD category. That is an amazing victory for GitHub, because GitHub Actions only launched in 2019 and was free for public repositories from the start. Travis CI had a head start with being free for public repositories since 2011, but in 2020 switched to free for open source with manual review on a case-by-case basis only. Circle CI has been free for open source projects since 2014.

At 49 years old, make makes its presence seen in 19.0% of the repos. This is remarkable considering how much of present-day software is written in languages that don’t need a build step or have it provided by a special tool in their own ecosystem. I attribute part of its continued success to its ability to be used as a general-purpose task runner via the .PHONY build targets. Trailing it are bazel at 1.5% in the build tools category and just at just 0.4% in the task runner category.

27.2% of the repos did not have a detected task runner at all. The most popular of these is build-your-own-x with 392,036 stars at the time of the scan.

JavaScript ecosystem - pnpm rising

With 28.5% of all repos, npm is at the top of the pack in the JavaScript ecosystem and makes JS the most popular language ecosystem. In the jockeying for 2nd and 3rd place for JS package managers, pnpm came out from behind to land in 2nd place for new 2025 repos and 3rd place overall. pnpm is being used in 22.9% of all new JS repos made since 2025. This is a larger share than yarn ever had.

repository countsall timesince 2025
npm28,537381
yarn6,407123
pnpm2,94934

Below chart includes vite and webpack to give a better sense of the JavaScript ecosystem even though they doesn’t have task runner capabilities. New since 2025, JS ecosystem by repo count

Python ecosystem - uv rising

Unlike with npm, Python’s pip never had task running capability and the rest of the ecosystem mostly ignored it. This changed in 2024 with the introduction of uv, a package manager with built-in Python version management, virtual env management, and a task runner. In new 2025 repos, it features in 111 repos, behind pip’s 359. The scripts for crawling GitHub and analyzing the data for this blog post were managed with uv; it did the job superbly and I believe it makes the entire Python ecosystem much less frustrating to work with.

Below chart includes pip to give a better sense of the Python ecosystem even though pip doesn’t have task runner capabilities. New since 2025, Python ecosystem by repo count

Appendix

All data was collected between June 28th 2025 and June 30th 2025. It took over 2 days due to throttling by the GitHub API.

Raw Data for repos for all time
repo_countrepo_star_sum
markdown93,899257,666,001
github-actions39,887145,915,497
shell33,467114,956,898
npm28,53797,856,719
make19,03262,019,140
travis13,85436,280,958
pip13,63145,815,994
gradle7,73621,506,934
cmake6,77121,378,866
docker-compose6,76328,691,894
yarn6,40722,940,015
maven3,65310,743,067
pre-commit3,63215,923,362
webpack3,62315,298,638
vite3,28516,087,352
composer3,1358,926,252
pnpm2,94915,273,677
rake2,3475,621,344
rollup2,18810,415,155
circleci2,0998,289,536
tox1,8695,856,762
systemd1,8678,184,455
vscode1,8667,513,544
cargo-build1,8429,066,070
gulp1,6935,928,974
swiftpm1,5835,193,074
bazel1,4907,193,741
grunt1,3944,110,083
nuget1,1893,300,761
poetry1,0604,014,551
lerna9284,864,685
procfile9032,894,180
phing8952,519,263
ant8952,519,263
gitlab-ci8292,075,141
azure-pipelines7772,838,436
uv7013,995,535
invoke6613,022,648
turborepo6083,682,210
meson5892,169,901
jenkins5631,719,842
sbt4451,100,879
supervisord3921,685,263
fastlane3671,208,371
just3551,364,840
buck23491,202,698
mix339839,784
nx3112,014,084
leiningen297782,857
cabal283818,680
nodemon2711,550,398
bun-scripts2521,180,182
shell-alias237623,672
conan226947,116
scons223692,693
task2181,002,404
drone-ci207770,556
platformio197461,412
deno188982,639
nox178654,004
pm2122628,557
cargo-xtask98506,220
mise94329,008
buildkite91278,072
cake87306,508
foreman86368,333
cargo-make85559,584
pdm79209,206
parcel65364,426
ninja53312,692
ivy51203,225
mage41361,134
bitbucket-pipelines32109,011
earthly28193,989
rush23109,279
hatch1956,163
robo1551,481
monit14111,144
doit1032,850
jbang979,420
zed680,746
circus56,594
forever527,642
argc38,707
fleet00
nur00
go-xtask00
intellij00
Raw Data for repos created since 2025-01-01
repo_countrepo_star_sum
markdown1,1132,501,768
github-actions4641,312,773
shell4161,010,159
npm381932,215
pip359789,240
docker-compose172441,879
make154464,705
pnpm123287,826
vite114201,220
uv111305,394
pre-commit83217,553
cmake3776,813
yarn3472,531
turborepo3376,920
cargo-build2791,077
gradle2654,924
poetry2139,178
vscode1673,837
maven1637,993
travis1542,690
supervisord1539,830
swiftpm1448,631
invoke1217,009
webpack1121,924
bun-scripts1121,610
rollup1116,502
composer1011,287
rake918,844
gitlab-ci810,180
just737,098
deno65,764
nx67,261
nodemon513,205
tox517,944
mise46,653
shell-alias47,480
platformio47,322
bazel48,863
systemd318,269
azure-pipelines33,782
pdm39,154
nuget34,662
procfile35,431
nox218,424
lerna24,292
meson215,532
scons217,517
gulp22,686
foreman26,998
task22,447
jenkins11,761
buildkite16,269
circleci11,182
conan14,800
pm21613
earthly14,369
ninja1564
rush15,721
mix11,120
fastlane12,002
sbt14,203
robo00
ant00
phing00
forever00
bitbucket-pipelines00
buck200
cabal00
cake00
cargo-make00
cargo-xtask00
circus00
doit00
drone-ci00
fleet00
go-xtask00
parcel00
grunt00
hatch00
intellij00
ivy00
jbang00
leiningen00
mage00
argc00
monit00
nur00
zed00