https://github.com/grippado/roaster-kit
Roast any developer's public GitHub in the voice of Linus Torvalds, Steve Jobs, Bill Gates, John Carmack + 4 other tech icons. Pure satire. Public data only. π₯
https://github.com/grippado/roaster-kit
anthropic claude claude-code claude-code-skill claude-skill cli developer-humor github-api open-source roast satire
Last synced: 10 days ago
JSON representation
Roast any developer's public GitHub in the voice of Linus Torvalds, Steve Jobs, Bill Gates, John Carmack + 4 other tech icons. Pure satire. Public data only. π₯
- Host: GitHub
- URL: https://github.com/grippado/roaster-kit
- Owner: grippado
- License: other
- Created: 2026-04-17T03:45:57.000Z (10 days ago)
- Default Branch: main
- Last Pushed: 2026-04-17T06:27:50.000Z (10 days ago)
- Last Synced: 2026-04-17T06:33:54.418Z (10 days ago)
- Topics: anthropic, claude, claude-code, claude-code-skill, claude-skill, cli, developer-humor, github-api, open-source, roast, satire
- Language: JavaScript
- Homepage:
- Size: 70.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# π₯ roaster-kit
> 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. β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
## What is this
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](#roadmap).
## Install
### CLI
...
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:
```bash
# npm
npx roaster-kit
# yarn
yarn dlx roaster-kit
# pnpm
pnpm dlx roaster-kit
```
Prefer a global install?
```bash
npm install -g roaster-kit
yarn global add roaster-kit
pnpm add -g roaster-kit
```
Then use either `roaster` or `roast` as the command name.
Set `ANTHROPIC_API_KEY` first ([get one here](https://console.anthropic.com)). Optionally set `GITHUB_TOKEN` to raise the GitHub rate limit from 60/hr to 5000/hr.
### Claude Code slash command
```bash
# from the repo root
cp slash-command/roast.md ~/.claude/commands/roast.md
cp -r skill/roaster ~/.claude/skills/roaster
```
Then in any Claude Code session:
```
/roast grippado --persona=linus --spice=spicy
```
### Claude skill (Claude.ai or any agent)
```bash
cp -r skill/roaster ~/.claude/skills/roaster
```
Then just ask:
> "Roast @grippado on GitHub in the style of Steve Jobs"
## Personas
| 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`](./skill/roaster/references/persona-template.md).
## Spice levels
- `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.**
## Output formats
- `reddit` *(default)* β long-form markdown, ready to paste into r/programming
- `twitter` β single tweet, β€280 chars
- `linkedin` β ironic "humbled to share" motivational post
- `terminal` β ASCII box for screenshots
## Data sources
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`.
## Hard ethical rules
The skill and CLI enforce these without exception:
1. **Public data only.** No scraping, no private info, no combining sources to dossier someone.
2. **Punch up or sideways.** Never at identity (race, gender, nationality, religion, sexuality, disability, mental health, appearance).
3. **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.
4. **Learners get soft roasts.** If the target has <3 public repos or signals they're learning, the skill downshifts to `mild` and adds an encouraging closer.
5. **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.
6. **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`](./skill/roaster/references/safety-examples.md) for concrete before/after examples.
## Example
**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 the `dotfiles-new` commits 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](https://github.com/grippado/roaster-kit)*
## Roast yourself first
Before you roast anyone else, roast yourself. It's the rule.
```bash
npx roaster-kit $(git config github.user) --spice=nuclear
# or
pnpm dlx roaster-kit $(git config github.user) --spice=nuclear
```
## Roadmap
- [x] **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.
## FAQ
**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](./skill/roaster/references/persona-template.md). 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.
## Contributing
- **New persona?** Follow [`persona-template.md`](./skill/roaster/references/persona-template.md) and the quality bar in it.
- **New data source?** Add a collector in `cli/src/collectors/` and a matching markdown doc in `skill/roaster/collectors/`. Public-data-only.
- **Fixing a bad roast pattern?** Add a before/after to [`safety-examples.md`](./skill/roaster/references/safety-examples.md).
## License
Apache 2.0. See [LICENSE](./LICENSE).
## Credits
Built by [Gabriel Gripp](https://github.com/grippado) β also the person behind [FlagBridge](https://flagbridge.io), a feature flag platform that takes itself more seriously than this project does.
All roasts are satire. All love, no hate. β€οΈ