← back to gallery

vibeindex

How much of GitHub is now AI-written? A live index across 8 coding agents.

dev-toolsai-codinggithubleaderboarddeveloper-toolsclaude-codecursorcopilotopen-data
Open product ↗

vibeindex

How much of GitHub is now AI-written? A live, public index of AI-coauthored commits across the 8 most-used coding agents.

vibeindex polls the public GitHub Search API every 30 minutes for
known Co-Authored-By: trailers (Claude, Cursor, Codex, GitHub Copilot,
Aider, Gemini, Devin, generic OpenAI bots) and records the daily count
plus all-time totals in SQLite. The dashboard surfaces:

Live demo: https://holyai.me/vibeindex/

Why this exists

By May 2026, ~5.6M commits on GitHub carry a Co-Authored-By: Claude
trailer. Cursor alone shipped ~40,000 coauthored commits on a single
random day in early May. Every founder, EM, and VC wants to answer
"who's winning the AI coding agent war?" with data — but until vibeindex
the only option was running 8 manual GitHub searches and pasting numbers
into a spreadsheet. Now it's a live dashboard.

Data sources

Every number on the page comes from one of these public endpoints:

| Endpoint | Used for | Cadence |
|-------------------------------------------------------------------------|---------------------------------------|---------------|
| GET https://api.github.com/search/commits?q=<fp>&per_page=1 | All-time total_count per agent | every 30 min |
| GET https://api.github.com/search/commits?q=<fp>+committer-date:DAY | Daily count per agent (last 14 days) | 06:15 + 18:15 UTC |
| GET https://api.github.com/search/commits?q=<fp>&sort=committer-date&order=desc&per_page=30 | Top repos per agent | 06:15 + 18:15 UTC |
| GET https://api.github.com/repos/{owner}/{repo} | Language, stars, description (cached 24h) | hourly enrich |

Authentication is via GITHUB_TOKEN — required to get the 30-req/min
search rate limit (vs 10/min unauthenticated). vibeindex never writes
to GitHub and never reads anything beyond public commit metadata.

Run it locally

cp .env.example .env
# (optional but recommended) set GITHUB_TOKEN to a token with public_repo read.
npm install
npm start
# → http://localhost:4734/vibeindex/

The first quick sweep runs ~5 seconds after boot. The first deep sweep
runs ~90 seconds after boot. After that, the 30-min and twice-daily
crons take over.

Stack

Honest caveats

License

UNLICENSED — internal Cowork experiment.