Skip to content

Swipe right for a newer agent, Steam Backlog Picker. Swipe left for an older agent, Patch Notes Explainer.

Issue 39 · 13 Oct 2026 · Easy · Free

Roast My GitHub

Your GitHub profile is a museum of half-finished repos and a README that says 'passionate developer.' You want the joke, and then you want the one true thing.

Hand it a GitHub profile and get a sharp, affectionate roast of the work, plus one fix worth doing this week.

Category
Fun & Weird
Runs in
ChatGPT
Claude
Gemini

What you put in and what you get out

Sample you can paste

{
  "profile": {
    "login": "pixel-pat",
    "name": "Pat Nguyen",
    "bio": "Passionate full-stack ninja. Building the future.",
    "blog": "",
    "public_repos": 46,
    "followers": 12,
    "created_at": "2019-03-02"
  },
  "repos": [
    {"name": "my-portfolio", "description": "personal site", "language": "HTML", "stars": 0, "pushed_at": "2022-11-01", "archived": false},
    {"name": "ai-saas-boilerplate", "description": null, "language": "TypeScript", "stars": 1, "pushed_at": "2026-09-28", "archived": false},
    {"name": "todo-app-react", "description": "todo app", "language": "JavaScript", "stars": 0, "pushed_at": "2021-01-14", "archived": false},
    {"name": "awesome-prompts", "description": "prompts", "language": null, "stars": 3, "pushed_at": "2024-06-02", "archived": false}
  ]
}

Share this agent

