GitHub Personal Stats GitHub

Your profile, drawn once
and read anywhere

One SVG for your GitHub stats, language share, contributions, and streak — laid out by the renderer, so your README does not have to fight tables, image heights, or fragile HTML alignment.

Runs as a GitHub Action, a local command, or a small service. Light, dark, and transparent themes. Tiles that reflow on a phone.

A dashboard card showing stats, languages, contributions, and a streak ring

What it draws

And how the work was actually done

Your profile knows what you pushed and nothing about how it came to be. A second half reads that from records your own machine already keeps: how long the work took, how much of it an agent wrote, and which models did. No account with anybody, no service in the cloud, and no token to render it.

An activity card comparing the last thirty days with all time, ranked by language

The same record reads as text, for a README made of words rather than pictures:

LINES BY LANGUAGE

Total        +119,979   lines, 99.94% by an agent

Rust          +35,995   #########################   30.00 %
Markdown      +28,134   ####################-----   23.44 %
Go            +21,941   ###############----------   18.28 %

Documentation

One fetch behind every tile

Read a profile once, save it, then draw every card, theme, and width from what was saved. A README with five tiles asks GitHub for nothing five times.

github-personal-stats fetch --user your-login --output profile.json
github-personal-stats generate --fixture profile.json --card stats  --output stats.svg
github-personal-stats generate --fixture profile.json --card heat   --output heat.svg