🌐
给 AI agent 的浏览器,一行装好对接 Playwright
moli:Rust 写的无头浏览器,结构优先、按需渲染,CLI / CDP / WebDriver 全通,轻到能上小 VPS
18.7k Star
Apache-2.0/MIT
约 40MB 单二进制
📖 它是什么
moli(仓库 lexmount/moli)是一个用 Rust 写的无头浏览器,仓库一句话定位:Best headless browser for AI agents. Lite, Fast, High-Compatibility. Built in Rust。它是独立的浏览器引擎(不是 Chromium 的包装),主打"结构优先、按需渲染":默认只跑真实的 JavaScript + DOM/CSS + 网络,需要像素时才用 --layout 开真正的布局/渲染/截图。整个程序一个二进制约 40MB,支持 Linux / macOS / Windows,轻到能装进连 headless Chrome 都放不下的小 VPS。
它瞄准的是 AI agent 真正干活时最不起眼的瓶颈——浏览器。当大家忙着造会思考的 agent,agent 抓网页、提取信息、搜索、自动操作浏览器,靠的都是这一层。moli 用 Rust 引擎把这些做成:moli fetch 把网页直接转成 Markdown / 语义树给模型读,moli serve 起自动化服务,同一端点同时提供 CDP / WebDriver Classic / WebDriver BiDi,Playwright 用 connectOverCDP 一行就能连上。
2026-08-10 开源后增长很快,到 2026-10-16 已有 18.7k Star、499 Fork,且仍在活跃更新(昨天刚推代码)。采用 Apache-2.0 / MIT 双协议(可任选其一),官网在 browser.lexmount.com。
📎 仓库:github.com/lexmount/moli | 官网:browser.lexmount.com | 中文文档:docs/README.zh-CN.md
✨ 核心亮点
🦀
Rust 独立引擎
不是 Chromium 包装,自带内核 + V8 JS + 完整 DOM/CSS
🌱
结构优先、按需渲染
默认只跑结构/JS,需要像素才 --layout,省资源
🔗
三协议全通
CDP / WebDriver Classic / WebDriver BiDi 同一端点
⚡
一行安装
curl|sh 或 irm|iex,一个二进制即用,无需 Chrome
🖥️ 环境要求
| 系统 | Linux / macOS / Windows(官方安装脚本覆盖三平台) |
| 运行环境 | 一个预编译二进制即可;不依赖 Java/Selenium、不额外装浏览器 |
| 硬件 | 常规即可;轻到可自托管在放不下 Chrome 的小 VPS |
| 对接方式 | CLI(moli fetch)或 moli serve(CDP/WebDriver)供 Playwright/Puppeteer 连接 |
| 关键依赖 | 无第三方运行时;需网络以抓取网页(--resource 可选拉图片/字体/媒体) |
🚀 上手步骤
① 一行安装(Linux / macOS)
curl --proto '=https' --tlsv1.2 -fsSL
https://github.com/lexmount/moli/releases/latest/download/moli-installer.sh | shWindows 用 PowerShell:powershell -ExecutionPolicy ByPass -c "irm https://github.com/lexmount/moli/releases/latest/download/moli-installer.ps1 | iex"
② 把网页转 Markdown 给模型读
moli fetch --dump markdown --wait-until done https://example.com要更紧凑、模型友好的语义树:moli fetch --dump semantic_tree_text --wait-selector body https://example.com
③ 需要像素时开布局(截图/PDF)
moli fetch --layout --dump screenshot https://example.com > page.png
moli fetch --layout --dump screenshot_full https://example.com > full-page.png
moli fetch --layout --dump pdf https://example.com > page.pdf④ 起自动化服务,Playwright 直接连
moli serve # 结构优先
moli serve --layout # 加几何/坐标/截图
moli serve --layout --resource # 再拉图片/字体/媒体同一端点同时提供 CDP / WebDriver Classic / WebDriver BiDi。
⑤ 在 Node/Python 里 connectOverCDP
import { chromium } from "playwright";
const browser = await chromium.connectOverCDP("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");
console.log(await page.locator("body").innerText());
await browser.close();📊 关键速查
| 安装 | Linux/macOS:curl …moli-installer.sh | sh;Windows:irm …moli-installer.ps1 | iex |
| 抓网页 | moli fetch --dump markdown|semantic_tree_text|screenshot|pdf URL |
| 自动化服务 | moli serve(可加 --layout / --resource) |
| 对接 | Playwright chromium.connectOverCDP("http://127.0.0.1:9222") |
| 协议 | CDP / WebDriver Classic / WebDriver BiDi;License Apache-2.0 或 MIT 任选 |
🎯 典型玩法
🤖 AI agent 浏览器层:抓取、提取、搜索、自动操作网页的轻量底座
🕷️ 爬虫 / 抓取:轻量到能自托管在爬虫 VPS 上
🔍 检索流水线:网页转 Markdown/语义树喂给 RAG / 模型
🧪 自动化评测:浏览器任务评测、RL 环境的低成本驱动
🖥️ 云端浏览器:小 VPS 上自托管,替代装不下的 Chrome
📸 按需截图/PDF:需要视觉时才开布局,省内存省流量
📊 和同类做法比
| headless Chrome / Playwright 自带内核 | 功能全但笨重(几百 MB)、吃内存,小 VPS 装不下 |
| HTML 转文本脚本(无浏览器) | 快但只看到静态 HTML,跑不了 JS、拿不到动态内容 |
| 云浏览器服务 | 要 key、按量计费、数据出境,不是本地自托管 |
| moli | Rust 独立引擎 + 结构优先按需渲染 + CDP/WebDriver 全通,约 40MB |
原理一句话:把"浏览器"拆成两档——默认只交付 agent 真正要的"结构"(真实 JS + DOM),需要像素时才跑布局/渲染;用 CDP 这个通用协议让 Playwright/Puppeteer 零改动对接。
❓ 常见问题
Q:它是 Chromium 的包装吗?要装 Chrome 吗?
不是。moli 是独立的 Rust 浏览器引擎(自带 V8 JS、完整 DOM/CSS、布局),一个二进制即可,不需要另外装 Chrome/Chromium。
Q:完全免费吗?什么协议?
开源免费,采用 Apache-2.0 / MIT 双协议,你可任选其一使用(第三方组件各自遵循自身许可)。
Q:怎么让 Playwright 用上它?
先 moli serve 起服务,再在代码里 chromium.connectOverCDP("http://127.0.0.1:9222"),即可用 Playwright 的 page/locator 操作。
Q:默认为什么不渲染像素?
agent 抓网页主要要的是"结构"(文字、DOM、可提取内容),跑真实 JS 但跳过布局/渲染能省大量内存和 CPU;需要截图/坐标时才加 --layout。
Q:只抓静态 HTML 不行吗?为什么要浏览器?
很多页面靠 JS 动态渲染,纯文本抓取拿不到;moli 提供真实 JS 运行时,动态内容也能提取。
Q:能跑在哪些系统?
Linux / macOS / Windows 都支持,官方提供了对应的一键安装脚本。
Q:支持哪些协议?
CDP(Chrome DevTools Protocol)、WebDriver Classic、WebDriver BiDi 三种,由同一个 moli serve 端点统一提供。
Q:资源占用如何?
结构优先模式下开销很小,可自托管在连 headless Chrome 都放不下的小 VPS;仅截图为真实布局时更吃资源,但按需触发。
Q:我想给 AI agent 用,怎么上手?
装好二进制后,让 agent 用 moli fetch --dump markdown 或 semantic_tree_text 抓网页;或 moli serve 后 connectOverCDP 做自动化。
📎 GitHub 搜索 lexmount/moli
关注「AI工具匠」,获取更多 AI 工具实操教程