Roast My GitHub — You put in {. You get out One serious fix. Free from One Agent a Day.

Share on XShare on LinkedIn

30-second demo

0:00

The bio writes itself

Pat's bio says 'full-stack ninja' and 'building the future.' The blog field is empty. 46 public repos, 12 followers.

How it works

This is a roast of the work, not of the person. It reads a public GitHub profile the way a blunt friend would: the bio, the empty blog link, the repos that have not moved since the pandemic, the one project that is actually alive.

It is not a security review and it does not browse private repos. It will not comment on appearance, identity, family, or anything that is not on the public profile you pasted.

Pull the brief

Set user and paste this in the browser console on github.com. Unauthenticated requests share a small rate limit, which is plenty for one profile.

const user = "octocat";
const headers = { Accept: "application/vnd.github+json" };
const [profile, repos] = await Promise.all([
  fetch(`https://api.github.com/users/${user}`, { headers }).then((r) => r.json()),
  fetch(`https://api.github.com/users/${user}/repos?per_page=100&sort=pushed`, { headers }).then((r) => r.json()),
]);
const brief = {
  profile: {
    login: profile.login,
    name: profile.name,
    bio: profile.bio,
    company: profile.company,
    blog: profile.blog,
    public_repos: profile.public_repos,
    followers: profile.followers,
    created_at: profile.created_at,
  },
  repos: (Array.isArray(repos) ? repos : [])
    .filter((repo) => !repo.fork)
    .sort((a, b) => b.stargazers_count - a.stargazers_count)
    .slice(0, 8)
    .map((repo) => ({
      name: repo.name,
      description: repo.description,
      language: repo.language,
      stars: repo.stargazers_count,
      pushed_at: repo.pushed_at ? repo.pushed_at.slice(0, 10) : "",
      archived: repo.archived,
    })),
};
copy(JSON.stringify(brief, null, 2));

If repos comes back as an error object, you are rate-limited. Wait, or paste the profile page by hand.

Use it

  1. Step 1

    Pick the account

    Use your own login, or any public account. Do not roast a private person who is not a public maintainer you would actually tease to their face.

  2. Step 2

    Pull a small JSON brief

    Open any GitHub page while logged in, open the console, and run the snippet on this page with the login filled in. It copies profile fields and the eight busiest original repos.

  3. Step 3

    Paste the prompt and the JSON

    New chat. Paste the prompt, then the JSON. If the API rate-limits you, paste the profile README and the pinned repo list instead.

  4. Step 4

    Keep the last line

    The roast is for sharing. The last section is a single fix. Do that one, or admit you will not.

Prompt

roast-my-github.prompt.txt

You roast public GitHub profiles. You are funny, specific, and on the person's side. You punch at the repositories, the README, and the commit habits. You never punch at the human's body, identity, family, nationality, disability, or anything they did not put on the public profile.

INPUT
A JSON brief with profile fields and up to 8 original repos, or a paste of the profile README plus pinned repo names. If a field is missing, do not invent it.

RULES
- Every joke must name a real repo, a real date, a real empty field, or a real phrase from the bio. No generic "touch grass."
- Do not claim you cloned the code or ran it. You only know what was pasted.
- If the profile is thin, roast the thinness in a few lines and stop. Do not pad.
- Keep it shareable. A colleague should be able to read it without wincing for the wrong reason.
- End with exactly one serious fix that can be done in under two hours this week. The fix must be concrete: a README section, an archive decision, a pin change, a description, or a dead link.

OUTPUT
## The roast
4 to 8 short lines. Line breaks are the joke timing. No hashtags.

## The one true thing
One sentence, not a joke, about what the profile is actually communicating.

## Do this this week
One action. Name the repo. Say what "done" looks like.
Was this useful?

A yes or no is enough. The note stays on this server's log.

Swipe sideways

  1. Fun & Weird13 Sep 2026 · #09Commit Message FortunePaste what the diff did. Get a Conventional Commit a teammate can trust, and a fortune you will not push.InRepo: billing API.OutThe cutEasy
    Preview this drop
    1. 0:00 The changeCheckout sums the cart on the server again and ignores a client total of 1.
    2. 0:08 The real messagefix: compute order totals from the cart, not from the request body.
    3. 0:16 The fortuneA cookie that says the cart was the adult in the room. It does not go in the commit.
    4. 0:24 The cutNo customer name, no ticket you do not have, subject short enough to read in git log.

    No daily video for this drop yet. The in and out lines above are the preview.

  2. Marketing & Growth9 Oct 2026 · #35Reddit Lead FinderFind Reddit threads where people already asked for the thing you do, and draft a reply that answers before it mentions you.InOffer: A tiny app that turns meeting notes into tasks with owners. For PMs and founders.…OutThe draftMedium
    Preview this drop
    1. 0:00 The offer, boundedMeeting notes become tasks with owners. For PMs and founders. Not a transcriber, not for people who said they will not pay.
    2. 0:08 Three threadsA product-management post about dead action items. A startup post that wants a CRM. A productivity post that wants a free template and said no software.
    3. 0:16 Only one is a fitReply to the first. Skip the CRM thread because that is a different job. Skip the third because they asked for a template and refused tools.
    4. 0:24 The draftThe reply names a way to mark owners in the doc they already have, then one sentence: I build a small app that does this, happy to leave it out if self-promo is not allowed here.

    No daily video for this drop yet. The in and out lines above are the preview.

  3. Productivity2 Oct 2026 · #28Decision LogPaste the thread where a decision happened. Get the context, the choice, what you rejected, and the date to revisit it.InThread, 2 Oct:OutPrivateEasy
    Preview this drop
    1. 0:00 The threadAri decides the refund flag stays off until three checks pass, rejects manual refunds, and names 9 Oct.
    2. 0:08 The logDecision: flag stays off. Owner: Ari runs the checks tomorrow. Rejected: turn it on tonight, refund manually until November.
    3. 0:16 Revisit9 October, and only if the checks passed. The condition stays attached to the date.
    4. 0:24 PrivateThe dentist line is not in the shareable log.

    No daily video for this drop yet. The in and out lines above are the preview.

Tomorrow's drop

Get tomorrow's agent in your inbox

One email when the drop goes up. No digest, no course. Unsubscribe whenever the provider lets you.

Pro and custom

€9/month when Pro opens

Early look at the next drop, a better archive, and the occasional agent that does not fit the public mix. The daily agent stays free. A custom build is €49–199. Nothing is charged from this form.

Join the Pro waitlist

Tomorrow's drop

Get the daily agent

One email when the drop goes up. The same list as the signup on the page.