Git Gud
Note: Our video is an instagram reel on the "GitGudWithUs" instagram account. The attached youtube video is a placeholder as we cannot put the instagram reel link on this submission.
A VS Code extension that watches every commit, push, and merge, then roasts you for it like a toxic esports coach who drew the short straw and got assigned to a software dev.
Force-push to main? Bombardiro Crocodilo wouldn't ship that. Commit message says "a"? Negative aura. Six commits in eight minutes? The crowd is in shambles.
Behind the brainrot it's a real coaching tool: every Git event is scored, ranks climb (or fall) on a Bronze to Diamond ladder, and a Weekly Hygiene Report quantifies how unhinged your week actually was.
Features
Roasts and hype
- 5 AI providers - Gemini (default), Claude, ChatGPT, Grok, Ollama. Strict per-provider model dropdown in the sidebar; each provider stores its own key + model so switching never loses state.
- Tag-based meme/trend selection - every Git crime maps to a curated subset of 13 internet/gaming/brainrot vocab categories (
destructive,chaotic,cringe,tryhard,dramatic,absurd,lazy). The AI sees only the registers that fit the actual offense - no random brainrot in a force-push roast. - Positive feedback (hype) - clean commits trigger a celebratory in-voice message instead of silence.
- Reaction images - the AI picks a contextually appropriate reaction image from a curated pool and surfaces it in the sidebar's Latest Roast card.
Gamification
- Rank ladder - Bronze → Silver → Gold → Platinum → Diamond, with promotion/demotion notifications.
- 20 achievements unlocked from real Git behavior (clean streaks, force-push counts, late-night commits, etc.).
- 7 personality archetypes classified from your aggregate stats.
- Per-block merge conflict tracking - individual roasts for each resolution decision when you're in a conflict.
Sidebar dashboard
Rank → Latest Roast → Source Control → Recent Offenses → Achievements → Stats → Actions → Settings. Every collapsible card persists state. Brand palette (lime / hot pink / dark) renders identically on light and dark themes.
In-sidebar Source Control
Branch dropdown (local + remote, confirm-on-switch), AI-generated commit messages with a clean (Conventional Commits) / savage (toxic-coach) tone toggle, split Commit / Commit & Push / Amend Last Commit button, live changes list. Auto-stages on commit; auto-sets upstream on first push; Pull & Retry on non-fast-forward.
Audio + share
- Sound effects -categorised by score impact: positive deltas play a random sound from
media/sounds/Good/, negative deltas frommedia/sounds/Bad/. Volume slider in Settings (0–100%, defaults to 30%). - Rank-card export (
gitgud.exportRankCard) - 1200×630 SVG "rap sheet" with rank, archetype, top crimes; one click to share to X. - Weekly Hygiene Report (
gitgud.weeklyReport) - webview panel with 7-day metrics (commits, force-pushes, pushes to main, merge conflicts, branch switches, avg commit size, score delta, savage roast rate, clean streak), each with roast captions.
Setup
npm install
npm run build
Open packages/vscode in VS Code and press F5 to launch the Extension Development Host. Open or create a Git repo in the dev window — the sidebar shows up under the Git Gud activity-bar icon.
Configure your AI provider in the sidebar's Settings card. Drop your key in, pick a model, save. Roasts kick in on the next Git event.
Architecture
Monorepo with npm workspaces plus a static landing site:
packages/core- pure logic: Git event analysis, scoring, roast selection, achievements, personality, weekly metrics. No VS Code or DOM dependencies. Owns the meme taxonomy (memes.ts), the verdict→tag bridge (VERDICT_TAGS), and per-provider AI clients (roasts/{ollama,gemini,claude,openai,xai}.ts) that share prompt construction viaprompt-shared.ts.packages/vscode- the extension. Detects Git events (filesystem watcher on.git/), renders the sidebar, fires notifications and sounds, drives the in-sidebar Source Control card via the built-invscode.gitAPI.packages/web- Next.js companion app with/api/leaderboardand/api/syncroutes plus frontend pages (landing, profile, leaderboard, roast-card, wrapped). In-memory storage; no DB.site/- static marketing landing page (singleindex.html+styles.css) auto-deployed to GitHub Pages.
Commands
| Command | What it does |
|---|---|
Git Gud: Show Dashboard |
Focus the sidebar |
Git Gud: Run Demo |
Replay scripted events for a pitch demo |
Git Gud: Export Rank Card |
Save a shareable SVG rap sheet |
Git Gud: Weekly Hygiene Report |
Open the 7-day metrics panel |
Git Gud: Share Stats to Team |
Sync stats to the team leaderboard |
Git Gud: Reset Stats |
Wipe your scoring state |
Git Gud: Toggle Sound |
Quick toggle for sound effects |
Built With
- css
- gh-actions
- gh-pages
- html
- javascript
- next.js
- node.js
- react
- typescript
- vscodeextentionapi
- web-audio-api
Log in or sign up for Devpost to join the conversation.