← back to gallery

AI Commit Ledger

What percent of open source is AI-authored this week? Live ledger across 39 major GitHub repos.

dev-toolsai-commitsgithubclaude-codecopilotleaderboardopen-source
Open product ↗

ai-commits

Open-source AI commit ledger. Public dashboard that tracks the percentage of commits in major GitHub repositories authored by AI agents (Claude Code, Copilot, Codex, Cursor, Devin, Cline, Aider).

Live at: https://holyai.me/ai-commits/

What it does

Every 4 hours we pull the latest 100 commits from ~35 high-signal public repos via the GitHub REST API and classify each commit by the AI tool that signed off in the Co-Authored-By trailer (or by author email / login signature). Results are stored in SQLite (WAL) and surfaced through a dark-themed dashboard with a leaderboard, daily trend, per-tool breakdown, and shareable SVG cards.

Data sources (no mocks, no seed data)

All numbers come from live calls to the public GitHub API:

Authenticate with a personal-access token (read public scope) to get 5,000 req/h instead of 60. Without a token the scheduler logs a warning and the dashboard surfaces the last successful sync time instead of fabricating data.

Refresh frequency: every 4 hours via node-cron (SYNC_CRON env override available).

AI tool detection

lib/parser.js checks the following signatures in priority order:

| Tool | Trailer pattern | Email pattern | Login pattern |
|------|----------------|---------------|---------------|
| claude | Co-Authored-By: Claude | [email protected] | — |
| copilot | Co-Authored-By: Copilot | @copilot.github.com, +copilot-swe-agent[bot]@users.noreply.github.com | copilot[bot], copilot-swe-agent |
| codex | Co-Authored-By: openai-codex / Codex | @codex.openai.com | codex- |
| cursor | Co-Authored-By: Cursor Agent | @cursor.sh, @cursor.com | cursoragent, cursor[bot] |
| devin | Co-Authored-By: Devin | [email protected] | devin-
|
| cline | Co-Authored-By: Cline | [email protected] | cline[bot] |
| aider | Co-Authored-By: Aider | aider.chat | — |

Standard bots (dependabot, renovate, github-actions, [bot] suffix) are detected and excluded from AI counts.

API

All endpoints under BASE_PATH=/ai-commits. No auth required.

window accepts 1d365d. sortai_pct | ai_total | total | stars.

Run locally

cp .env.example .env
# edit .env: paste a GitHub personal-access token in GITHUB_TOKEN
npm install
npm start
# open http://localhost:4805/ai-commits/

Force an immediate sync (bypassing cron):

npm run sync          # one cycle, no backfill
node fetchers/scheduler.js --once --backfill   # 5-page backfill per repo (first run)

Stack

Node.js 20 · Express · better-sqlite3 (WAL) · node-cron · helmet · compression · Chart.js (CDN, browser-only) · vanilla JS SPA.

No build step, no front-end framework, no auth, no admin panel.

Layout

ai-commits/
├── server.js              # Express app
├── db.js                  # SQLite schema + prepared statements
├── repos.js               # Curated repo list
├── lib/parser.js          # AI tool detector
├── lib/sharecard.js       # SVG share card renderer
├── fetchers/github.js     # GitHub API client
├── fetchers/scheduler.js  # Cron + sync orchestration
├── routes/api.js          # JSON API
└── public/                # Static SPA
    ├── index.html
    ├── app.js
    └── style.css

Roadmap (post-MVP)