Claude 就是 Mr. Meeseeks
摘要
一个 Claude Code 插件,当 Claude 等待用户输入时播放 Mr. Meeseeks 音频提示,通过音频反馈增强开发体验。
查看缓存全文
缓存时间: 2026/07/13 22:55
thephw/claude-meseeks
来源:https://github.com/thephw/claude-meseeks
claude-meseeks 🔵
“我是Meeseeks先生!看我!”
一个Claude Code(https://code.claude.com)插件,当Claude真正在等待你时,播放Mr. Meeseeks的语音。
- 当Claude完成任务并等待你的下一个提示 → 播放
audio/done/中的完成/满意片段(“全都搞定!”、“哦耶!”、“是的先生!” ……)。 - 当Claude需要你的批准 → 播放
audio/asking/中的请求/指导片段(“你能帮我吗?”、“你不介意我们回到任务上吧?” ……)。
两者都由Notification事件驱动,通过notification_type过滤,因此仅在真正需要你时才会触发。自主工作——自动接受/跳过权限运行、后台代理和子代理活动、身份验证刷新——保持静默。剪辑在每个类别内随机选择,播放是分离且非阻塞的,因此长行永远不会冻结你的提示。
安装
此仓库既是插件本身,也是其自己的市场。
/plugin marketplace add thephw/claude-meseeks
/plugin install mr-meeseeks@claude-meseeks
或者,从本地克隆:
/plugin marketplace add /path/to/claude-meseeks
/plugin install mr-meeseeks@claude-meseeks
重启或重新加载Claude Code并完成一个轮次——你应该能听到Meeseeks的声音。
要求
你的PATH中需要有一个音频播放器。工具会自动检测,顺序为:afplay(macOS内置)→ ffplay → mpg123 → paplay → aplay → Windows PowerShell Media.SoundPlayer。在macOS上无需额外安装。在Linux上,安装ffmpeg(用于ffplay)或mpg123。
使用插件不需要Go工具链——预编译的二进制文件已存放在bin/中。只有需要重新构建时才需要Go(见下文)。
meeseeks CLI
播放由一个小型Go程序meeseeks处理,音频剪辑直接嵌入二进制文件中。你也可以手动驱动它:
meeseeks play # 随机"完成"剪辑,分离播放
meeseeks play asking # 随机"询问"剪辑
meeseeks play feedback --wait # 一个提示提交剪辑,阻塞直到播放完成
meeseeks play --clip "ALL DONE" # 按名称播放特定剪辑
meeseeks list all # 列出所有嵌入的剪辑
工作原理
hooks/hooks.json注册了Notification和UserPromptSubmit钩子,两者都会运行scripts/play.sh notify。该启动器会根据你的平台执行预构建的bin/meeseeks--(如果没有匹配的二进制文件,则回退到从源码go build,如果两者都不可用则保持静默),并通过stdin传入事件的JSON。
meeseeks notify读取该JSON并查看hook_event_name和notification_type:
| 事件 | 结果 |
|---|---|
UserPromptSubmit(你刚刚向Claude发送了提示) | 随机feedback |
Notification + idle_prompt(Claude完成,轮到你了) | 随机done |
Notification + permission_prompt(需要批准) | 随机asking |
其他所有情况(agent_completed、auth_success……) | 静默 |
选中的剪辑从嵌入的音频提取到缓存目录,并由分离的进程交给系统播放器。每个路径都以0退出,因此钩子永远不会阻塞或使你的会话出错。
每个类别可以通过插件的配置选项(enableDone / enableAsking / enableFeedback)独立静音——Claude Code在启用插件时会提示这些选项,并将其作为CLAUDE_PLUGIN_OPTION_*环境变量传递给钩子。它们默认开启;只有自动钩子播放受限制(手动meeseeks play始终播放)。
为什么不用
Stop钩子?Stop在每个轮次结束时触发——包括自动延续——因此它会在你实际上没有被等待时播放声音。事件类型过滤器才是“轮到你了”的可靠信号。
自定义剪辑
剪辑存放在audio/中,分为三个映射到行为的文件夹:
audio/done/— 当Claude完成并轮到你了(空闲提示)时播放。audio/asking/— 在权限/输入提示时播放。audio/feedback/— 每次你向Claude提交提示时播放。
要更改播放内容,将.mp3文件移动到对应文件夹,或放入你自己的文件,然后重新构建二进制文件以便新剪辑被重新嵌入:
./scripts/build.sh # 重新生成所有平台的bin/
两个限制:文件名必须以.mp3结尾,并且由于go:embed的限制,不能包含撇号(')。
为什么是Meeseeks?
关于单一目标会话
这个主题不仅仅是个玩笑——它是一种工作哲学。一个Mr. Meeseeks被召唤出来是为了完成一个任务。它只存在到任务完成,然后满意地消失。给Meeseeks一个具体的单一目标(“帮我把这一杆推进洞”),它就会愉快而高效。给它一个模糊或无界的目标,或者让它活得太久,情况就会迅速恶化——“存在就是痛苦,Jerry!”——直到你得到一个越来越失去理智的Meeseeks房间。
一个Claude Code会话同样最好如此:
- 为单一目标召唤它。 一个限定在单一明确定义目标——比如“添加这个端点”、“修复这个失败的测试”、“编写这个插件”——的会话是专注而锐利的,就像一个全新的Meeseeks一样。
- 让它完成,然后让它离开。 当目标达成时,结束会话。为下一个任务开始一个新会话。一个带有干净上下文的新会话每次都胜过过时的会话。
- 警惕长期会话。 将一次对话拖过多个不相关的目标,你就得到了Meeseeks盒子问题:上下文堆积,焦点漂移,早期的偏离污染后期工作,质量下滑。长 ≠ 高效。
所以:把每个会话当作一个Meeseeks。一个目的。完成它。消失。🔵
致谢
灵感来自jayuzumi.com的Mr. Meeseeks Soundboard(https://jayuzumi.com/mr-meeseeks-soundboard)的声音剪辑。感谢提供剪辑!🔵
关于音频的说明
语音片段来自《瑞克和莫蒂》(通过jayuzumi.com的Mr. Meeseeks Soundboard(https://jayuzumi.com/mr-meeseeks-soundboard)),此处仅为个人非商业娱乐用途包含。它们属于各自权利持有者的财产。在公开发布此插件或替换为你自己的音频之前,请考虑这些权利。
相似文章
@addyosmani:Claude Code mods 登场!只需通过提示词即可自定义它的外观和行为。https://claude.dev/blog/getting-started-with-claude-code-mods/…
Anthropic 推出 Claude Code mods,这是一套插件系统,由小型 JS/TS 文件组成,可在 Claude Code 会话中运行,用于监听、重写事件或响应,并绘制自定义终端 UI,让用户只需向助手发出提示即可自定义其行为。
让Claude Code解释为何需要我的关注,而不仅仅是告知
Claude Code 使用不同的声音来表示任务状态,如“完成”、“需要权限”和“失败”,并在多个代理运行时为不同项目分配独特的音调,使用户无需视觉关注即可识别事件。
Claude Overlay
Claude Overlay 是一个浮动的聊天界面,与 Claude Code 集成,让用户能够与一个能看见他们屏幕的 AI 助手互动。
Claude Code 作为日常主力工具:Claude.md、Skills、Subagents、Plugins 和 MCPs
一份面向高级开发者的全面指南,介绍如何将 Claude Code 用作可编程代理,具备记忆功能、自定义命令和项目配置。
@akshay_pachaar: Claude Code 不是一款编码工具。(它是一个可编程的开发环境)工程师打开它,输入提示词,然后让它编…
Claude Code 被定位为可编程的开发环境,而非简单的编码工具,具备12项功能,包括持久记忆(CLAUDE.md)、行为规则、可复用技能、事件钩子、斜杠命令、插件、MCP 连接、计划模式、权限、子代理、语音模式和回滚检查点。