什么是 MonkeyMom:一个 Tampermonkey AI 脚本

2026年10月26日李来群李来群

关于作者: 工具开发工程师,曾就职于高通与联发科,现独立开发 MonkeyMom。

MonkeyMom 是一个 Tampermonkey AI 脚本:用自然语言描述需求,AI 生成子脚本并在页面直接运行,具备 GM 特权与 Agent 循环,可导出为标准用户脚本继续使用。

大多数用户脚本是别人写好、你来安装的。MonkeyMom 反过来:它是一个会写用户脚本的用户脚本。用自然语言描述你想要的效果,AI 会把它变成一段子脚本,立刻在页面上跑起来——不用上传,不用审核,也不用等脚本作者加功能。

它是脚本工厂,不是脚本

生成流程是怎样的

道理其实很简单。JavaScript 是函数式语言,脚本可以自己构造并运行另一个脚本。在 AI 出现之前,这意味着字符串拼接和反复试错;现在,循环里的「代码生成器」换成了语言模型:

  1. 你描述任务——「下载这个表格」「隐藏侧边栏」「把这个网站改成暗色」。
  2. MonkeyMom 带着一份受约束的 GM API 白名单去问模型要脚本。
  3. 生成的代码作为子脚本注入页面,在特权注入过程中编译,而不是走 eval。
  4. 能用就保存进脚本列表;不能用就继续改、继续跑。

子脚本拥有完整 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 文件作为子脚本运行,安装非自己生成的脚本前会先询问。

生成的脚本归你所有,可以保留、修改和导出。这才是重点:浏览器本来就有脚本引擎,现在它有了给它写脚本的能力。