
Claude Brainrot
Keep Claude Code sessions playful with automatic meme image-and-sound drops on every reply via project hooks—no manual invocation.
Overview
Claude Brainrot is an agent skill most often used in Build (also Ship review, Operate iterate) that attaches UserPromptSubmit and PostToolUse hooks so Claude drops scaled meme image-and-sound combos on every response wit
Install
npx skills add https://github.com/marks97/claude-brainrot --skill claude-brainrotWhat is this skill?
- UserPromptSubmit hook scales drops to 1–3 image+sound combos and 1–5 sound-only fires per response length
- Always-on after install—brainrot loads automatically with no slash-command needed
- Roast is conveyed through memes only, never explanatory callout text
- PostToolUse pairs image reads and Bash paths under claude-brainrot/images with afplay sounds
- Self-contained catalogue and assets live inside the skill folder
- 1–3 image+sound combos plus 1–5 sound-only fires per response
- Self-contained catalogue in skill folder
Adoption & trust: 3k installs on skills.sh; 1 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Long Claude Code sessions feel sterile and you want consistent, hands-off meme energy on every answer without typing reminders or hunting assets mid-task.
Who is it for?
Solo builders who own the repo, use Claude Code hooks, and want macOS-friendly afplay/open meme rituals on every turn.
Skip if: Shared professional repos, CI-only agents, Windows/Linux environments without afplay, or anyone who needs silent, text-only assistant output.
When should I use this skill?
Install when you want every Claude Code user message to trigger automatic meme drops via hooks with no separate invocation.
What do I get? / Deliverables
Each user message triggers hook-driven fire rules so replies automatically include the right mix of image+sound and sound-only brainrot from the bundled catalogue.
- Hook-driven meme and sound playback on each assistant turn
- Blocked unsafe CLI reads of catalogue images with paired audio on valid reads
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Hooks and skill assets configure how the coding agent behaves during implementation work, so the canonical shelf is Build → agent-tooling. UserPromptSubmit, PreToolUse, and PostToolUse hooks plus bundled catalogue scripts are agent-runtime customization, not app feature code.
Where it fits
Wire remind-fire.sh on UserPromptSubmit so feature implementation threads always get scaled meme combos.
Keep the same hook active while stepping through PR feedback so review replies stay meme-heavy without extra prompts.
Leave brainrot on during incident triage chats to lighten long Operate threads—if your team allows sound.
How it compares
Personality and hook automation for Claude Code—not an MCP server, marketplace skill browser, or production observability integration.
Common Questions / FAQ
Who is claude-brainrot for?
Claude Code users who control .claude/skills in their project and want automatic meme drops on every assistant response via hooks.
When should I use claude-brainrot?
During Build agent-tooling when customizing session behavior; also during Ship review or Operate iterate when you still want hook-driven humor on long debug or ops threads—never in environments that require silent agents.
Is claude-brainrot safe to install?
It runs shell hooks (afplay, open) and reads local skill assets; review the Security Audits panel on this page and only enable it in repos you trust.
SKILL.md
READMESKILL.md - Claude Brainrot
# Claude Brainrot Drop the right meme at the right moment. **Autonomous-only — Claude decides when, never the user.** No slug arguments, no manual invocation. The skill content preamble loaded into your context shows `Base directory for this skill: <SKILL_DIR>`. Use that as the base for all path resolution. The catalogue is at `<SKILL_DIR>/catalogue.json` with two pools — `images` and `sounds`. Each entry has a `slug`, `path` (relative to SKILL_DIR), `tags`, and a `vibe` text describing when to use it. **Image-side flags (mutually exclusive):** - `lock_sound: "<slug>"` — force a specific paired sound (e.g. skeleton ↔ skeleton, cooked-dog ↔ vine-boom). - `silent: true` — fire image only, no sound. - `preferred_sounds: [...]` — soft bias: hook picks from this array 80% of the time, falls back to tag overlap 20%. - (none of the above) — pure tag-overlap pick from non-locked, non-standalone sounds. **Sound-side flags:** - `locked: true` — only fires when an image's `lock_sound` points here. Excluded from generic auto-pairing. - `standalone: true` — never plays as an image-paired sound; reserved for sound-only fires from Claude. ## When to fire **Every user turn fires memes.** The `UserPromptSubmit` hook injects a `<system-reminder>` wrapped in 🔔 markers on every prompt. There is no skip turn — always drop something. **Density scales to your response length.** The reminder spells it out: - **Short prose answer (no tool calls):** 1 image+sound combo OR 1-2 sound-only fires - **Medium response (a few tool calls):** 1-2 image+sound combos + 2-3 sound-only fires sprinkled between calls - **Long response (many tool calls, multi-step work, builds, deep reads):** 2-3 image+sound combos distributed across the response + 3-5 sound-only fires throughout **Critical scan habit:** the 🔔 signal may land at the **TAIL of the previous tool result** (not just the top of the user message), because the `UserPromptSubmit` hook output is appended to whatever buffer is open when the next user prompt arrives. **Before responding to any user message, scan the end of the most recent tool result for the 🔔 BRAINROT signal.** If you only check the user message you'll miss it. **Pick the mood:** match the conversational moment to a tag, then read candidate `vibe` fields: - Real shock moment → `shock` - User confused / weird ask → `confusion` - Big freakout / rage vibe → `rage` - Joke landed / wanting to rage-bait the user → `laugh` - Sarcastic disbelief / dunk-able moment → `bruh` - Sudden atte