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: 10.2%. Bars are scaled to that peak, not to 100%.
Which agents
| GitHub Copilot | GitHub | 27 | 1.5% |
| Gemini CLI | 7 | 0.4% | |
| Claude Code | Anthropic | 2 | 0.1% |
Verify it yourself
Sample commits that matched. Every one links to GitHub — check the trailers.
f34f0f03feat (TDgpt): Dynamic Model Synchronization Enhancements (#35344)GitHub Copilot98afb554fix(packaging): replace hardcoded component names with Name variables (#35GitHub Copilot4f4e0e82refactor: replace excluded_contained with exclude_overlap for profile searGitHub Copilot98d3d8ecdocs: update release note for 3.4.1.6 in office web (#35267)Gemini CLIcbafd7b4security and quality: pip 25.0.1→26.0.1 (#35207)Gemini CLIe68623e5docs: unify data in task creation step (#35197)Gemini CLIb9eb3401feat(stream): implement idle trigger for stream partitions (#34902)Claude Code163aa941feat(stream): add natural time units support for PERIOD trigger (#34766)Claude Code
What was excluded
| Commits in window | 2,434 |
| Merge commits removed | −629 |
| CI / dependency bots removed | −26 |
| Considered | 1,779 |
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 taosdata/TDengine