📈 GH Trending Explorer 🎲 Surprise me

← all repos

lexmount / moli

git clone https://github.com/lexmount/moli.git v1.1.18 · 5d ago 🔥 on GitHub Trending today

A headless browser runtime in Rust that AI agents use to fetch, extract, search, and automate web pages.

Why you might care

Offers CDP, WebDriver Classic, and WebDriver BiDi on one endpoint, so Playwright and Puppeteer can connect directly. Layout and pixels are generated only on demand, so structure-first requests skip rendering and stay lightweight. Supports Linux, macOS, and Windows.

Categories

Alternatives

PlaywrightPuppeteerBrowserlessLightpandaChromium headless
+65
stars, 24h · #226
+~455
stars, 7 days · #272
+18k
stars, 30 days · #12
20k
★ total · +2% this week
533
forks · 440 open issues

Star history (as recorded here)

2026-10-20 · 19,866 ★ 2026-10-22 · 20,000 ★
LanguageRust
LicenseApache-2.0
Created2026-08-10 (2mo ago)
Last pushtoday
Watchers48
OwnerOrganization

Seen on GitHub Trending

  • 2026-10-22 — #7 monthly in rust · +18,277 ★
  • 2026-10-21 — #7 monthly in rust · +18,093 ★
  • 2026-10-20 — #7 monthly in rust · +17,899 ★

GitHub topics

Links

README excerpt
Moli 
 English |
 简体中文 |
 日本語 |
 Deutsch |
 Français |
 Español |
 한국어 
Moli is a production-ready headless browser for AI agents. Its on-demand layout
and rendering design combines a complete browser runtime with a lightweight
resource footprint.
Moli helps your AI agent fetch and extract web pages, search the web, and
automate browser tasks.
Use it through the CLI, CDP, WebDriver Classic, or WebDriver BiDi.
Moli supports Linux, macOS, and Windows.
## Quick start
Give this prompt to your AI agent:
 [code] 
### Direct installation
On Linux or macOS:
 [code] 
On Windows, run in PowerShell:
 [code] 
## Showcase
 An HTML5 game rendered by Moli and inspected live through Chrome DevTools. 
 rust-lang.org rendered by Moli, with its live DOM, CSS, and geometry available in Chrome DevTools. 
## CLI usage
### Extract a page
Render the page as Markdown with Moli's default completion strategy:
 [code] 
Or directly return a compact, model-friendly semantic tree:
 [code] 
For visual output, enable on-demand layout and write a viewport PNG, a full-document PNG, or a paginated PDF:
 [code] 
To export a page after an explicit interaction, combine `--eval` (or
`--eval-file`) with `--dump`. The expression runs after page readiness;
promises are awaited, and any pending navigation is followed before export.
Its return value is discarded without serialization. An exception fails the
command without emitting a dump.
 [code] 
Only the supplied expression performs interactions. Without `--dump`,
`--eval` retains its expression-value output behavior.
Run `fetch --help` for the complete option list, including output formats,
page-load/response waits, profiles, proxy settings, resource policies, and
tracing options.
### Start the automation server
 [code] 
The same endpoint serves all three protocols: CDP, WebDriver Classic, and
WebDriver BiDi. Playwright can connect directly over CDP:
 [code] 
The WebMCP playground includes a CLI to list
and call any site's native WebMCP tools, plus booking, restaurant, and pizza demos.
## Why Moli
Three qualities matter most for agent workloads, and Moli brings them together:
- **Full-featured** — real JavaScript, DOM, CSS, networking, storage, layout,
 screenshots, and standard automation protocols, all integrated into one
 headless browser.
- **Fast** — most automation requests never need visual rendering, so
 structure-first operations skip layout and paint entirely.
- **Resource-efficient** — layout and pixels are generated only when needed,
 so Moli does not have to continuously maintain and update a fully rendered
 visual state.
What most browser automation tasks actually need is page structure, not a
continuously rendered visual world. Moli treats the native DOM and style state
as the single source of truth, triggering layout or software paint only for
operations that genuinely require them.
| Agent request | What Moli does |
| --- | --- |
| Extract HTML/Markdown, query the DOM, run JS, inspect network/storage | Reads browser run

Blurb generated by claude-haiku-5-5 1d ago. Star deltas marked ~ are extrapolated from partial history.