Roast any developer's public GitHub in the voice of Linus Torvalds, Steve Jobs, Bill Gates, John Carmack, or six other tech icons. Pure satire. Public data only.
$ roaster torvalds --persona=steve-jobs --spice=spicy
ββROASTβββββββββββββββββββββββββββββββββββββββββββββ
β β
β I looked at this GitHub. For a minute. β
β That was enough. β
β β
β β 1,247 repositories. One. Thousand. Two β
β hundred forty-seven. β
β β Not one of them has an app icon. β
β β The most-starred repo is literally called β
β "linux". No creativity. β
β β
β Find the one thing worth keeping. β
β Throw everything else away. β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
A Claude-powered roast generator that turns anyone's public GitHub footprint into shareable comedy in the voice of a chosen tech persona. Ships three ways:
- Claude Code slash command β
/roast grippado --persona=jobs - Claude skill β drop into
~/.claude/skills/and any Claude agent can call it - Standalone CLI β
npx roaster-kit grippado
All three share the same core skill. The CLI is a thin wrapper that calls the Anthropic API with the skill injected as the system prompt.
A web version at roast.gripp.link is on the way β paste a GitHub handle, pick your executioner, get roasted in the browser. See Roadmap.
...
By default, roaster uses Claude Sonnet 4.6 for a good balance of quality and cost. You can opt into Opus with --model=claude-opus-4-7 when you want the premium version.
Works with any Node 20+ package manager. No install needed β run it ephemerally:
# npm
npx roaster-kit <github-username>
# yarn
yarn dlx roaster-kit <github-username>
# pnpm
pnpm dlx roaster-kit <github-username>Prefer a global install?
npm install -g roaster-kit
yarn global add roaster-kit
pnpm add -g roaster-kitThen use either roaster or roast as the command name.
Set ANTHROPIC_API_KEY first (get one here). Optionally set GITHUB_TOKEN to raise the GitHub rate limit from 60/hr to 5000/hr.
By default, roaster-kit uses Anthropic's Claude Sonnet 4.6. You can also use Groq (free tier, 14,400 requests/day, no credit card required):
export GROQ_API_KEY=gsk_...
npx roaster-kit grippado --provider=groqGroq uses Llama 3.3 70B by default. Quality is competitive with Claude for this task; speed is faster.
# from the repo root
cp slash-command/roast.md ~/.claude/commands/roast.md
cp -r skill/roaster ~/.claude/skills/roasterThen in any Claude Code session:
/roast grippado --persona=linus --spice=spicy
cp -r skill/roaster ~/.claude/skills/roasterThen just ask:
"Roast @grippado on GitHub in the style of Steve Jobs"
| Persona | Voice |
|---|---|
linus (default) |
Kernel-dev rigor applied to side-project chaos. Surgical. |
steve-jobs |
Taste-based contempt. Cares about naming, not lint. |
bill-gates |
Memo-era Gates. Metrics. Implied threats. |
trump |
SNL-parody voice. Superlatives and nicknames. No real politics. |
maddog |
UNIX greybeard weariness. "Back in my day..." |
dhh |
Contrarian manifesto. Dismisses the popular AND the obscure. |
carmack |
Terse Twitter-thread voice. Devastating precision. |
terry-davis |
Respectful tribute to the philosophical voice only. |
Want to add one? See skill/roaster/references/persona-template.md.
mildβ PG-13. Lovingly mocking. Default for anyone flagged as a learner.spicy(default) β Reddit-safe. Real jabs.nuclearβ HBO intensity. Stronger language. Still no identity jokes, ever.
reddit(default) β long-form markdown, ready to paste into r/programmingtwitterβ single tweet, β€280 charslinkedinβ ironic "humbled to share" motivational postterminalβ ASCII box for screenshots
Roast material comes from public APIs only:
- GitHub (always, anchor source) β profile, repos, languages, commit cadence, READMEs
- npm (optional) β published packages, downloads, dependency counts
- crates.io (optional) β published Rust crates, versions, downloads
- pkg.go.dev (optional) β published Go modules, importers
Add sources with --sources=github,npm,crates,go.
The skill and CLI enforce these without exception:
- Public data only. No scraping, no private info, no combining sources to dossier someone.
- Punch up or sideways. Never at identity (race, gender, nationality, religion, sexuality, disability, mental health, appearance).
- Consent-first for third parties. If you roast someone who didn't opt in, the skill auto-softens and adds a "commissioned by X" attribution.
- Learners get soft roasts. If the target has <3 public repos or signals they're learning, the skill downshifts to
mildand adds an encouraging closer. - No fabricated stats. Every number, percentage, year, and quoted bio fragment in the roast traces back to fields in the structured data block β enforced in the system prompt with an explicit allowlist of data paths. The stats footer is the credibility anchor.
- Nuclear β ethics off. Nuclear unlocks language intensity. It does NOT unlock slurs, identity jokes, or punching down. Ever.
See skill/roaster/references/safety-examples.md for concrete before/after examples.
Reddit format, Linus, spicy (real output on a real profile):
Roasted by Linus Torvalds Β· spice: spicy
Forty-seven repositories. Forty-one with no description. This is not a portfolio. This is a cache of abandoned attempts.
Three separate dotfiles repos:
dotfiles,dotfiles-old,dotfiles-new. That's not version control. That's archaeology. And thedotfiles-newcommits are all named "update". Update what. Update what.73% of commits happen between 10pm and 4am. I'm not saying don't code at night. I'm saying every one of these late-night commits is followed by a morning commit named "fix". The correlation is doing some work.
Pinned a repo with 412 stars that hasn't been touched since 2021. The README promises "v2 coming soon". Soon is doing a lot of load-bearing work in that sentence.
Rewrite. Start over. Or at least delete the ones you're not going to finish.
Stats: @user Β· 47 repos Β· 39 original Β· JavaScript 87% Β· 8y old Β· night-owl 73%
Generated from public data only. All love, no hate. β€οΈ Β· powered by roaster-kit
Before you roast anyone else, roast yourself. It's the rule.
npx roaster-kit $(git config github.user) --spice=nuclear
# or
pnpm dlx roaster-kit $(git config github.user) --spice=nuclear- v0.1 β Skill + CLI + Claude Code slash command, 8 personas, 4 sources
- v0.2 β
roast.gripp.link: web version. Paste a GitHub handle, pick your executioner, get roasted in the browser. Share-as-image. Rate-limited, no-login. - v0.3 β GitHub Action:
grippado/roaster-actionβ open a PR, get roasted in the PR comments by the persona of your choice. Opt-in per repo. - v0.4 β More personas (community PRs). Candidates: Ada Lovelace, Grace Hopper, Dijkstra, Guido, Rob Pike, the "AI-transformation consultant" satire.
- v0.5 β Team mode: roast a whole GitHub org. For retros that hurt.
Is this mean?
It's a roast. By design it's pointed. But the skill is built from the ground up to punch at patterns (abandoned repos, hype names, commit cadence) instead of at people. If you want a "soft" version, pass --spice=mild.
What if the target isn't in on it? The skill asks once if the target is third-party and consenting. If not, it keeps the spice low and frames the output as "commissioned by @X" satire. If you want to roast someone who didn't opt in at nuclear spice, the skill will refuse.
Can I add a persona?
Yes β drop a markdown file in skill/roaster/personas/ following the template. PRs welcome.
Does this work offline? No β it calls the Anthropic API and GitHub's public API.
How much does it cost per roast? One Claude API call per roast, usually ~2-4k input tokens and ~500-1k output tokens. Call it a fraction of a cent. The GitHub API calls are free (60/hr unauth, 5000/hr with a token).
Why Anthropic and not OpenAI?
Built by a heavy Claude Code user, runs on Claude. You can adapt cli/src/prompt.js to any model with a system-prompt API, but the persona calibrations were tuned against Claude.
- New persona? Follow
persona-template.mdand the quality bar in it. - New data source? Add a collector in
cli/src/collectors/and a matching markdown doc inskill/roaster/collectors/. Public-data-only. - Fixing a bad roast pattern? Add a before/after to
safety-examples.md.
Apache 2.0. See LICENSE.
Built by Gabriel Gripp β also the person behind FlagBridge, a feature flag platform that takes itself more seriously than this project does.
All roasts are satire. All love, no hate. β€οΈ