什么是 MonkeyMom:一个 Tampermonkey AI 脚本
关于作者: 工具开发工程师,曾就职于高通与联发科,现独立开发 MonkeyMom。
MonkeyMom 是一个 Tampermonkey AI 脚本:用自然语言描述需求,AI 生成子脚本并在页面直接运行,具备 GM 特权与 Agent 循环,可导出为标准用户脚本继续使用。
大多数用户脚本是别人写好、你来安装的。MonkeyMom 反过来:它是一个会写用户脚本的用户脚本。用自然语言描述你想要的效果,AI 会把它变成一段子脚本,立刻在页面上跑起来——不用上传,不用审核,也不用等脚本作者加功能。
它是脚本工厂,不是脚本
生成流程是怎样的
道理其实很简单。JavaScript 是函数式语言,脚本可以自己构造并运行另一个脚本。在 AI 出现之前,这意味着字符串拼接和反复试错;现在,循环里的「代码生成器」换成了语言模型:
- 你描述任务——「下载这个表格」「隐藏侧边栏」「把这个网站改成暗色」。
- MonkeyMom 带着一份受约束的 GM API 白名单去问模型要脚本。
- 生成的代码作为子脚本注入页面,在特权注入过程中编译,而不是走
eval。 - 能用就保存进脚本列表;不能用就继续改、继续跑。
子脚本拥有完整 GM 特权
这个子脚本不是在沙盒里过家家。它带着脚本管理器的特权运行,可以用 GM.setValue、GM.xmlHttpRequest、GM.openInTab、@resource 资源、菜单命令和通知——和手写的用户脚本拿到的能力完全一样。
Agent 循环,而不是一次提问
观察、决策、执行、再看一轮
一次提问只能处理描述得足够清楚的任务。MonkeyMom 还会跑一个 Agent 循环:观察页面、决定调用哪个工具、执行、看结果、再来一轮。工具刻意做得粗:页面代码统一走一个 execute_script 入口,其余是页面 JavaScript 自己做不到或做不稳的能力:
- 把页面读成 markdown,用
html2canvas截图。 - 跨域请求,绕开 CORS 限制。
- 创建和管理子脚本、技能和对话。
- 在浏览器的 OPFS 工作区和硬盘之间互传文件。
- 任务确实含糊时,反过来问你。
真实标签页里的轻量自动化
由于这个循环驱动的是真实的浏览器标签页,它算一种廉价的浏览器自动化。它不是 Playwright 或无头集群的替代品,而是就在你正用着的标签页里做轻量自动化。
标签页组成的工作台
标签页之间并行拆活
最近的版本把对话列表做成了真正的工作台。任务跑在对话里,Agent 还可以同时打开多个标签页把工作拆开并行执行——每个标签页有独立的任务状态,再用一张交接便条保证任务在跨站跳转后能续上。### 从 URL 直接触发任务
URL 末尾带 #__tm=<JSON> 时,会直接打开对话页并发送指定的 prompt,用书签或别的工具触发都很方便。
兼容性工作为什么重要
各家管理器的行为并不一致
还有大量看不见的工作:实测 GM.* 调用在篡改猴、暴力猴、Stay for Safari 和手机端 Via 上的真实行为。返回值各不相同——有的管理器返回 Promise,有的直接返回元素,有的返回 undefined;GM.xmlHttpRequest 在部分管理器里是纯回调式,await 之后读 .status 会直接抛错。MonkeyMom 记录这些差异,按官方文档对齐 API 白名单,并用按脚本隔离的存储复刻经典 GM_getValue 系列,让旧脚本能直接跑。
导出让你不被绑定
回报是可移植性:子脚本可以导出为标准用户脚本,MonkeyMom 本身在桌面和手机端管理器上都能运行。
现在能用来做什么
日常能用它做什么
- 付费浏览器扩展的免费替代——比如 Safari 上的暗色模式脚本,扩展商店对同样的功能收费。
- 一次性数据提取——从一个没有下载按钮的页面里取出表格,整理干净,再把脚本存下来下次直接用。
- 小型自动化——填表、扫列表、重复点击,关键步骤保留人工确认。
- 给不够用的浏览器 AI 打补丁——浏览器自带的助手够不到页面的时候,带 GM 特权的用户脚本可以。
开始使用
安装并跑第一个任务
从本站安装脚本,打开「AI 对话」标签页,描述你想改动的第一件事。手上已有喜欢的用户脚本,也可以用同样的方式安装——MonkeyMom 会把标准 .user.js 文件作为子脚本运行,安装非自己生成的脚本前会先询问。
生成的脚本归你所有,可以保留、修改和导出。这才是重点:浏览器本来就有脚本引擎,现在它有了给它写脚本的能力。