The agent commit index
Almost all AI commits still have a human in the loop.
Coding agents sign their own commits. We counted those signatures across 123 open source repositories — 182,354 commits, all measured over the same window (February–August 2026). 93.7% turn out to be an agent committing alongside a developer, not running on its own. And a headline percentage still tells you almost nothing without knowing how many people are behind it.
Figure 1 The shape of agent adoption across 123 repositories
There is no smooth middle. A handful of projects have gone a long way, then the curve collapses — half of everything measured sits below 3.9%, and 11 repositories are at exactly zero. Colour shows who is behind each bar, and the tallest ones are often a single person.
Figure 2 Two repositories. Same story, until you look.
Nearly three quarters of recent commits are agent-authored — but one maintainer accounts for 97.4% of them. This is a single person’s workflow, not a project-wide shift.
A lower number, spread across 41 contributors with no one above 12.5%. This is what an actual organisational rollout looks like.
are agent-authored
the typical project has barely started
a human authored them
broad team adoption
What the numbers hide
Assisted, not autonomous
Only 0.7% of all commits come from a bot identity acting alone. The rest carry a developer’s name with the agent as co-author — the agent ran the commit, a person was there.
Systems languages lag
Go sits at 0.5%, Rust at 1.5%, Python at 1.4% — against 9–11% for web tooling and AI projects. Measured over the same window, so this is adoption, not commit velocity.
Concentration still decides meaning
29 of 123 repositories have agent commits coming from essentially one person — median top contributor 88.7%. The same percentage means opposite things depending on who is behind it.
The ecosystem divide
Figure 3
Median agent share by ecosystem. The gap between the least and most adopted is roughly 55x — systems-language projects have effectively not started, while product companies and AI tooling have.
Run it on your own code
The detection engine is open source and does the work locally. Nothing is uploaded, so it runs on private and internal repositories that no hosted tool can reach.
qmmit-cli ↗
Reads git history directly with a blobless clone — commit metadata only, no file contents, no GitHub API and therefore no rate limits. A 9,000-commit repository takes about six seconds.
- Works offline on any local clone, including private repos
- Deterministic signature matching — the rules are readable in one file
- JSON output for scripting and CI
- MIT licensed, zero dependencies
npx qmmit-cli
npx qmmit-cli ~/work/internal-api
npx qmmit-cli --since 2026-02-01
npx qmmit-cli owner/repo --json
It reports counts, never names. You will see how many contributors commit agent-signed work and how concentrated that is — never who they are. A per-person breakdown of AI usage is a surveillance artifact, and this tool will not produce one, locally or otherwise.
The index
Every repository measured, sortable. “Top” is the largest single contributor’s share of that repository’s agent commits — the higher it is, the more the headline number reflects one person.
| # | Ecosystem | Pattern | Concentration | ||||
|---|---|---|---|---|---|---|---|
| 1 | All-Hands-AI/OpenHands | AI/agent tools | 62.5% | 54 | 19.2% | org-wide | |
| 2 | framer/motion | UI libraries | 61.2% | 2 | 95.8% | individual | |
| 3 | pandas-dev/pandas | Python | 54.8% | 12 | 97.4% | individual | |
| 4 | denoland/fresh | JS/TS frameworks | 54.1% | 12 | 71.7% | team | |
| 5 | cypress-io/cypress | Product companies | 52% | 15 | 43.2% | org-wide | |
| 6 | calcom/cal.com | Product companies | 41.8% | 41 | 12.5% | org-wide | |
| 7 | continuedev/continue | AI/agent tools | 37.7% | 13 | 45.7% | org-wide | |
| 8 | microsoft/vscode | Editors/desktop | 30.8% | 155 | 9.7% | org-wide | |
| 9 | babylonjs/Babylon.js | Data/viz | 28% | 23 | 26.6% | org-wide | |
| 10 | sanity-io/sanity | Product companies | 25% | 27 | 28.2% | org-wide | |
| 11 | mendableai/firecrawl | AI/agent tools | 22.4% | 22 | 18.6% | org-wide | |
| 12 | BerriAI/litellm | AI/agent tools | 21.6% | 122 | 21.1% | org-wide | |
| 13 | appwrite/appwrite | Product companies | 21.1% | 20 | 41.1% | org-wide | |
| 14 | mermaid-js/mermaid | Data/viz | 20.5% | 20 | 23% | org-wide | |
| 15 | ant-design/ant-design | UI libraries | 20.2% | 35 | 27.7% | org-wide | |
| 16 | docker/compose | Go | 19.5% | 8 | 43.2% | team | |
| 17 | preactjs/preact | JS/TS frameworks | 18.3% | 2 | 90% | individual | |
| 18 | denoland/deno | Build tools | 17.2% | 31 | 79.6% | team | |
| 19 | vitest-dev/vitest | Build tools | 17.2% | 15 | 78% | team | |
| 20 | pulumi/pulumi | Product companies | 16.8% | 34 | 29.4% | org-wide | |
| 21 | storybookjs/storybook | UI libraries | 16.7% | 35 | 22.7% | org-wide | |
| 22 | mastra-ai/mastra | AI/agent tools | 16.6% | 124 | 33.2% | org-wide | |
| 23 | langchain-ai/langgraph | AI/agent tools | 15.6% | 5 | 29.2% | team | |
| 24 | vercel/ai | AI/agent tools | 15% | 35 | 57.7% | team | |
| 25 | electron/electron | Editors/desktop | 13.4% | 14 | 31.4% | org-wide | |
| 26 | tldraw/tldraw | UI libraries | 13.3% | 14 | 32.3% | org-wide | |
| 27 | grafana/grafana | Go | 12.9% | 110 | 26% | org-wide | |
| 28 | vllm-project/vllm | AI/agent tools | 11.3% | 358 | 3.8% | org-wide | |
| 29 | python/cpython | Python | 11.1% | 17 | 90.4% | individual | |
| 30 | strapi/strapi | Product companies | 11% | 23 | 19.8% | org-wide | |
| 31 | mrdoob/three.js | Data/viz | 10.9% | 12 | 59.2% | team | |
| 32 | crewAIInc/crewAI | AI/agent tools | 10.2% | 16 | 39% | org-wide | |
| 33 | unclecode/crawl4ai | AI/agent tools | 10% | 4 | 84.2% | individual | |
| 34 | block/goose | AI/agent tools | 9.8% | 74 | 13.8% | org-wide | |
| 35 | huggingface/diffusers | AI/agent tools | 9.7% | 19 | 47.4% | org-wide | |
| 36 | colinhacks/zod | Backend/ORM | 9.4% | 9 | 47.1% | org-wide | |
| 37 | prisma/prisma | Product companies | 9.3% | 15 | 31.6% | org-wide | |
| 38 | twentyhq/twenty | Product companies | 9.3% | 54 | 57.6% | team | |
| 39 | cloudflare/workers-sdk | Product companies | 9.2% | 45 | 20% | org-wide | |
| 40 | pnpm/pnpm | Build tools | 9.2% | 33 | 38.9% | org-wide | |
| 41 | supabase/supabase | Product companies | 9.2% | 56 | 27.9% | org-wide | |
| 42 | vercel/turborepo | Build tools | 8.1% | 19 | 71.6% | team | |
| 43 | directus/directus | Product companies | 8% | 16 | 20% | org-wide | |
| 44 | browser-use/browser-use | AI/agent tools | 7.8% | 14 | 64% | team | |
| 45 | nrwl/nx | Build tools | 7.5% | 21 | 19.6% | org-wide | |
| 46 | vercel/next.js | JS/TS frameworks | 7.1% | 25 | 51.7% | team | |
| 47 | shadcn-ui/ui | UI libraries | 7% | 28 | 42.3% | org-wide | |
| 48 | mui/material-ui | UI libraries | 6.9% | 12 | 25% | org-wide | |
| 49 | oven-sh/bun | Build tools | 6.9% | 16 | 67% | team | |
| 50 | astral-sh/uv | Rust | 6.3% | 12 | 81.3% | individual | |
| 51 | huggingface/transformers | AI/agent tools | 6.1% | 52 | 22.2% | org-wide | |
| 52 | payloadcms/payload | Product companies | 6.1% | 12 | 78.7% | team | |
| 53 | facebook/react | JS/TS frameworks | 5.3% | 4 | 64.7% | team | |
| 54 | prometheus/prometheus | Go | 5.2% | 15 | 34.8% | org-wide | |
| 55 | sveltejs/svelte | JS/TS frameworks | 5.2% | 5 | 66.7% | team | |
| 56 | npm/cli | Build tools | 4.8% | 5 | 66.7% | team | |
| 57 | biomejs/biome | Build tools | 4.4% | 12 | 54% | team | |
| 58 | vitejs/vite | Build tools | 4.4% | 13 | 38.5% | org-wide | |
| 59 | remix-run/react-router | JS/TS frameworks | 4.3% | 6 | 70% | team | |
| 60 | sharkdp/bat | Rust | 4.2% | 3 | 50% | individual | |
| 61 | excalidraw/excalidraw | UI libraries | 4.1% | 4 | 33.3% | team | |
| 62 | cline/cline | AI/agent tools | 3.9% | 17 | 19.1% | org-wide | |
| 63 | fastify/fastify | Backend/ORM | 3.9% | 5 | 37.5% | team | |
| 64 | microsoft/playwright | Product companies | 3.7% | 9 | 60% | team | |
| 65 | TanStack/table | Backend/ORM | 3.5% | 4 | 72.7% | team | |
| 66 | open-webui/open-webui | AI/agent tools | 3.5% | 9 | 88.7% | individual | |
| 67 | swc-project/swc | Rust | 3.5% | 6 | 61.1% | team | |
| 68 | medusajs/medusa | Product companies | 3.4% | 11 | 63.3% | team | |
| 69 | run-llama/llama_index | AI/agent tools | 3.2% | 10 | 25% | org-wide | |
| 70 | apache/arrow | Python | 3.1% | 15 | 25% | org-wide | |
| 71 | prettier/prettier | Build tools | 3.1% | 3 | 81.8% | individual | |
| 72 | nestjs/nest | Other | 3% | 6 | 40% | team | |
| 73 | flutter/flutter | Mobile | 2.9% | 45 | 10.5% | org-wide | |
| 74 | tailwindlabs/tailwindcss | UI libraries | 2.8% | 4 | 50% | team | |
| 75 | danny-avila/LibreChat | AI/agent tools | 2.7% | 23 | 20.6% | org-wide | |
| 76 | neovim/neovim | Editors/desktop | 2.7% | 5 | 89.8% | individual | |
| 77 | astral-sh/ruff | Rust | 2.3% | 17 | 33.9% | org-wide | |
| 78 | expo/expo | Mobile | 2.3% | 47 | 17% | org-wide | |
| 79 | typeorm/typeorm | Backend/ORM | 1.9% | 3 | 66.7% | individual | |
| 80 | eslint/eslint | Build tools | 1.8% | 2 | 83.3% | individual | |
| 81 | langchain-ai/langchain | AI/agent tools | 1.8% | 7 | 33.3% | team | |
| 82 | zed-industries/zed | Editors/desktop | 1.8% | 50 | 5.8% | org-wide | |
| 83 | chakra-ui/chakra-ui | UI libraries | 1.7% | 3 | 33.3% | individual | |
| 84 | plotly/plotly.js | Data/viz | 1.7% | 3 | 50% | individual | |
| 85 | pydantic/pydantic | Python | 1.7% | 4 | 25% | team | |
| 86 | honojs/hono | Backend/ORM | 1.6% | 4 | 25% | team | |
| 87 | clap-rs/clap | Rust | 1.5% | 1 | 100% | individual | |
| 88 | numpy/numpy | Python | 1.4% | 6 | 30% | team | |
| 89 | duckdb/duckdb | Python | 1.3% | 10 | 43.4% | org-wide | |
| 90 | nocodb/nocodb | Product companies | 1.3% | 7 | 67.3% | team | |
| 91 | withastro/astro | JS/TS frameworks | 1.3% | 14 | 17.6% | org-wide | |
| 92 | TanStack/query | Backend/ORM | 1.2% | 4 | 28.6% | team | |
| 93 | webpack/webpack | Build tools | 1.1% | 4 | 37.5% | team | |
| 94 | ggml-org/llama.cpp | AI/agent tools | 1% | 19 | 12% | org-wide | |
| 95 | changesets/changesets | Build tools | 0.9% | 2 | 50% | individual | |
| 96 | documenso/documenso | Product companies | 0.9% | 1 | 100% | individual | |
| 97 | nuxt/nuxt | JS/TS frameworks | 0.9% | 7 | 14.3% | team | |
| 98 | ionic-team/ionic-framework | Mobile | 0.8% | 1 | 100% | individual | |
| 99 | pola-rs/polars | Rust | 0.8% | 8 | 22.2% | team | |
| 100 | nodejs/node | Build tools | 0.7% | 8 | 41.7% | team | |
| 101 | fastapi/fastapi | Python | 0.6% | 3 | 33.3% | individual | |
| 102 | comfyanonymous/ComfyUI | AI/agent tools | 0.5% | 6 | 16.7% | team | |
| 103 | ollama/ollama | Go | 0.5% | 3 | 33.3% | individual | |
| 104 | scikit-learn/scikit-learn | Python | 0.5% | 2 | 66.7% | individual | |
| 105 | zellij-org/zellij | Rust | 0.5% | 1 | 100% | individual | |
| 106 | tauri-apps/tauri | Editors/desktop | 0.4% | 1 | 100% | individual | |
| 107 | tokio-rs/tokio | Rust | 0.4% | 1 | 100% | individual | |
| 108 | golang/go | Go | 0.3% | 2 | 50% | individual | |
| 109 | kubernetes/kubernetes | Go | 0.3% | 3 | 66.7% | individual | |
| 110 | hashicorp/terraform | Go | 0.2% | 1 | 100% | individual | |
| 111 | helix-editor/helix | Rust | 0.2% | 1 | 100% | individual | |
| 112 | bevyengine/bevy | Rust | 0.1% | 1 | 100% | individual | |
| 113 | angular/angular | JS/TS frameworks | 0% | — | — | none | |
| 114 | apache/echarts | Data/viz | 0% | — | — | none | |
| 115 | django/django | Python | 0% | — | — | none | |
| 116 | evanw/esbuild | Build tools | 0% | — | — | none | |
| 117 | godotengine/godot | Data/viz | 0% | — | — | none | |
| 118 | jestjs/jest | Build tools | 0% | — | — | none | |
| 119 | pocketbase/pocketbase | Product companies | 0% | — | — | none | |
| 120 | puppeteer/puppeteer | Product companies | 0% | — | — | none | |
| 121 | radix-ui/primitives | UI libraries | 0% | — | — | none | |
| 122 | teableio/teable | Product companies | 0% | — | — | none | |
| 123 | vuejs/core | JS/TS frameworks | 0% | — | — | none |
Method, and what this does not measure
- This counts commits authored by agents, not code written with AI help. A developer who writes code with Claude Code and then commits it by hand leaves no trace in git and correctly reads 0% here. Git cannot see who typed the code. What it can see is who ran the commit.
- Detection is deterministic string matching against signatures agents write about themselves —
Co-Authored-By: Claude,cursor[bot],devin-ai-integration[bot], Codex task footers, Aider’s(aider)suffix. No heuristics, no style analysis, no inference. - Every figure is a floor, not an estimate. Squash merges and rebases strip
Co-Authored-Bytrailers, so real usage is higher than what is reported here. - CI, dependency and release bots are excluded from the denominator by the
[bot]naming convention. This matters more than it sounds: LangChain’s recent history is 46% bot commits. Counting those as “AI-written code” would inflate every number on this page. - Last 500 commits per repository. Lifetime figures differ substantially — projects with long pre-agent histories look far lower over their full life.
- Repositories with fewer than 200 considered commits are excluded as too noisy to publish.
- Commit counts, not lines of code. A one-line fix and a 2,000-line refactor each count once.
- Contributor figures are aggregate only. No individual is named anywhere in this index, the dataset, or the tool. This is a deliberate limit, not an oversight — a per-person breakdown of AI usage is a surveillance tool, and this is not one.