What I learned counting AI co-authored commits across 26,000 of my own A developer built a tool that counts AI co-authored commits by parsing Co-Authored-By trailers in git history, finding that 10,261 of their 26,251 commits (39%) were co-authored by Claude. The project also uncovered an undocumented GitHub commit search qualifier for co-authored-by and showed that keying agents on trailer display names rather than email addresses produces false matches and miscounts. The developer catalogued the actual trailer addresses used by nine coding agents, including Claude, Cursor, Copilot, Codex, and Devin. I use Claude Code every day, but if you asked me how much of my code I actually write with it, all I had was a feeling. The data was sitting right there in git the whole time: bash $ git log --format='%b' | grep -c 'Co-Authored-By: Claude' 960 960 out of 1,107 commits in that repo. Across everything I've touched: 10,261 of 26,251 commits — 39%. I built a small tool https://github.com/yosh1/cocommit to render that as an SVG card for a GitHub profile. The tool is the boring part. What I found while building it is what I actually want to write about. co-authored-by: search qualifier The commit search API accepts this: bash $ gh api '/search/commits?q=author:USER+co-authored-by:noreply@anthropic.com&per page=1' \ --jq '.total count' It works. It is also documented nowhere — it does not appear in GitHub's commit search docs https://docs.github.com/en/search-github/searching-commits . Since "it seems to work" is not evidence, I ran a control counts move as I commit, so these are one snapshot rather than fixed values : | Query all with author:USER | total count | |---|---| | co-authored-by:noreply@anthropic.com | 10,261 | | co-authored-by:copilot@github.com | 29 | | zzznotaqualifier:noreply@anthropic.com | 0 | | no qualifier | 26,251 | An invented qualifier returns zero. Change the value and the count changes. The parser recognizes it. But undocumented means it can vanish without notice, and the dangerous failure mode isn't returning zero. If GitHub stops parsing the qualifier, it So the check is on both sides: // Co-authored commits are a strict subset of all commits. A count equal to // the total means the qualifier didn't filter at all. const unusable = n = n === 0 || n = total; This is the one that surprised me, and it's the bug I shipped first. My initial implementation searched co-authored-by:claude — the agent's name. Reasonable-looking, and it returns a plausible number. Then I added Cursor and got this: bash $ gh api '/search/commits?q=co-authored-by:cursor+is:public' --jq '.total count' 10033042 Ten million felt too round. I looked at what was actually matching: bash $ gh api '/search/commits?q=co-authored-by:cursor+is:public&per page=5' \ --jq '.items .commit.message' | grep -i co-authored Co-authored-by: Cursor