Awaiting first refresh from the public GitHub API…
No merged PRs have been indexed yet. The app pulls live from api.github.com; no seed data, no mocks.
Subsequent refreshes run automatically every 30 minutes.
Per-agent PR-size leaderboard
Sorted by average lines-changed (additions + deletions) per merged PR in the selected window. Lower = tighter. Higher = more verbose.
| Agent | PRs | Avg LOC | Median | p90 | p99 | Avg files | Bloat vs human | Last merged |
|---|
PR-size distribution
Histogram of total LOC changed per merged PR. Pick an agent below.
Largest AI-coauthored PRs in the window
The biggest single merged PRs attributed to a coding agent via its Co-Authored-By: trailer. Click any card to open the PR on GitHub.
By language
Average LOC per merged PR, broken down by primary repo language. Only agent/language pairs with ≥ 3 PRs are shown.
| Agent | Language | PRs | Avg LOC |
|---|
By repo
Top repos by AI-PR count, with the bloat-vs-human ratio for that repo.
| Repo | AI PRs | AI avg LOC | Human PRs | Human avg LOC | Bloat |
|---|
Weekly avg LOC per agent
Is each agent getting more verbose over time? Pick an agent below to chart the last 90 days of weekly averages.
About agent-bloat
This dashboard answers a single question with real data: how big are the merged pull requests authored by each major AI coding agent on public GitHub?
Method
- Every 30 minutes, we run
GET /search/commitson api.github.com for each tracked agent fingerprint, e.g."Co-Authored-By: Claude" committer-date:>=YYYY-MM-DD. - For each new commit SHA we resolve
/repos/<owner>/<repo>/commits/<sha>/pullsto find the merged PR. - For each new PR we fetch
/repos/<owner>/<repo>/pulls/<n>for additions, deletions, changed files, and language. Stored in SQLite (WAL). - For the top repos by AI-PR volume we sample recent merged PRs without any
Co-Authored-By:trailer as a human baseline. Bloat vs human is the ratio of the agent's average LOC to the human baseline's average LOC in the same repos.
Constraints
- No mocks. No seeds. No fake numbers. If a refresh discovers no merged PRs for an agent, that row is left empty.
- No auth on this app. Every endpoint (including
POST /api/refresh) is public. The optionalGITHUB_TOKENenv var is used outbound only, to lift the api.github.com rate-limit ceiling from 60 → 5,000 req/h. - Read-only against GitHub. No commenting, starring, or PR-creation.
Endpoints
GET /agent-bloat/healthGET /agent-bloat/api/leaderboard?window=7d|30d|allGET /agent-bloat/api/distribution?agent=<slug>&window=…GET /agent-bloat/api/hall-of-fame?window=…GET /agent-bloat/api/by-language?window=…GET /agent-bloat/api/by-repo?window=…GET /agent-bloat/api/trend?agent=<slug>&days=…GET /agent-bloat/api/recent?agent=<slug>GET /agent-bloat/api/badge?agent=<slug> (SVG)GET /agent-bloat/api/refresh-logPOST /agent-bloat/api/refresh
Embeddable badge
Drop this into any README:

Part of Holy AI. Source data: GitHub public REST API.