Lite Monkey:轻量级用户脚本与用户样式管理器 #
Lite Monkey 是什么? #
Lite Monkey 是一款基于 Manifest V3 规范构建的轻量级用户脚本(Userscript)与用户样式(UserStyle)管理器,同时支持 Chrome、Edge、Brave、Vivaldi 和 Firefox 等主流浏览器。它兼容 Greasemonkey / Tampermonkey 风格的 .user.js 脚本与 .user.css 样式,让你无需修改任何网站源代码,就能为任意网页注入自定义脚本逻辑或外观样式。
对于希望去除页面广告、增强站点功能、自动化重复操作,又不愿安装体积庞大、代码不透明的扩展的用户来说,Lite Monkey 提供了一个可读、可审计的替代方案:整个项目采用纯 JavaScript ESM 编写,不使用 webpack、rollup 等打包器,源码结构即为运行代码结构;同时通过隔离世界(Isolated World)与逐页 pageToken 机制,在保证脚本能力的同时收紧权限边界。
Lite Monkey 有哪些亮点特色? #
- 轻量纯净,无打包器:项目采用纯 JavaScript ESM 编写,不依赖任何 bundler,源码目录结构与最终运行代码一一对应,体积小、可读性强,便于开发者逐行审计与二次修改。
- 同时支持 UserScript 与 UserStyle:兼容 Greasemonkey / Tampermonkey 风格的
.user.js脚本,并原生支持.user.css样式文件;对于未声明@match的用户样式,会自动解析@-moz-document规则完成匹配。 - 严格的 @grant 权限控制:只有脚本头部明确列出的 API 才会被暴露到页面上下文,并被子后台处理器接受,从机制层面限制脚本越权访问浏览器能力。
- 智能脚本安装拦截:对
.user.js的顶层导航会自动打开安装界面;自动识别raw.githubusercontent.com与 Greasy Fork CDN 的脚本链接,同时避免误拦截 GitHub 的 blob HTML 页面,并要求下载内容为 JavaScript 或text/plain。 - SPA 站点自动重新匹配:监听 History / URL 变化,页面路由切换后自动重新执行匹配规则,为新增匹配的页面注入脚本与样式,单页应用无需手动刷新。
- 隔离世界安全通信:隔离世界中的
bootstrap.js通过每页面独立的pageToken与 MAIN 世界的gm-api-provider.js通信,使用 CustomEvent 上行而非宽松的postMessage('*'),降低页面脚本劫持风险。 - 跨浏览器差异化实现:Chrome 端使用模块化 Service Worker 并借助 offscreen document 处理 XHR 与剪贴板操作;Firefox 端使用事件页(
background.scripts+service_worker+"type": "module"),在无 offscreen 支持时于 worker 中直接执行 XHR。 - 内置编辑器与备份同步:集成 CodeMirror 6 编辑器、Prettier 格式化、GM 存储面板,以及使用与注入流程相同匹配引擎的 URL 测试器(含正则
@include);支持本地导入导出,并可通过 Google DriveappDataFolder同步customUrls与sourceUrl(站点排除与更新地址)。

