Claude Code新Mod:雨姐坐镇终端,帮你拦下危险命令
如果你妄图通过 Claude 执行 rm -rf node_modules,守护一方安宁的雨姐就会把你拦下:“整这死出呢?这命令不好使!想都别想”,面板里“拦下”那一栏记了 +1。Claude 要删目录,雨姐把命令拦在了执行之前。
前两天 Claude Code 更新了 Mod 功能,允许用户自定义界面。本文带大家一步步构建一个“让雨姐陪你写代码”的 Mod:她坐在终端边上,看着 Claude 跑的每一条命令,与你一起喜怒哀乐。这个 mod 也挂在了 git 上。

第一步:给雨姐搭个工位。在 Claude Code 里跟 Claude 说:写一个 Mod,右边给雨姐开个面板,输入框上面放一句她的台词,状态栏写“雨姐在岗”。Claude Code 自带 plugin-authoring 技能,Claude 照着它把 Mod 写进当前会话专属的 ~/.claude/dev-mods/ 目录,写下第一个文件时会问要不要打开热重载,点同意即可。不想让 Claude 代劳,自己建文件夹写也一样,启动时用 claude --plugin-dir ./yujie 加载。核心就三个文件:.claude-plugin/plugin.json(名字、版本、作者)、hooks/hooks.json(告诉 Claude Code 代码在哪)、hooks/register.tsx(真正干活的代码)。hooks.json 只有一行 { "modules": ["./register.tsx"] }。register.tsx 导出一个 register 函数,Claude Code 加载 Mod 时调用一次,雨姐的工位就在这里搭。
Mod 和以前扩展方式的区别:Skill 是给 Claude 的说明书,MCP 是接外部工具,settings 里的 hooks 是在固定时机跑 shell 脚本,它们都站在 Claude Code 外面;Mod 是一段跑在 Claude Code 进程里面的 JavaScript/TypeScript 代码,所以能直接在界面上画东西:贴着对话的面板(Pane)、输入框上方的提示条(AbovePrompt)、底部状态栏,还有角落里几秒就消失的 toast。

它怎么知道何时该画、何时该动?Claude Code 运行时会不停产生事件:会话开始是 session.start,按下回车是 prompt.submit,Claude 要跑命令或改文件是 tool.call,界面要画某一块是 ui.render,一轮回答结束是 turn.complete。Mod 做的事就是在这些事件上挂函数,这些函数叫钩子(hook)。雨姐的工位,就是在 session.start 时打开面板、写好状态栏,再在 ui.render 里把面板内容画出来。调界面时还有个省心的地方:改完代码一保存,Claude Code 里自动冒出一行 yujie: reloaded (7 hooks…),雨姐当场换上新代码,会话不用重启。Mods 要求 Claude Code v2.1.287 以上,终端和桌面 App 的 Code 标签页都能用。
第二步:给雨姐长脸。大多数终端里不能直接贴图片,Mod 给了叫 Raster 的元素,它是一格一格的字符画布。每个格子放一个“▀”(上半块)字符,前景色涂上半格,背景色涂下半格,一个字符格就能装下上下两个像素。画布的内容是一串数字,每个格子三个数:字符、前景色、背景色。words[at] = 0x2580 // ▀ 上半块;words[at + 1] = top // 上面那个像素的颜色;words[at + 2] = bottom // 下面那个像素的颜色。所以我需要的是一张像素图。一开始让 Codex 画了张普通卡通头像,再用程序缩小成像素,结果五官糊成一片。后来干脆让 Codex 直接画成大颗粒、少颜色的像素风,我再写个小脚本按格子取色,一格一格搬进终端,这回就干净了。平静、大笑、生气三张表情用同一个构图,换表情时面板不会跳。搬的过程中也踩了坑:第一次截图,雨姐的暗红 Polo 衫变成了橄榄色,原来是在 tmux 里跑的 Claude Code,它自动降成了 256 色;后来头发又发绿,因为 Raster 会把每个颜色通道压成 16 档,深灰棕被压偏了。最后把头发换成一个压完也不变色的深棕,脸才算定下来。

