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: 1.8%. Bars are scaled to that peak, not to 100%.
Which agents
| Cursor Agent | Anysphere | 24 | 0.4% |
| Claude Code | Anthropic | 16 | 0.3% |
| Devin | Cognition | 6 | 0.1% |
Verify it yourself
Sample commits that matched. Every one links to GitHub — check the trailers.
ef1985adadd unlink chat command so users can disconnect their own Slack/Teams idenCursor Agentb374d168fix: block Mongo operator injection in multi-object query templatesCursor Agent8d95610afix: authorize public API user role updates by workspaceCursor Agent6e1b5159Do not fail definition sync when pruning conflictsClaude Codef87d39ffPrune losing SQS definition branchesClaude Code5e1d9113fix: give the redis ACL user a password and permissionsClaude Code8c2989edUse ConnectedQueryUsage in APIEndpointViewer (post-merge fix)Devin525fc89dGuard sourceId before fetching screen usageDevinfae0fa37Convert UsagePopover and ConnectedQueryUsage to Svelte 5Devin
What was excluded
| Commits in window | 9,287 |
| Merge commits removed | −3,609 |
| CI / dependency bots removed | −222 |
| Considered | 5,456 |
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 Budibase/budibase