Adoption is broad. Many contributors are committing agent-authored work, which is what a real organisational rollout looks like.
Assisted or autonomous
Assisted — a developer’s identity authored the commit and the agent added itself as co-author. The agent ran git commit during a working session, with a person there. Autonomous — a bot identity is the author, no human in the loop. Across the whole index, 93.7% of agent commits are assisted.
Agent share by month
Peak month: 23.5%. Bars are scaled to that peak, not to 100%.
Which agents
| Claude Code | Anthropic | 153 | 5.6% |
| Cursor Agent | Anysphere | 43 | 1.6% |
| GitHub Copilot | GitHub | 4 | 0.1% |
Verify it yourself
Sample commits that matched. Every one links to GitHub — check the trailers.
5b8c866c[test] Skip hooks of suites skipped by a lazy `@force-gate` (#98169)Claude Code52cd5b96Skip discussions in the `issue_lock` workflow (#98146)Claude Code3866d6fd[ci] Fix `issue_lock` (#97755)Claude Code1780fa03fix: reuse a single drain listener when piping Node streams through gzip (Cursor Agent8aa475b4Redesign the unrendered-segment instant validation overlay (#93879)Cursor Agent1a1d1c97ci: run Linux Playwright jobs in prebuilt Microsoft container (#93794)Cursor Agentd4b23403docs: clarify /_not-found failures and <html> attribute reads under Cache GitHub Copilot9e344c92skill(next-cache-components-adoption): tune skill to mention app router reGitHub Copilot8adb4ea8[test] Fix broken terminal output (#93357)GitHub Copilot
What was excluded
| Commits in window | 2,955 |
| Merge commits removed | −0 |
| CI / dependency bots removed | −243 |
| Considered | 2,712 |
Bots are excluded from the denominator entirely. Counting dependabot as “AI-written code” is the fastest way to produce a meaningless number.
How this was measured
Measured over February–August 2026, cloned directly. Detection is deterministic string matching against signatures agents write about themselves — no heuristics, no style analysis. Merge commits and CI bots are excluded from the denominator. The figure is a floor: squash merges strip trailers, so real usage is higher. Contributor counts are aggregate — no individual is named.
Run it yourself: npx qmmit-cli vercel/next.js