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 はブラウザの状態を直接読み取り、要求しない限りレイアウトとペイントをスキップします。
- 高速かつ軽量 – デフォルトモードでは実際のレイアウトを実行しないため、メモリの中央値は約 70 MiB、起動レイテンシは 35 ミリ秒未満で、Chrome ヘッドレス(約 770 MiB、> 150 ミリ秒)よりもはるかに低くなります。
- オンデマンドのビジュアル – スクリーンショット、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 | 同じカーネルが 3 つすべてをサポート。Playwright は chromium.connectOverCDP で接続できます。 |
| オンデマンドのレイアウトとペイント | --layout は、実際のジオメトリ、ヒットテスト、座標入力、スクリーンショット、スクリーンキャストフレームを有効にします。それ以外の場合は、決定論的なモックレイアウトのみが保持されます。 |
| 細かいリソース制御 | オプションのファミリ(--image、--font、--audio など)を有効にし、カスタムプロファイル、キャッシュ、または Cookie ファイルを指定するフラグ。 |
| クロスプラットフォーム | Linux、macOS、Windows 用のプリビルドバイナリ。 |
| オープンソースライセンス | Apache-2.0 または MIT のデュアルライセンス。 |
AI エージェントの典型的なユースケース
- ウェブ検索とクローリング – ページを取得し、JavaScript が安定するのを待ってから、下流の LLM 推論用にクリーンな Markdown または JSON 表現を返します。
- データ抽出 – DOM をクエリし、小さなスクリプト(
--eval)を実行してボタンをクリックしたりセクションを展開したりして、画像をレンダリングせずに結果の構造をエクスポートします。 - インタラクティブな自動化 – レイアウトツリーを使用して要素ボックスを計算し、座標ベースのクリックを実行するか、視覚的な確認が必要なときに単一のスクリーンショットを生成します。
- 評価環境 – 数千回のページロードが必要な強化学習やツール使用ループを実行します。メモリ/CPU コストが低いため、実験を手頃な価格で実行できます。
- ツール統合 – 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 秒、73 MiB RSS | 52.6% 有用、1.43 秒、773 MiB RSS |
| サンプルエージェントワークロード | CDP 準備完了 34.85 ミリ秒、ピーク 102 MiB PSS | CDP 準備完了 169.37 ミリ秒、ピーク 349 MiB PSS |
| Lexbench-Headless-Browser(1,308 タスク) | 81.9% 成功、中央値 CPU 100.6 ミリ秒、中央値メモリ 92 MiB | 99.8% 成功、中央値 CPU 687 ミリ秒、中央値メモリ 697 MiB |
| 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 ワークフローに最適です。
これを取り上げた記事
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト