← the index
astral-sh/ruff
2.3%
of 2,388 commits were committed by an AI agent — a floor, not an estimate
2.3% agent · top contributor 33.9%17 contributors
org-wide

Adoption is broad. Many contributors are committing agent-authored work, which is what a real organisational rollout looks like.

56
agent commits
2,332
human commits
17
agent contributors
33.9%
largest contributor

Assisted or autonomous

56assisted
0autonomous

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

Feb26
Mar26
Apr26
May26
Jun26
Jul26
Aug26

Peak month: 5.2%. Bars are scaled to that peak, not to 100%.

Which agents

Claude CodeAnthropic472%
OpenAI CodexOpenAI90.4%
GitHub CopilotGitHub10%

Verify it yourself

Sample commits that matched. Every one links to GitHub — check the trailers.

  • a9130f33[`pyupgrade`] Add rule to replace `while 1` with `while True` (`while-one`Claude Code
  • 6f86de2e[`pylint`] Fix false negatives on negative numbers (`PLR6104`) (#27251)Claude Code
  • 023b1db3[`flake8-import-conventions`] Document that `extend-aliases` can override Claude Code
  • a2a71c59[ty] Add first-class support for enum complements (#24961)OpenAI Codex
  • f3b59046[ty] Hoist path assignment implication checks (#25107)OpenAI Codex
  • ac6361d8[ty] Include severity in JUnit diagnostics (#25080)OpenAI Codex
  • e51e1328[`flake8-async`] Implement `yield-in-context-manager-in-async-generator` (GitHub Copilot

What was excluded

Commits in window2,872
Merge commits removed0
CI / dependency bots removed484
Considered2,388

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 astral-sh/ruff

Scan another repository