免费下载 Lite Monkey #
以下为官方提供的安装包,点击链接即可下载。
| 文件名 | 描述 | 大小 | 下载 |
|---|---|---|---|
| Lite Monkey.crx | Chrome / Chromium 系浏览器扩展安装包 | 627.6 KB | 夸克网盘 |
提示:Lite Monkey 为 MIT 协议开源项目,除上述打包文件外,也可直接从 GitHub 仓库获取源码,按官方指引自行构建 Chrome 或 Firefox 版本。
Lite Monkey 如何使用? #
- 安装并启用扩展:在 Chrome / Edge / Brave / Vivaldi 中安装 Lite Monkey 扩展(或从源码加载已解压的扩展程序),安装完成后浏览器工具栏会出现 Lite Monkey 图标。
- 安装用户脚本:直接访问以
.user.js结尾的脚本链接(例如来自raw.githubusercontent.com或 Greasy Fork CDN),Lite Monkey 会自动拦截并打开安装界面,确认后即可完成安装;也可以在扩展面板中手动新建或粘贴脚本内容。 - 管理脚本与样式:在扩展面板中查看已安装的脚本和样式列表,可按需启用、禁用、编辑或删除。未声明
@match的用户样式会自动依据@-moz-document规则生效。 - 使用内置编辑器调试:点击脚本进入 CodeMirror 6 编辑器,可借助 Prettier 快速格式化代码;通过 URL 测试器输入目标网址,即可查看当前哪些脚本会命中(测试器使用与真实注入完全相同的匹配引擎,包含正则
@include)。 - 备份与同步:在设置中执行本地导入 / 导出以备份脚本配置,或连接 Google Drive 使用
appDataFolder同步customUrls与sourceUrl,在多台设备间保持一致的站点排除列表与更新地址。
Lite Monkey 的常见问题 #
Lite Monkey 和 Tampermonkey 有什么区别?
Lite Monkey 定位为轻量级替代品,采用 Manifest V3 与纯 JavaScript ESM 编写,不使用打包器,源码更易审计;同时提供严格的 @grant 白名单机制和基于 pageToken 的隔离世界通信,权限边界更清晰。它兼容常见的 Greasemonkey / Tampermonkey 风格 .user.js 脚本。
为什么点击 GitHub 上的脚本链接没有弹出安装界面?
因为 GitHub 的 .user.js 链接指向的是 blob HTML 页面,而非脚本原文。Lite Monkey 不会拦截 HTML 页面,只会拦截 raw.githubusercontent.com、Greasy Fork CDN 等直接返回脚本内容的地址,且要求下载内容为 JavaScript 或 text/plain 类型。请改用对应文件的 Raw 直链。
脚本里调用了 GM_ API 却提示未定义怎么办?*
Lite Monkey 会强制执行 @grant 白名单——只有脚本头部 @grant 明确列出的 API 才会暴露到页面并被后台处理器接受。请在脚本元数据中补充对应的 @grant 声明后重新安装。
在单页应用(SPA)中切换路由后脚本失效了?
不会。Lite Monkey 监听 History 与 URL 变化,路由切换后会重新执行匹配规则,并为新命中的页面注入对应的脚本和样式。如果仍然未生效,请用内置 URL 测试器确认该地址是否被脚本的 @match / @include 规则覆盖。
Firefox 重启后扩展消失了?
这是 Firefox 临时附加组件的正常行为——通过 about:debugging 加载的临时扩展会在浏览器重启后被清除,需要重新加载。如需长期使用,建议使用 Firefox 版本的 zip 包并按常规扩展方式安装(参考官方构建说明)。
如何确认脚本运行结果是可预期的?
建议先运行项目自带的测试套件 npm test(执行 node --test tests/*.test.js,无需额外测试运行器),覆盖范围包括元数据解析、match / @include 规则、@grant 允许列表、origin / @connect / cookie 主机校验、安装器 DNR 正则、脚本 Content-Type 白名单、备份字段映射以及 UserStyle 的 @-moz-document 推断。
Lite Monkey 如何安装? #
Chrome / Chromium(含 Edge、Brave、Vivaldi) #
方式一:直接加载源码目录
- 克隆或下载 Lite Monkey 仓库,得到项目文件夹。
- 打开浏览器扩展管理页(Chrome 为
chrome://extensions)。 - 打开右上角的「开发者模式」。
- 点击「加载已解压的扩展程序」,选择仓库根目录即可。
仓库根目录的
manifest.json即为 Chromium 版本的清单文件。
方式二:使用构建产物
- 在项目目录执行
npm run build(Linux / macOS)或npm run build:win(Windows)。 - 解压生成的
build/lite-monkey-chrome-v1.0.0.zip。 - 在
chrome://extensions中开启开发者模式,选择「加载已解压的扩展程序」并指向解压后的目录。
方式三:安装打包好的 .crx
直接使用本文「免费下载」区域提供的 Lite Monkey.crx 安装包进行安装(部分浏览器可能需要在扩展管理页中手动拖入文件)。
Firefox #
- 注意:仓库根目录的
manifest.json不是 Firefox 的清单文件,请使用 Firefox 专用构建包(构建脚本会将manifest.firefox.json复制为manifest.json)。 - 执行
npm run build:win(Windows)或npm run build(Linux / macOS)。 - 解压生成的
build/lite-monkey-firefox-v1.0.0.zip。 - 打开
about:debugging#/runtime/this-firefox,点击「临时载入附加组件…」,选择解压目录中的manifest.json。 - 注意:临时附加组件会在 Firefox 重启后被清除,需重新加载。
开发者环境 #
- 安装 Node.js 后执行
npm test运行测试套件(node --test tests/*.test.js,ESM,无额外测试运行器依赖)。 - 打包命令:
npm run build(Linux / macOS,调用package-extensions.sh)或npm run build:win(Windows,调用package-extensions.ps1)。 - 输出路径为
build/lite-monkey-chrome-v1.0.0.zip与build/lite-monkey-firefox-v1.0.0.zip。
Lite Monkey 如何卸载? #
Chrome / Edge / Brave / Vivaldi #
- 在地址栏输入
chrome://extensions(Edge 为edge://extensions,Brave 为brave://extensions)进入扩展管理页。 - 找到列表中的 Lite Monkey。
- 点击卡片上的「移除」按钮并确认。
Firefox #
- 打开
about:addons,切换到「扩展」标签页。 - 找到 Lite Monkey,点击「移除」。
- 如果是通过
about:debugging加载的临时附加组件,可直接点击「临时载入的扩展」列表中的「移除」,或重启浏览器让其自动失效。
残留数据说明 #
卸载扩展后,Lite Monkey 存储的脚本、样式与配置数据(包括 GM 存储面板中的内容)通常会被浏览器一并清除,但已导出到本地的备份文件不会受影响,建议在卸载前先使用本地导出功能备份重要脚本。若曾启用 Google Drive appDataFolder 同步,可在 Google 账号的「第三方应用」权限设置中撤销 Lite Monkey 的访问授权,并手动删除云端 appDataFolder 中的同步数据。
