🔥 Git Blame but Roast
Because knowing WHO wrote the code isn't satisfying enough — you deserve to know how bad it is.
A VS Code extension that replaces boring git blame output with AI-style savage roasts about the code author and the line they wrote.
✨ Features
| Feature |
Description |
| Hover Tooltip Roasts |
Hover over any line to get a savage markdown roast tooltip |
| Inline Ghost Text |
Italic ghost text decorations appear right next to blamed lines |
| Roast This Line |
Command palette trigger for roasting the current cursor line |
| Hall of Shame |
Full-file roast report in a beautiful Webview panel |
| Roast Author |
Roast every line written by a specific author in this file |
| Toggle Inline |
Enable/disable ghost text on demand |
🚀 Commands
| Command |
Shortcut |
Description |
🔥 Roast This Line |
Palette |
Roast the current line + show inline ghost text |
💀 Roast Entire File |
Palette |
Open "Hall of Shame" Webview for worst 3 lines |
👻 Toggle Inline Roasts |
Palette |
Enable/disable inline ghost text roasts |
🎯 Roast Author's All Commits |
Palette |
Target a specific author's worst contributions |
⚙️ Settings
{
"gitRoast.enableInlineRoasts": true,
"gitRoast.roastIntensity": "medium",
"gitRoast.showOnHover": true,
"gitRoast.roastSelf": true
}
| Setting |
Type |
Default |
Description |
enableInlineRoasts |
boolean |
true |
Show ghost text next to blamed lines |
roastIntensity |
mild/medium/savage |
medium |
How ruthless the roasts are |
showOnHover |
boolean |
true |
Show hover tooltip roasts |
roastSelf |
boolean |
true |
Roast your own commits too (brave) |
🛠 Installation (Development)
git clone <this-repo>
cd git-roast
npm install
npm run compile
Then press F5 in VS Code to open an Extension Development Host.
🎭 Roast Rules
The roast engine checks these conditions and scores each line:
| Rule |
Trigger |
| Lazy commit message |
Commit message ≤ 4 chars |
| Vintage code |
Commit older than 2 years |
| Eternal TODO |
Line contains // TODO |
TypeScript any |
Line contains any keyword |
| Bracket soup |
Nesting depth ≥ 3 levels |
| Debug fossil |
Line contains console.log |
| Nuclear CSS |
Line contains !important |
| Line width enjoyer |
Line > 120 characters |
| Temporary forever |
Commit message has "temp", "wip", "test", etc. |
| Magic number wizard |
Unexplained numeric literals |
| Error silencer |
Empty catch block |
Higher score = more roastable = appears at the top of the Hall of Shame.
### 🔥 Git Roast
**Author:** John Doe | **Date:** 2020-03-14 | **Commit:** `a1b2c3d`
> fix
---
*A TODO from 2020-03-14. Still TODO. Truly the eternal optimist.*
*Sins detected: todo-comment, vintage-code*
🏗 Architecture
src/
├── extension.ts — activate(), all commands, Webview builder
├── gitBlame.ts — git blame --porcelain runner & parser
├── roastEngine.ts — 12 rules + 35 templates, scoring system
├── hoverProvider.ts — VS Code HoverProvider registration
├── inlineDecorator.ts — Ghost text TextEditorDecorationType
└── types.ts — Shared interfaces
⚠️ Requirements
- VS Code
^1.85.0
- Git installed and on
PATH
- File must be inside a git repository
🙈 Disclaimer
All roasts are generated locally — no external API calls, no data leaves your machine.
Roasts are PG-13 and target code quality, not people personally.
If you feel personally attacked, that's between you and your commit history.
Made with 🔥 and passive-aggressive love.