🔧 Công cụ lập trình•Mã nguồn mở•Đang hoạt động

Moli

Browser engine headless viết bằng Rust cho AI agent, hỗ trợ CDP, WebDriver, semantic tree và render theo nhu cầu thay vì bọc Chromium.

#moli
Danh mục
🔧 Công cụ lập trình
Giá
Mã nguồn mở
GitHub Stars
⭐ 12,666
Ngôn ngữ
Rust
License
Apache-2.0
Ngày thêm
2026-10-08
Tóm tắt từ README GitHub
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: Direct installation On Linux or macOS: On Windows, run in PowerShell: 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: Or directly return a compact, model-friendly semantic tree: For visual output, enable on-demand layout and write a viewport PNG, a full-document PNG, or a paginated PDF: Run for the complete option list, including output formats, page-load/response waits, profiles, proxy settings, resource policies, and tracing options. Start the automation serv
Xem thêm từ README.md

Đánh giá chi tiết

Tổng quan

Moli là trình duyệt headless mã nguồn mở viết bằng Rust, được thiết kế cho AI agent, crawler và pipeline trích xuất dữ liệu. Khác với các công cụ chỉ bọc Chromium, Moli xây dựng một browser runtime riêng với DOM, JavaScript V8, CSS, network, storage và các giao thức automation quen thuộc. Ý tưởng đáng chú ý nhất là “structure first”: phần lớn tác vụ của agent chỉ cần cây DOM, nội dung và trạng thái trang, vì vậy Moli không duy trì layout, paint hay compositor liên tục. Khi cần tọa độ, thao tác chuột hoặc screenshot, engine mới dựng layout và render theo yêu cầu.[2]

Thiết kế này nhắm đúng một bài toán thực tế: chạy nhiều phiên browser cho agent thường tốn RAM và CPU dù phần lớn lượt tương tác chỉ đọc HTML hoặc gọi selector. Theo benchmark do dự án công bố, Moli dùng ít tài nguyên hơn Chrome trong một số workload và đạt tỷ lệ tương thích 81,88% trên tập 1.308 task so sánh. Tuy nhiên, đây vẫn là số liệu do đội dự án cung cấp; Chrome đạt 99,85% trong cùng bảng, nên Moli chưa phải lựa chọn thay thế tuyệt đối cho mọi website.[2]

Tính năng chính

Với CLI, moli fetch có thể tải trang và xuất HTML, Markdown, JSON hoặc semantic tree. Khi bật --layout, công cụ tạo screenshot hoặc PDF. Các tùy chọn chờ selector, script và response giúp xử lý ứng dụng JavaScript tốt hơn HTTP client thông thường.[2][3]

Ở chế độ server, một binary phục vụ đồng thời CDP, WebDriver Classic và WebDriver BiDi. Playwright có thể kết nối qua CDP; Selenium hoặc client WebDriver cũng dùng được mà không cần ChromeDriver hay geckodriver riêng. Source cho thấy các route protocol được triển khai trực tiếp trên Axum, không phải lớp CLI giả lập.[4]

Cookie, cache và profile lưu trên đĩa chỉ bật khi người dùng chỉ định đường dẫn. Layout thật cùng image, font, audio hay video cũng là opt-in, phù hợp batch crawling cần kiểm soát chi phí.[2][3]

Trải nghiệm cài đặt và kiểm chứng

Installer chính thức tải binary cho Linux, macOS hoặc Windows từ GitHub Releases. Trong môi trường tách biệt, bản 1.1.15 cài thành công; lệnh fetch lấy example.com và xuất Markdown đúng, còn automation server trả trạng thái ready:true. Bốn nhóm test liên quan URL policy, DNS resolver, browser profile và cookie cache cũng chạy qua với 64 test pass, không có lỗi.

CI còn chạy format, Clippy, full workspace test, release build, CDP/WebDriver smoke, 1.020 frontend differential cases và WebMainBench 545 trang.[9] Ở commit review, 18/19 job thành công; WebMainBench bị hủy do cơ chế cancel run cũ khi có commit mới.[10] Run ngay trước đó pass đủ 19 job.[11]

Điểm mạnh

Điểm mạnh lớn nhất của Moli là kiến trúc khớp với workload agent. Việc không render liên tục có thể giảm đáng kể tài nguyên khi nhiệm vụ chủ yếu là đọc DOM, chạy script hoặc trích xuất nội dung. Hỗ trợ ba protocol chuẩn cũng giúp đội kỹ thuật thử Moli mà không phải viết lại toàn bộ lớp automation.

Dự án pin Rust toolchain, phát hành binary cho sáu tổ hợp hệ điều hành/kiến trúc và dùng license kép MIT hoặc Apache-2.0.[13][14][15]

Về privacy, không thấy module gửi analytics hay telemetry ra dịch vụ bên ngoài. File mang tên telemetry.rs chỉ cấu hình log nội bộ ra stderr.[7] Đây là tín hiệu tích cực cho workload tự host, dù dữ liệu browsing vẫn có thể được lưu nếu người dùng chủ động bật profile, cache hoặc nhập cookie.

Hạn chế và rủi ro

Mặc định server bind vào 127.0.0.1:9222, nhưng không có authentication cho CDP hay WebDriver. Nếu đổi host thành 0.0.0.0 rồi mở cổng ra LAN hoặc Internet, bất kỳ client truy cập được đều có thể điều khiển phiên browser, chạy JavaScript, điều hướng và thao tác dữ liệu phiên.[3][4] Cách triển khai an toàn là giữ loopback, dùng SSH tunnel hoặc đặt reverse proxy có TLS và xác thực phía trước.

Cờ chặn private network tồn tại nhưng mặc định tắt; tài liệu CLI cũng nói target do proxy phân giải nằm ngoài policy phía client.[3][5] Với agent nhận URL từ nguồn không tin cậy, đây là rủi ro SSRF đáng lưu ý. Operator nên bật chặn private network và áp dụng egress proxy có kiểm soát DNS/IP.

Chuỗi cung ứng cũng cần thận trọng. README đề xuất tải installer rồi pipe thẳng vào shell, nhưng script không kiểm checksum hay chữ ký archive.[8] Binary macOS chỉ được ad-hoc sign, không notarized; Windows chưa có Authenticode.[13] Môi trường nghiêm ngặt nên pin release, kiểm digest từ GitHub hoặc tự build commit đã khóa.

Cuối cùng, Moli không hướng tới GUI, GPU compositor, WebGL hay pixel parity với Chrome. Chính README thừa nhận giới hạn về canvas, media và một số chế độ screenshot/PDF.[2] Những trang phụ thuộc fingerprint, DRM hoặc rendering fidelity cao vẫn nên có đường fallback sang Chromium.

Phù hợp khi nào

Moli phù hợp với web agent, crawler, RAG ingestion hoặc workload nhiều phiên chủ yếu đọc cấu trúc trang, nhất là khi RAM/CPU của Chromium là nút thắt.

Ngược lại, không nên đưa Moli thẳng ra mạng công cộng, dùng profile cá nhân hoặc tin rằng mọi website tương thích như Chrome. Hãy chạy regression trên tập website thực tế, giữ endpoint ở loopback, bật network policy và dùng profile disposable. Với các điều kiện đó, Moli là một lựa chọn kỹ thuật đáng thử, nhưng nên được xem là browser engine chuyên cho agent hơn là bản thay thế Chromium toàn diện.