A coding agent can fix the runtime that will launch the next coding agent, add the tests that police it, and leave one durable trace: a line at the bottom of a Git commit. In openai/codex, a July Codex-credited change spread execution-level network attribution across 22 files and hundreds of test lines. A Gemini Code Assist co-author marker sits on 28 files of runtime and test work. An OpenCode agent account is itself the author of a focused fallback fix.
Those are real public receipts. They are not a percentage of code written by a machine. A co-author trailer says a project credited an identity; it does not divide a diff between contributors, expose discarded patches, or show how much a human rewrote. A bot name can mean coding, release automation, review, or orchestration. And a commit with no agent mark is not therefore human. It is unknown.
The visible share rose. The unknowable share stayed large.
TheGitReporter inspected non-merge commits dated January 1 through August 10 on the default branches of Codex, Gemini CLI, OpenCode, Qwen Code, Cline, Goose, OpenHands, Crush, Mistral Vibe, and Kilo Code. Identical hashes shared across repositories were counted once in the time series. Of 40,345 unique commits, 4,014—10.0%—carried a direct coding-agent marker: a structured agent co-author or assisted-by line, a standalone generated-with footer, or an author identity that explicitly names a coding agent. Another 1,637—4.1%—carried a project bot or robot identity whose public name did not establish a generative coding role.
| Month | Unique commits | Direct marker | Role-unclear bot | Any visible marker |
|---|---|---|---|---|
| January | 5,062 | 168 · 3.3% | 85 · 1.7% | 5.0% |
| February | 5,538 | 393 · 7.1% | 86 · 1.6% | 8.7% |
| March | 5,879 | 656 · 11.2% | 232 · 3.9% | 15.1% |
| April | 6,034 | 746 · 12.4% | 298 · 4.9% | 17.3% |
| May | 5,878 | 658 · 11.2% | 314 · 5.3% | 16.5% |
| June | 5,548 | 560 · 10.1% | 200 · 3.6% | 13.7% |
| July | 5,172 | 673 · 13.0% | 326 · 6.3% | 19.3% |
| August 1–10 | 1,234 | 160 · 13.0% | 96 · 7.8% | 20.7% |
The direct series climbs early, settles, then reaches 13.0% in July and partial August. The role-unclear tier expands faster late in the window. Neither line can answer “how much code did agents write?” Unmarked agent use can sit outside both, while a marked commit can range from seven deleted lockfile lines in Goose to a large implementation-and-test change in Qwen Code.
Other agents are crossing into the codebases
Self-contribution is only half the picture. Direct Claude markers appear in eight of the ten histories; Copilot appears in six and Cursor in five. Qwen Code carries 326 Claude-attributed commit associations, 22 Copilot, 11 Cursor, and seven Codex alongside its own Qwen markers. Goose's visible graph is almost entirely external: 152 Claude, 39 Copilot, five Cursor, and three Warp associations. Crush records its harness unusually clearly: a recent server fix says both “Generated with Crush” and “Assisted-by: Crush:qwen3.8-max”.
| Codebase | In-window commit appearances | Direct-marked | Role unclear | Leading direct agent associations |
|---|---|---|---|---|
| Codex | 6,455 | 353 · 5.5% | 0 | Codex 348; Claude 5 |
| Gemini CLI | 2,610 | 118 · 4.5% | 119 · 4.6% | Gemini 118 |
| OpenCode | 8,814 | 1,551 · 17.6% | 0 | OpenCode 1,517; Claude 25 |
| Qwen Code | 4,599 | 1,372 · 29.8% | 314 · 6.8% | Qwen 1,035; Claude 326 |
| Cline | 2,500 | 107 · 4.3% | 6 · 0.2% | Claude 46; Cursor 29; Copilot 17; Cline 16 |
| Goose | 2,229 | 196 · 8.8% | 0 | Claude 152; Copilot 39 |
| OpenHands | 2,205 | 124 · 5.6% | 1,060 · 48.1% | Claude 91; Cursor 28 |
| Crush | 1,637 | 154 · 9.4% | 0 | Crush 141; Claude 23; Qwen 18 |
| Mistral Vibe | 61 | 0 | 0 | No accepted public marker |
| Kilo Code | 17,383 | 1,345 · 7.7% | 138 · 0.8% | OpenCode 1,279; Claude 46 |
That Kilo-to-OpenCode edge needs a different ink. It is dominated by shared fork ancestry: the same OpenCode-agent commits appear in both histories. It proves that agent-attributed code can propagate into another agent product, not that Kilo commissioned 1,279 new OpenCode-agent changes. The monthly chart deduplicates those identical hashes; the per-codebase table keeps them because inherited code is still part of the history readers and maintainers receive.
The biggest ambiguous block is OpenHands: 1,060 commits carry a generic openhands project identity without publicly defining the role in the marker. A telemetry fix with tests may well be agent-produced, but the name alone cannot distinguish an agent from a service account. At the other end, 61 in-window Mistral Vibe commits carried no accepted marker. That proves only that its public Git history is silent under this method.
A contribution receipt needs four fields, not one bot name
Git already has the container. Its trailer grammar is structured, and GitHub documents co-author lines. Coding-agent projects could make the evidence comparable without publishing prompts or private sessions by adding four narrow facts:
Agent-assisted-by: crush@vX / qwen3.8-max
Agent-role: code, tests
Agent-scope: server replacement and idle-shutdown regression
Human-verified: focused tests + maintainer review
The tool field says what ran. Role says whether it drafted, modified, reviewed, tested, or only suggested. Scope prevents one footer from claiming an entire squash commit. Verification records the human or automated check without pretending that passing tests proves authorship. A public attestation link could be added when a project chooses, but raw session logs should not be required.
Until that receipt becomes routine, the honest graph has three states: directly marked, project-bot marked but unclear, and unmarked. The signal is still consequential. Coding agents are visibly contributing to their own infrastructure and to rival codebases, and that visibility is rising. The next contest is not who can claim the largest AI-written percentage. It is which projects can make a coding agent's work as reviewable as the code it changed.