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: 15.4%. Bars are scaled to that peak, not to 100%.
Which agents
| Claude Code | Anthropic | 149 | 5.8% |
| Cursor Agent | Anysphere | 3 | 0.1% |
| GitHub Copilot | GitHub | 2 | 0.1% |
| OpenAI Codex | OpenAI | 1 | 0% |
Verify it yourself
Sample commits that matched. Every one links to GitHub — check the trailers.
1a000a52fix(control-plane): serve the UI when bound to a loopback address (#4379)Claude Codeee615d61feat(python-client): add task-local retain suspension (#4285)Claude Code16d4025fblog: Onboarding an Engineer vs. Onboarding an Agent (#4100)Claude Code41852405perf+fix(graph-maintenance): catch the #2529 sweep deadlock in continuous Cursor Agent84e67efbfix(cursor-cli): parse Cursor 3.x role-nested agent transcripts (#2465)Cursor Agentef2e8ab7fix(openclaw): apply configured defaults to dynamic banks (#2441)Cursor Agentf3f2c6b0Fix timeline group sort: localeCompare → numeric Date comparison (#820)GitHub Copilot8ce06e3eAdd wall-clock timeout to reflect operations (#643)GitHub Copilot532aa869fix(worker): detect stuck tasks by stage progress (#3720)OpenAI Codex
What was excluded
| Commits in window | 2,643 |
| Merge commits removed | −2 |
| CI / dependency bots removed | −65 |
| Considered | 2,576 |
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 vectorize-io/hindsight