git-roast analyzes your git commit history and roasts you based on your coding habits. 9,997 hand-crafted Korean roast templates (9,494 analysis + 503 closing) across 10 categories, each with 700–1,000+ templates. No AI, just pure judgment.
brew tap justn-hyeok/tap
brew install git-roast# Install globally
deno install --allow-run --allow-net --allow-read --allow-env \
-n git-roast \
https://raw.githubusercontent.com/justn-hyeok/git-roast/main/main.ts
# Or run directly without installing
deno run --allow-run --allow-net --allow-read --allow-env \
https://raw.githubusercontent.com/justn-hyeok/git-roast/main/main.tsdeno add @justn-hyeok/git-roastGrab a prebuilt binary from Releases (macOS / Linux / Windows):
chmod +x git-roast
./git-roast# Roast the current repo
git-roast
# Roast a specific local repo
git-roast --path /path/to/repo
# Roast a GitHub user
git-roast <username>
# Roast a GitHub repo
git-roast --repo owner/repo
# Limit analysis to the last 100 commits
git-roast --limit 100
# Disable color output (for piping/redirects)
git-roast --no-color| Flag | Description | Default |
|---|---|---|
--path <path> |
Path to a local git repo | Current directory |
--repo <owner/repo> |
Analyze a GitHub repo | - |
<username> |
Analyze a GitHub user | - |
--limit <n> |
Max commits to analyze | 500 |
--no-color |
Disable ANSI colors | false |
--help, -h |
Show help | - |
--version, -v |
Show version | - |
| # | Category | What it checks |
|---|---|---|
| 1 | 💬 Commit Messages | Ratio of meaningless messages like "fix", "wip", "asdf" |
| 2 | 🌙 Time Patterns | Late-night and weekend commit frequency |
| 3 | 🔁 File Churn | Files modified an unreasonable number of times |
| 4 | 💣 Commit Size | How many lines you change per commit |
| 5 | 🌱 Streak | Consecutive commit days and gaps |
| 6 | 👥 Contributors | Solo wolf or team player? |
| 7 | 🚨 Force Push | Detected force push events from reflog |
| 8 | 🕒 Commit Frequency | Time gaps and irregularities between commits |
| 9 | 🌐 Languages | Primary languages based on file extensions |
| 10 | 🌲 Branches | Branch count, merge ratio, zombie branches |
Each finding is assigned one of four severity levels:
[~]mild |[!]medium |[!!]savage |[!!!]legendary
git log --> 10 Analyzers --> Severity Assignment --> Random Roast Template --> Formatted Output
- Collect -- Read git log (local or GitHub API)
- Analyze -- Run 10 independent analyzers, each producing a severity + stats
- Roast -- Pick a matching template from 9,997 hand-crafted Korean roast lines
- Output -- Format with severity indicators and color
No LLMs. No network calls (unless analyzing a GitHub repo). Just deterministic, statistically-backed insults.
- Fork and create a branch
- Make your changes
- Write tests (
deno task test) - Open a PR
Roast template contributions are especially welcome! Add yours to src/roasts/templates.ts. The funnier and more brutal, the better.
# Development commands
deno task dev # Run in dev mode
deno task test # Run tests
deno task lint # Lint
deno task fmt # Format
deno task coverage # Check coverageYour commit history doesn't lie. git-roast just reads it out loud.
