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.7%. Bars are scaled to that peak, not to 100%.
Which agents
| Cursor Agent | Anysphere | 68 | 0.7% |
| GitHub Copilot | GitHub | 21 | 0.2% |
| Claude Code | Anthropic | 20 | 0.2% |
Verify it yourself
Sample commits that matched. Every one links to GitHub — check the trailers.
ff2e8e76Specialized SORT @timestamp DESC, LIMIT N optimization - Part 1 (#157717)Cursor Agenta190f0a3ES|QL: Fix TS STATS literal aggregates dropped by optimizer (#157148)Cursor Agentb5b406bbFix ES94HnswScalarQuantizedVectorsFormatTests testSimpleOffHeapSize odd-diCursor Agent0cb3319b[Inference API] Use SettingsScope enum instead of strings for settings scoGitHub Copilot6a04cbf1ES|QL HIGHLIGHT: reject integer options above Integer.MAX_VALUE (#156722)GitHub Copilot0e6e122dMigrate inference plugin logging from log4j to ES Logger (#154552)GitHub Copilot335b014dGrant cluster:monitor/project_routing/get to the kibana_system role (#1561Claude Code0e6e122dMigrate inference plugin logging from log4j to ES Logger (#154552)Claude Code697c1018[Docs] ES|QL Data Federation (#146945)Claude Code
What was excluded
| Commits in window | 9,938 |
| Merge commits removed | −24 |
| CI / dependency bots removed | −22 |
| Considered | 9,892 |
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 elastic/elasticsearch