Tampermonkey AI 脚本:一句话到跑起来
关于作者: 工具开发工程师,曾就职于高通与联发科,现独立开发 MonkeyMom。
AI 写用户脚本不稀奇,稀奇的是不用复制、不用保存、不用安装、不用刷新:MonkeyMom 说完就运行,立刻看到结果,不满意继续说,Agent 自己看结果调整到做成。
现在说「AI 能写用户脚本」,已经不算什么本事了。给任何一个大模型一段网页结构,它都能吐出几十行 JavaScript。
真正难的是这之后的九步。
传统流程:一句话之后还有九步
以前想用一个 AI 生成的脚本,要这样走一遍:
- 描述需求,等 AI 吐出代码
- 打开脚本管理器,点新建脚本
- 把代码从聊天窗口复制出来
- 粘进去,填
@match、@name、@grant - 保存
- 切回目标网页
- 刷新
- 看效果,发现没生效
- 回到编辑器,猜哪里错了,改,再刷新
九步里有八步跟「你真正想解决的问题」毫无关系。更糟的是第八步:你看到的是结果,却看不到原因——脚本是静默失败的,控制台里可能只有一行看不懂的报错。
这就是大多数 AI 脚本工具的真实体验:生成很快,验证很慢。
MonkeyMom 的做法:说完就跑,跑给你看
MonkeyMom 把上面那九步压成一步。
立即生成,立即运行
在网页右下角点开面板,切到「AI 对话」,说一句「把侧边栏那些广告去掉」。生成的子脚本不等你复制、不等你保存、不等你刷新,当场注入当前页面执行。
页面立刻变了。不是一段代码,不是一句「已生成,请安装」,是那个广告真的没了。
立即看到结果
这一点值得单独说,因为它改变了整个交互的性质。
传统流程里,你和 AI 是在讨论代码:AI 说它写了什么,你去读,去猜这段代码跑起来会怎样。
MonkeyMom 里,你和 AI 是在讨论结果:你看到的是页面变成什么样,AI 看到的也是同一份现场——它自己会去读页面、截图、看执行日志。两个人对着同一个画面说话,而不是对着一堆字符串互相揣测。
不对?继续说
广告去掉了,但误伤了正文的一块。不用回去改代码,直接说:「右边那个推荐栏别动」。AI 在新的页面状态上继续改,改完立刻再次生效。
整个过程你在页面里,不切窗口,不用管代码长什么样。
满意就存下来,不满意就算了
确认效果对了,点保存,它才变成一个长期脚本,之后每次打开匹配的网页自动运行。
不保存也行。这一条很重要:试错是零成本的。你可以先看看效果,再决定要不要留下它。
不需要审批,也不需要安装
这是 MonkeyMom 和扩展形态产品最直接的体感差别。
| 步骤 | 扩展形态的产品 | MonkeyMom |
|---|---|---|
| 装一次主程序 | 装扩展,还要去扩展详情里开「允许用户脚本」或开发者模式 | 装一个用户脚本,脚本管理器本来就在用 |
| 每做一个新脚本 | 生成 → 复制 → 粘贴 → 保存 → 刷新 | 说一句,当场生效 |
| 看到效果 | 刷新之后才知道 | 边说边看 |
| 不满意 | 回编辑器改代码 | 继续说,它改 |
| 要不要留下 | 安装即生效,没有中间态 | 先看效果,满意再存 |
扩展这条路要过两道门:装扩展,以及为脚本执行单独开权限。Chrome 和 Edge 上这个「允许用户脚本」的开关藏得比较深,漏掉的表现不是报错,是「什么都没发生」。
MonkeyMom 没有第二个门。脚本管理器本来就是为了跑用户脚本而存在的,MonkeyMom 只是个用户脚本。
Agent 自己调研,自己调整,直到做成
前面讲的还是「你说一句,它改一次」。MonkeyMom 真正不一样的,是它能自己把这件重复的事做完。
它自己看结果
Agent 循环的每一步是:观察页面 → 决定调用哪个工具 → 执行 → 看结果 → 再决定下一步。
「看结果」不是看一眼 HTML 就完事。它可以:
- 把页面读成 markdown,理解结构而不只是标签
- 截图,用视觉确认布局对不对
- 发起跨域请求,把接口数据拉下来核对
- 读执行日志,看脚本有没有报错、报在哪
- 在任务含糊时反过来问你一句
它自己修正
脚本第一次跑,选择器可能失配,可能删多了,可能触发得太晚。这些它都能自己发现——因为结果就在眼前——然后自己改,再跑一遍。
一个真实场景:页面上有一张复杂表格,站点没有提供下载按钮,因为下载是付费功能。你说一句「把这张表导出来」。它会自己写脚本解析 DOM、整理成 CSV、触发下载。中间遇到分页、遇到懒加载、遇到表头跨行,都是它自己一轮轮试出来的,你只需要看最后结果对不对。
它能把大任务拆成并行的活
任务大到一张页面装不下时,主标签页可以开后台标签页分头干:一个 tab 抓竞品价格,一个 tab 翻评论区,各自有独立的任务状态,完成后把结果写回汇总。
跨站跳转也不会断——跳页之前留一张交接便条,新网站在 60 秒内认领,任务接着跑。
这意味着你可以直接把目标说出来,不必先把步骤拆好。
这背后不是巧合,是几处硬功夫
上面这些体验,任何一处做得糙都不会成立。
不走 eval,所以严格 CSP 的站点也能当场跑
子脚本不是用 eval 执行的,而是把用户代码作为源码编进特权注入的 payload,一次编译。严格 CSP 的站点禁掉 unsafe-eval,走 eval 的实现到那里必然失败——而且是静默失败,正好破坏「立即看到结果」这件事。
顶层 await 直接可用,写脚本不用套异步包装。
Safari 上也能当场跑
WebKit 不给扩展插入的元素豁免页面 CSP。MonkeyMom 会读页面已有的 nonce,盯着后来出现的 nonce,实测内联脚本会不会被拦,样式退回不受 CSP 管的 GM_addStyle。
所以「立即看到结果」这句话,在 Safari、Stay、iOS 上的浏览器里同样成立。
GM API 是实测出来的,不是照文档抄的
我们对 57 个 API 在暴力猴、Via、Stay 和 Userscripts 上逐项实测过,返回值类型、回调是否触发、监听器能否注销,全部记录成了公开矩阵。
管理器缺的那部分,桥自己补:资源预取、菜单命令做成面板按钮、通知做成页内 toast、经典存储按脚本隔离。补完的结果是同一段脚本在四家管理器上行为一致——不会出现「在 Chrome 上跑通了,换 Safari 就废了」这种情况。
不登录,密钥自己拿着
不用注册账号,AI 提供方自己配,密钥存在本地加密配置里。也就没有「额度用完等明天」这种打断节奏的事。
和另外两个产品放在一起看
同一个词下面还有 PageMod 和 Robomonkey,三家都在做「AI 写用户脚本」。差别集中在一件事上:从一句话到脚本真正跑起来,中间隔了几步。
| 维度 | PageMod | Robomonkey | MonkeyMom |
|---|---|---|---|
| 生成后生效方式 | 进入预览态,确认后点发布 | 生成后安装 | 当场注入当前页面 |
| 需要刷新页面 | 视情况 | 视情况 | 不需要 |
| 额外权限开关 | 要开「允许用户脚本」或开发者模式 | 无 | 无(脚本管理器自带) |
| 是否要登录 | 要 | 要 | 不要 |
| 浏览器覆盖 | Chromium 系 | 以 Chrome 为主 | 含 Safari、手机端 |
| 严格 CSP 站点 | 依赖扩展注入 | 未说明 | 去 eval + nonce 复用 |
| 自己看结果并修正 | 靠你继续对话 | 靠你继续对话 | Agent 循环自动迭代 |
| 多标签页并行 | ❌ | ❌ | ✅ |
| 脚本市场 | ✅ 脚本与 App 市场 | ✅ 两千余个脚本 | ❌ 没有市场 |
但要客观:它们强在哪
PageMod 的预览、撤销、发布三态做得比 MonkeyMom 细,把改动变成一次可以反悔的实验;App 模式还能造独立的 HTML 小工具。
Robomonkey 的脚本库是它的护城河,两千多个现成脚本按站点分类,还能直接导入 Greasyfork,很多需求连话都不用说。
MonkeyMom 的短板也很明确:没有脚本市场,没有 App 形态,而且依赖宿主脚本管理器。
一句话
别人做的是「AI 帮你写脚本」,MonkeyMom 做的是「你说完,它已经跑完了」。
中间那九步——复制、粘贴、保存、切窗口、刷新、猜报错——一步都不剩。剩下的只有你和那个页面:说一句,看结果,不对再说一句,直到它变成你想要的样子。
这就是为什么它值得单独拿出来讲。