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: 9.3%. Bars are scaled to that peak, not to 100%.
Which agents
| Claude Code | Anthropic | 63 | 3% |
| GitHub Copilot | GitHub | 40 | 1.9% |
| Gemini CLI | 10 | 0.5% |
Verify it yourself
Sample commits that matched. Every one links to GitHub — check the trailers.
e5a88b36jwt_authn: set sampled=nullopt on JWKS fetch span to honor parent samplingClaude Code193801d1bazel: consume prebuilt wee8 in bzlmod (#47203)Claude Code5a1a3797wasm/v8: Source wee8 from envoy_toolshed prebuilt via label_flag (#47108)Claude Codef552b698bazel: remove stale WORKSPACE-era references (#47348)GitHub Copilot404b0d55deps: silence rules_swift toolchain DEBUG message (#47326)GitHub Copilotebac7f94mcp_json_rest_bridge: fix test build using private config constructor (#47GitHub Copilot89c0a159ext_proc: add support for receiving typed dynamic metadata (#45654)Gemini CLI96a9f7d2admin: add invert_filter query param to /stats (#46073)Gemini CLIba03eba5api: fix description for ORCA utilization precedence and document weight dGemini CLI
What was excluded
| Commits in window | 2,291 |
| Merge commits removed | −0 |
| CI / dependency bots removed | −177 |
| Considered | 2,114 |
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 envoyproxy/envoy