Moli 是面向AI智能体、可直接投入生产环境的无头浏览器。核心设计思路为按需布局与渲染,同时保留完整浏览器运行时,大幅降低资源占用,专门用来给AI智能体做网页抓取、信息提取、全网检索、浏览器自动化任务。项目跨平台支持 Linux、macOS、Windows。

接入方式
可通过四种方式调用:CLI、CDP、WebDriver Classic、WebDriver BiDi。
可直接发给AI智能体的指令:
安装仓库skills目录下的技能,按照指引下载预编译Moli二进制,使用moli-webfetch抓取 https://example.com,返回结果。
一键安装脚本
Linux / macOS
curl --proto '=https' --tlsv1.2 -fsSL \
[https://github.com/lexmount/moli/releases/latest/download/moli-installer.sh](https://github.com/lexmount/moli/releases/latest/download/moli-installer.sh) | sh
Windows PowerShell
powershell -ExecutionPolicy ByPass -c "irm [https://github.com/lexmount/moli/releases/latest/download/moli-installer.ps1](https://github.com/lexmount/moli/releases/latest/download/moli-installer.ps1) | iex"
CLI 使用示例
- 页面提取,输出Markdown
moli fetch \
--dump markdown \
--wait-until done \
[https://example.com](https://example.com)
- 输出适合大模型解析的语义树文本
moli fetch \
--dump semantic_tree_text \
--wait-selector body \
[https://example.com](https://example.com)
- 截图、长截图、PDF(开启布局计算)
moli fetch --layout --dump screenshot [https://example.com](https://example.com) > page.png
moli fetch --layout --dump screenshot_full [https://example.com](https://example.com) > full-page.png
moli fetch --layout --dump pdf [https://example.com](https://example.com) > page.pdf
启动自动化服务
# DOM基础自动化服务器
moli serve
# 开启几何坐标、截图、画面串流
moli serve --layout
# 额外拉取图片、音视频等媒体资源
moli serve --layout --resource
服务单端点同时提供 CDP、WebDriver Classic、WebDriver BiDi,Playwright 可以直接通过CDP接入。
import { chromium } from "playwright";
const browser = await chromium.connectOverCDP("[http://127.0.0.1:9222](http://127.0.0.1:9222)");
const context = browser.contexts()[0];
const page = context.pages()[0] ?? await context.newPage();
await page.goto("[https://example.com](https://example.com)");
console.log(await page.locator("body").innerText());
await browser.close();
核心设计:为什么适合AI智能体
传统无头浏览器会持续维护完整渲染画面,消耗大量算力。Moli将DOM与样式作为唯一数据源,视觉相关计算只在需要的时候执行。
- 读取HTML、DOM查询、执行JS、网络读取:默认不触发布局绘制,速度快、省资源
- 获取元素坐标、点击命中测试:仅执行单次布局,生成冻结布局树
- 截图/画面串流:临时重建布局渲染,使用完成即丢弃渲染帧
三大核心优势:
- 功能完整:内置V8、DOM、CSS、网络存储、布局、截图,一套内核自带全部Web运行时
- 速度更快:纯结构类网页任务直接跳过布局绘制
- 资源高效:布局、像素只按需生成,不长期保存完整可视画面状态
完整能力清单
- 完整Web运行时:HTML流式解析、原生DOM、V8 JS引擎、iframe/Worker、CSS层叠、Fetch/XHR/WebSocket、Cookie、WebCrypto、隔离存储
- AI友好输出:CLI可导出HTML、Markdown、JSON、语义文本树,支持等待选择器、网络追踪
- 统一自动化协议:CDP、新旧WebDriver共用内核,无需额外安装浏览器驱动
- 按需视觉能力:
--layout开启盒模型、文本排版、坐标点击、截图、DevTools串流 - 运维可控:配置文件、代理、资源过滤、连接数限制、UA伪装、结构化日志、网络诊断
成本控制(显式开关,默认不开启高开销功能)
- 默认:Mock布局,返回兼容几何信息,不做真实布局绘制
--layout:按需真实布局、坐标输入、截图、串流--resource:加载图片/字体/音视频等媒体资源,也可单独指定媒体类别- 持久化存储:Cookie、缓存、用户目录按需启用
布局结果会冻结为不可变
FrozenLayoutTree,页面变更后截图才会重新构建;画面串流仅在页面状态改变时才渲染新帧,减少不必要计算。
架构说明
Moli不是Chromium的封装,是独立浏览器内核,基于Rust开发。
- html5ever:HTML解析
- rusty_v8:JavaScript执行
- Servo Stylo:CSS选择器与样式计算
- Taffy + Parley:盒模型与文字排版
- Vello/AnyRender:CPU软件渲染
- libcurl:网络传输
工作机制:DOM+样式为唯一事实源,临时构建布局工作树,计算完成冻结几何信息,随后销毁临时工作数据,不使用增量布局、保留式显示列表、GPU合成器。















