lexmount/moli

Best headless browser for AI agents. Lite, Fast, High-Compatibility. Built in Rust

Moli – AI 에이전트를 위해 구축된 헤드리스 브라우저

정의 – Moli는 Rust로 작성된 오픈 소스, 프로덕션 준비가 된 헤드리스 브라우저입니다. 완전한 웹 런타임(HTML, CSS, JavaScript, 네트워킹, 스토리지 등)을 제공하지만 시각적 출력이 명시적으로 요청된 경우에만 렌더링하여 리소스 사용량을 최소화하도록 설계되었습니다. 이 바이너리는 간단한 CLI, Chrome DevTools 프로토콜(CDP) 또는 표준 WebDriver Classic / WebDriver BiDi 인터페이스를 통해 구동할 수 있으므로 기존 자동화 도구(Playwright, Selenium, Puppeteer 등)가 추가 어댑터 없이 통신할 수 있습니다.


AI / LLM 에이전트에게 중요한 이유

  • 구조 우선 워크플로 – 대부분의 에이전트 작업은 지속적으로 페인팅된 페이지가 아닌 DOM, CSS 캐스케이드 또는 네트워크 데이터가 필요합니다. Moli는 브라우저 상태를 직접 읽고 요청하지 않는 한 레이아웃과 페인팅을 건너뜁니다.
  • 빠르고 가벼움 – 기본 모드는 실제 레이아웃을 수행하지 않으므로 중간 메모리가 약 70MiB, 시작 대기 시간이 35ms 미만으로 Chrome 헤드리스(약 770MiB, >150ms)보다 훨씬 낮습니다.
  • 온디맨드 비주얼 – 스크린샷, PDF 또는 지오메트리 쿼리가 필요할 때 Moli는 단일 레이아웃 트리를 구축하고 프레임을 렌더링한 다음 페인트 상태를 폐기합니다. 지속적인 컴포지터 또는 GPU 작업이 없습니다.
  • 통합 프로토콜 엔드포인트 – 단일 바이너리가 CDP, WebDriver Classic 및 WebDriver BiDi를 제공하므로 이미 사용 중인 자동화 라이브러리를 선택할 수 있습니다.

핵심 기능(README에 설명됨)

기능 설명
완전한 웹 런타임 HTML5 파싱, 네이티브 DOM, V8 JavaScript, CSS 캐스케이드, fetch/XHR/WebSocket, 쿠키, WebCrypto, IndexedDB, OPFS, iframe, 워커 등.
추출 최적화 출력 moli fetch는 HTML, Markdown, JSON, 의미 트리 텍스트 형식 또는 원시 스크린샷/PDF를 덤프할 수 있습니다.
CLI, CDP, WebDriver Classic 및 BiDi 동일한 커널이 세 가지 모두를 지원합니다. Playwright는 chromium.connectOverCDP로 연결할 수 있습니다.
온디맨드 레이아웃 및 페인트 --layout은 실제 지오메트리, 히트 테스트, 좌표 입력, 스크린샷 및 스크린캐스트 프레임을 활성화합니다. 그렇지 않으면 결정적 모의 레이아웃만 유지됩니다.
세밀한 리소스 제어 선택적 기능(--image, --font, --audio 등)을 활성화하고 사용자 정의 프로필, 캐시 또는 쿠키 파일을 지정하는 플래그.
크로스 플랫폼 Linux, macOS 및 Windows용 사전 빌드 바이너리.
오픈 소스 라이선스 Apache-2.0 또는 MIT 이중 라이선스.

AI 에이전트의 일반적인 사용 사례

  1. 웹 검색 및 크롤링 – 페이지를 가져오고 JavaScript가 안정될 때까지 기다린 다음 다운스트림 LLM 추론을 위해 깨끗한 Markdown 또는 JSON 표현을 반환합니다.
  2. 데이터 추출 – DOM을 쿼리하고 작은 스크립트(--eval)를 실행하여 버튼을 클릭하거나 섹션을 확장한 다음 이미지를 렌더링하지 않고 결과 구조를 내보냅니다.
  3. 대화형 자동화 – 레이아웃 트리를 사용하여 요소 상자를 계산하고 좌표 기반 클릭을 수행하거나 시각적 확인이 필요할 때 단일 스크린샷을 생성합니다.
  4. 평가 환경 – 수천 번의 페이지 로드가 필요한 강화 학습 또는 도구 사용 루프를 실행합니다. 낮은 메모리/CPU 비용으로 실험 비용을 감당할 수 있습니다.
  5. 도구 통합 – Playwright, Selenium 또는 모든 CDP 클라이언트를 moli serve 엔드포인트에 연결하고 일반 브라우저처럼 취급하지만 훨씬 작은 공간을 차지합니다.

