What if your git history was a first-person shooter?
SHOT MY GIT turns any GitHub repo into a retro FPS game. Bug-fix commits become bosses. Your code commits become bullets. Shoot your way through 10 waves of bugs.
Try It Now
https://devjiro76.github.io/shot-my-git/
Paste any public GitHub repo URL and hit FIGHT.
How It Works
- Enter a GitHub repo URL (e.g.
facebook/react) - The app fetches commits via GitHub REST API
- Bug-fix commits (
fix,hotfix,patch...) spawn as bosses - Your feature/refactor commits become bullets
- Shoot through 10 waves of increasingly tough bugs
Bosses Have Tiers
| Tier | Trigger | Behavior |
|---|---|---|
| MINI | 1-2 files changed | Straight line |
| NORMAL | 3-5 files | Zigzag pattern |
| ELITE | 6+ files or 100+ line changes | Circle strafing |
| MEGA | Merge commits, 10+ files | Charge attack + escorts |
Bullets Show Real Code
Every bullet you fire displays actual content from your commits:
- Function/class names extracted from diffs
- Commit messages and SHAs
- Insertion/deletion stats
- Color-coded by commit type (feature=cyan, refactor=yellow, test=blue)
The Stack
- Three.js with low-res render target for pixel art aesthetic
- Canvas2D -> CanvasTexture for text sprite rendering
- Vite + TypeScript for the build
- GitHub REST API (no backend, fully static)
- Deployed on GitHub Pages
Git Events as Environmental Effects
The game world reacts to your repo's git history:
- Merge - Two text sprites collide and explode
- Branch - Y-shaped fork appears in the sky
- Tag - Golden version number drops from above
- Matrix rain - Actual diff code rains in the background
For Private Repos
bash
npm run extract -- /path/to/your/repo
# generates git-data.json, drag & drop it into the game
Links
- Live: https://devjiro76.github.io/shot-my-git/
- Source: https://github.com/devjiro76/shot-my-git
---
This was a weekend experiment to make git history more visceral. Every developer has fought bugs — now you can literally shoot them.
Try it with your own repo and let me know your kill count.

Top comments (1)
Well, this is positively bizarre.
Love it.