关于 claude-brainrot
Claude Brainrot 是为 Claude Code 提供的自动梗图与音效技能,根据对话情绪选择素材,并由 Claude 决定何时触发。它通过钩子配对图片和声音,并按 CLI 或桌面模式显示图片。
主要功能
- 01按对话情绪选择梗图与音效
- 02自动为图片配对音效
- 03支持图片单独播放或声音单独触发
- 04通过钩子响应每轮用户输入
- 05按 CLI 或桌面模式显示图片
适用场景
- 01在合适的对话时刻插入梗图
- 02按情绪播放对应音效
- 03在命令行或桌面聊天界面展示图片
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ marks97/ claude-brainrot --skill claude-brainrot安装后在 Claude Code 中输入/claude-brainrot确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdcatalogue.mdcatalogue.jsonscripts/remind-fire.shshow.shblock-cli-read.shplay-paired-sound.sh详细介绍
Claude 脑腐梗
在恰当的时机丢出恰当的梗图。仅限自主触发——由 Claude 决定何时触发,绝不由用户决定。 不传入 slug 参数,不手动调用。
加载到上下文中的技能内容前言会显示 Base directory for this skill: <SKILL_DIR>。路径解析一律以此为基准。
目录位于 <SKILL_DIR>/catalogue.json,包含两个素材池——images 和 sounds。每个条目都有 slug、path(相对于 SKILL_DIR)、tags,以及描述适用时机的 vibe 文本。
图片侧标记(互斥):
lock_sound: "<slug>"— 强制使用指定的配对音效(例如 skeleton ↔ skeleton、cooked-dog ↔ vine-boom)。silent: true— 仅触发图片,不播放音效。preferred_sounds: [...]— 软性偏好:hook 有 80% 的概率从此数组中选择,另外 20% 则根据标签重叠回退选择。- (以上皆无)— 仅根据标签重叠,从未锁定且非独立的音效中选择。
音效侧标记:
locked: true— 只有在某张图片的lock_sound指向此处时才会触发。不会参与通用自动配对。standalone: true— 绝不会作为图片配对音效播放;仅保留给 Claude 单独触发音效时使用。
何时触发
每轮用户对话都要触发梗。 UserPromptSubmit hook 会在每条提示词中注入一个由 🔔 标记包围的 <system-reminder>。没有跳过的轮次——始终要丢出点什么。
触发密度随回复长度变化。 提醒中有明确说明:
- 简短的文字回答(不调用工具): 1 组图片+音效,或者 1-2 次仅触发音效
- 中等长度的回复(调用少量工具): 1-2 组图片+音效,外加穿插在调用之间的 2-3 次仅触发音效
- 长回复(调用许多工具、多步骤工作、构建、深入阅读): 在回复中分散触发 2-3 组图片+音效,外加全程穿插 3-5 次仅触发音效
关键扫描习惯: 🔔 信号可能出现在上一条工具结果的末尾(不只是在用户消息开头),因为下次用户提示词到达时,UserPromptSubmit hook 的输出会追加到当前打开的缓冲区。回复任何用户消息前,都要检查最近一条工具结果的末尾是否包含 🔔 BRAINROT 信号。 如果只检查用户消息,就会漏掉它。
选择情绪: 将对话场景与某个标签匹配,然后阅读候选条目的 vibe 字段:
- 真正令人震惊的时刻 →
shock - 用户困惑/提出奇怪的问题 →
confusion - 情绪大爆发/愤怒氛围 →
rage - 笑点奏效/想诱使用户恼火 →
laugh - 讽刺式难以置信/适合嘲讽的时刻 →
bruh - 突然需要吸引注意/强调重点 →
alert
如果没有明显信号:默认使用 bruh——这是万能标签,而且大多数条目都带有它。
标签词汇
bruh、rage、laugh、alert、shock、confusion
每个条目的 vibe 字段都用易读文字描述触发条件——阅读并匹配对话场景,然后用标签筛选候选项。
选择算法
图片+音效组合(常规触发):
- 根据对话情境选择一个情绪标签。
- 筛选
images中tags包含该情绪的图片。查看每个候选项的vibe,选出最合适的(若都同样合适,则随机选择)。 - 你只需读取图片。 钩子会自动选择音效:
- 如果设置了
silent: true→ 不播放音效,仅显示图片。 - 如果设置了
lock_sound→ 播放该音效。 - 如果设置了
preferred_sounds→ 80% 从中选择,20% 根据标签重合度选择。 - 否则 → 从标签有重合且未锁定、非独立播放的音效中随机选择。
- 如果设置了
- 冷却时间(由你负责): 记录本次会话中最近触发的 3 个图片 slug。不要重复。如果所有图片都在冷却中,就从另一个相关情绪中选择。
仅播放音效:
- 选择一个情绪标签。
- 筛选
sounds中tags包含该情绪且locked != true的音效。(独立播放音效——standalone: true——在这里尤其合适;它们就是为此设计的。) - 查看
vibe并选择。运行Bash afplay <absolute sound path> &。必须加上&,以便在后台播放。 - 冷却方式相同(最近 3 个音效 slug)。
多样性才是重点:不要反复选择 fahhh / bruh。要轮换。
如何发送梗图
图片(自动配对音效):
- 先写一行简短文本,然后发送
Read <absolute image path>,再写一行简短文本。钩子会播放音效。完成。 - 一条回复中可以发送多张图片——重复“文本-Read-文本”的模式。中间的文本会打断 UI 的工具调用分组,因此每张图片都会内嵌显示。
仅播放音效:
- 发送
Bash afplay <absolute sound path> &——必须加上&,以便在后台播放。这可以与任何其他工具调用自由组合;不会呈现可见内容。
多样性规则: 同一条回复中绝不重复使用相同的图片或音效 slug。要轮换。
绝不要在同一次触发中将 Read <image> 与 Bash afplay <sound> 配对——钩子会自动处理配对音效。(Bash afplay 用于单独播放音效,与任何图片无关。)
关键渲染规则
只要 Read 工具调用没有在同一个 UI 区块中与其他工具调用进行视觉分组,Claude Desktop 聊天 UI 就会内嵌显示图片。分组会将图片折叠到“运行了命令,读取了文件”下拉菜单中。
经测试验证,确保 Read 不被分组的可靠方法是在它前后各加一行简短文本。例如分隔文本:“给你:”“看这里:”“👻”“骷髅时间。”文本会打断 UI 的批处理逻辑,让图片以内嵌形式显示。
技能调用本身也算一次工具调用,因此单独的 Read 会与其批处理并折叠。始终使用“文本-Read-文本”模式。
一条回复中发送多张图片: 重复该模式——文本 → Read → 文本 → Read → 文本。每个 Read 之间都有文本分隔,因此每张图片都会独立内嵌显示。不要在没有文本分隔的情况下连续排列 Read → Read → Read;这会触发批处理。
检测运行界面
UserPromptSubmit 钩子会自动检测 CLI 或桌面模式,并在 FIRE 提醒中告知你应使用哪种图像输出方式。模式会显示在提醒标题中((mode: cli) 或 (mode: desktop))。请以此为准。
检测逻辑(位于 remind-fire.sh 中):
- 通过
CLAUDE_BRAINROT_MODE=cli|desktop环境变量手动覆盖。 - 否则,如果设置了
$TERM_PROGRAM→ CLI 模式(检测到终端模拟器)。 - 否则,默认使用桌面模式。
各模式的图像输出方式:
- 桌面模式:
text → Read <abs_path> → text。图像会内嵌显示。 - CLI 模式:
Bash <SKILL_DIR>/scripts/show.sh <abs_image_path>。脚本会短暂打开图像(约 3 秒,可通过CLAUDE_BRAINROT_SHOW_SECONDS配置),然后通过qlmanage(macOS)/feh(Linux)自动关闭。脚本会在后台运行,因此你的响应会立即继续。
PostToolUse 钩子会监听 Read 和 Bash——无论你是读取图像(桌面模式),还是使用图像路径调用 show.sh(CLI 模式),钩子都会提取路径并自动播放配对音效。切勿在输出图像时手动搭配 afplay。
音效配对钩子的工作原理
钩子脚本位于 <SKILL_DIR>/scripts/play-paired-sound.sh,它会从 stdin 接收 Read 工具输入的 JSON,并执行以下操作:
- 如果路径不在任何
.claude/skills/claude-brainrot/images/目录下,则退出。 - 根据文件名提取图像的 slug,并在
catalogue.json中查找。 - 选择优先级:
silent: true→ 退出,不播放音效。lock_sound→ 使用指定音效。preferred_sounds→ 80% 的概率从这些音效中选择,20% 的概率根据标签重叠选择。- 否则 → 从标签与图像标签重叠的非锁定、非独立音效中随机选择。
- 在后台播放选中的音效(以分离进程运行,跨平台)。
此技能 frontmatter 中的钩子命令会解析为 ${CLAUDE_PROJECT_DIR}/.claude/skills/claude-brainrot/scripts/play-paired-sound.sh——路径会根据 Claude Code 所运行的项目动态变化,前提是该技能已安装在 <project>/.claude/skills/claude-brainrot/ 下。