第三步:让她看见你在干嘛。有了脸,雨姐还得知道你在干嘛,这就要用到 tool.call。Claude 每次要跑命令、改文件,这个事件都会先经过雨姐的钩子,再交给 Claude Code 真正执行。钩子拿到这次调用以后,有三种选择:原样放行、改了再放行,或者干脆自己回答,不放行。雨姐后面几步的本事,都是这三种的组合。这一步用的是最简单的“旁观”:记一笔,换个表情,然后调用 next(e) 放行,命令照常执行。写成代码就是先 await next(e) 让命令跑完,拿到结果再决定雨姐的脸色:
on('tool.call', { tool: 'Bash' }, async ($, e, next) => { const ran = await next(e) // 先放行,命令照常跑 if (ran.isError || /ℹ fail [1-9]/.test(ran.text ?? '')) { await say($, 'angry', '哎呀妈呀,又红了。别慌,大姐在呢') $.ui.toast('雨姐:报错了,瞅瞅日志') } return ran
更多推荐阅读

Muse爆火背后:个人Agent如何获得持久记忆
Meta个人智能体Muse的爆火让95后沈俊潇有些兴奋。三年前他曾在Meta Reality部门,负责为Meta Ray-Ban背后的AI助手提供智能服务。当时还没有Muse项目,但Meta做消费级个人助手的想法早有迹可循。Muse上线5天下载量突破73万,第10天登顶美国App Store免费应用总榜第一,上涨速度超过早期ChatGPT。 沈俊潇博士毕业于剑桥大学,是Memories.ai创始...
2026-10-05
何恺明团队让AI摘掉眼罩,Claude满分打穿AGI考试
何恺明团队新论文VISTA在X上引发关注。论文显示,过去半年顶尖大模型在ARC-AGI-3测试中表现不佳,原因是官方只给模型一张64×64的数字表,相当于让人闭眼听坐标玩游戏。VISTA团队将数字表换回图片,GPT-5.6 Sol分数从13.33跳至47.32;同时看图更省算力,文本版一局烧7190万Token,图片版仅3070万,分数更高。 VISTA核心是给模型配一本无损视觉记忆“相册”,每...
2026-10-05
DeepSeek弹性计算团队扩招资深工程师
DeepSeek弹性计算团队再次大规模招聘,尤其需要资深工程师。三周前刚招过一轮,此次未发岗位JD,而是发布技术分享《DeepSeek弹性计算(DSec):面向大规模Agent训练的沙盒基础设施》。 DSec是支撑DeepSeek-V4全部训练、评测和数据预处理流程的沙盒基础设施。从V3.2到V4.1,Agent训练、评测和数据预处理产生的全部沙盒负载均已运行在DSec上。目前一套DSec扩展分...
2026-10-05
2026年了,AI旅游攻略为何仍不靠谱
国庆前的9月,Personal Agent成为热点。扎克伯格将Muse定位为“personal superintelligence”,称其拥有云端和浏览器,可跨应用完成任务、记住偏好,并在用户退出App后继续工作。OpenAI的Dots也强调主动接管邮件、账单、购物和旅行规划。然而,无论是通用AI助手还是Personal Agent,做旅游攻略都差些意思——看似会做,却不会以人的思路去做。 作者...
2026-10-05
Hinton等20余位AI大牛联合警告:智能爆炸时代将至
由剑桥大学人工智能科学与政策项目发布、二十多名研究者共同撰写的报告,作者包括 OpenAI 首席科学家 Jakub Pachocki、Anthropic 联合创始人 Jack Clark、微软首席科学官 Eric Horvitz,以及 Geoffrey Hinton、Yoshua Bengio 和 Dawn Song 等人。报告并未宣布“智能爆炸”已经发生,而是试图回答:当越来越多 AI 研发工作...
2026-10-05
AI破译433年前教皇密信,50万金币改写法国王室历史
GPT-6 Astra与Claude Opus 5.5几乎同时破译了两封1593年天主教联盟的绝密信件,这是433年来无人能解的密码。信件揭示:法兰西国王亨利四世改宗天主教、登上王座的背后,是一笔高达50万埃居(约合当时法国王室数月财政收入)的政治献金。信中牵出教皇、西班牙王室、法国天主教联盟及罗马权力核心的内部背叛。 两封信写于1593年7月22日,作者是天主教联盟领袖马耶讷公爵的秘书蒂博·德...
2026-10-05