빠른 시작(README에서)

# Linux / macOS – 원라이너 설치 프로그램
curl --proto '=https' --tlsv1.2 -fsSL \
  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 | iex"

페이지를 Markdown으로 가져오기

moli fetch --dump markdown --wait-until done https://example.com

의미 트리 가져오기(모델 친화적)

moli fetch --dump semantic_tree_text --wait-selector body https://example.com

온디맨드 스크린샷

moli fetch --layout --dump screenshot https://example.com > page.png

자동화 서버 실행

moli serve            # DOM 우선만
moli serve --layout   # 지오메트리 및 스크린샷 활성화

내부 작동 방식(높은 수준)

  • Rust 커널 – 브라우저는 네이티브 Rust 프로그램이며 Chromium 래퍼가 아닙니다.
  • 네트워킹 – libcurl이 HTTP(S) 및 다중 요청 동시성을 처리합니다.
  • HTML 파싱 – html5ever가 DOM 트리를 구축합니다.
  • JS 엔진 – rusty_v8이 V8을 임베드하여 완전한 JavaScript 지원을 제공합니다.
  • CSS – Servo/Stylo가 선택기 일치 및 캐스케이드 계산을 제공합니다.
  • 레이아웃 및 텍스트 – Taffy(박스 레이아웃) + Parley(텍스트 셰이핑)가 --layout이 요청된 경우에만 지오메트리를 생성합니다.
  • 소프트웨어 렌더링 – AnyRender/Vello(CPU)와 usvg 및 Rust 이미지 생태계가 PNG/PDF 프레임을 생성합니다.
  • 상태 모델 – DOM + 계산된 스타일이 단일 진실 소스입니다. 시각적 작업이 필요하면 임시 작업 레이아웃 트리가 구축되고 컴팩트한 FrozenLayoutTree로 고정된 후 작업에 사용된 다음 폐기됩니다. 지속적인 컴포지터 또는 GPU 파이프라인이 없습니다.

벤치마크(보고된 대로)

벤치마크 Moli Chrome 헤드리스
공개 웹 크롤링(192 URL) 53.6% 유용한 페이지, 중앙값 1.43초, 73MiB RSS 52.6% 유용, 1.43초, 773MiB RSS
샘플 에이전트 워크로드 CDP 준비 34.85ms, 피크 102MiB PSS CDP 준비 169.37ms, 피크 349MiB PSS
Lexbench-Headless-Browser(1,308개 작업) 81.9% 성공, 중앙값 CPU 100.6ms, 중앙값 메모리 92MiB 99.8% 성공, 중앙값 CPU 687ms, 중앙값 메모리 697MiB
WPT 테스트 스위트 1.612M 테스트 통과(전체 실행) –

이 수치는 Moli가 Chrome CPU 시간의 약 15% 및 피크 메모리의 약 13% 를 달성하면서 실제 웹 페이지의 대부분을 처리할 수 있음을 보여줍니다.


프로젝트 상태 및 생태계

  • 프로덕션 준비 – README는 브라우저가 프로덕션 워크로드에 사용할 준비가 되었으며 활발히 개발 중이라고 명시합니다.
  • Lexmount와의 관계 – Moli는 오픈 소스 코어입니다. Lexmount는 그 위에 구축된 관리형 클라우드 서비스(Lexmount Browser)도 제공하지만 바이너리는 완전히 독립적으로 작동합니다.
  • 커뮤니티 – Discord 커뮤니티 링크, Trendshift 배지, 스타 기록 그래프는 활발한 사용자 기반을 나타냅니다.
  • 라이선스 – Apache-2.0 / MIT 이중 라이선스, 타사 구성 요소는 별도로 나열됩니다.

비전문가를 위한 TL;DR

Moli는 코드나 명령줄에서 제어할 수 있는 빠르고 저메모리 헤드리스 브라우저입니다. AI 에이전트에게 최신 웹 페이지의 완전한 기능(JavaScript, CSS, 네트워킹)을 제공하지만 스크린샷이나 지오메트리를 명시적으로 요청하지 않는 한 무거운 시각적 렌더링을 건너뜁니다. 따라서 대규모 웹 크롤링, 데이터 추출 또는 전체 Chrome 인스턴스의 오버헤드 없이 웹을 "읽어야" 하는 모든 AI 워크플로에 이상적입니다.

이 프로젝트를 다룬 글

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트