Repo-lab
開発ツール

Moli ヘッドレスブラウザとは?Rust製AIエージェント向け軽量ブラウザの導入と性能比較

⭐ 1,598 stars GitHub →

MoliはRustで構築されたAIエージェント専用のヘッドレスブラウザ。ChromeのCPU使用量15%・メモリ13%という圧倒的な軽量性を誇り、CDP/WebDriver/WebDriver BiDiを単一バイナリで提供する。Playwright等の既存ツールとも直接連携でき、1,600スター超の注目プロジェクト。

GitHubで急上昇中の lexmount/moli をご紹介します。 スター数 1598★ を獲得し、DevTool分野で注目されているツールです。


Moli ヘッドレスブラウザとは?AIエージェント向け設計の新世代ツール

Moliは、AIエージェントのために一から設計されたRust製のヘッドレスブラウザです。従来のヘッドレスブラウザ(Chrome HeadlessやPuppeteer等)が「GUIブラウザをヘッドレスモードで動かす」という発想で作られているのに対し、MoliはAIエージェントのワークロードに特化した独自のブラウザカーネルを実装しています。

2026年9月にv1.1.1がリリースされたばかりで、バイナリサイズ10%削減・メモリ使用量20%削減・レンダリング速度向上など、継続的に改善が進んでいます。10名のコントリビューターと158件のリリースを重ねており、本番環境での利用も想定したプロダクションレディな完成度を誇ります。

Moliの最大の特徴は「構造ファースト、ピクセルオンデマンド」という設計思想です。多くのブラウザ自動化タスクで本当に必要なのは「ページの構造(DOM)」であり、視覚的なレンダリングではありません。Moliはこの前提に基づき、レイアウト計算と画像描画を必要なときだけ実行することで、Chromeと比較してCPU使用量を約15%、メモリ使用量を**約13%**に抑えることに成功しています。

こんな人におすすめ:

  • エンジニア向け: AIエージェント開発者・LLMパイプライン構築者・Webスクレイピング実装者向けの高性能ヘッドレスブラウザ。PlaywrightやPuppeteerとの既存ワークフローに組み込める。
  • 非エンジニア向け: プログラミング知識が必要なため、AIエンジニア・自動化エンジニア専用ツールです。

AIエージェントワークロードに特化した3つの核心価値

フル機能:単一バイナリで3つの自動化プロトコルをカバー

MoliはV8 JavaScript実行エンジン、完全なDOM実装、CSS、ネットワーク、ストレージ、レイアウト、スクリーンショット、標準自動化プロトコル(CDP、WebDriver Classic、WebDriver BiDi)をすべて統合した単一バイナリを提供します。ChromeDriver、geckodriver、別途ブラウザインストールは一切不要です。

高速:CDPレディ34.85msの圧倒的な起動速度

ほとんどのエージェントリクエスト(HTMLやMarkdown抽出、DOM操作、JavaScript実行、ネットワーク検査)では、レイアウト計算や画像描画を一切実行しません。CDPレディまでの時間は34.85ms(Chromiumの169.37msの約1/5)と圧倒的に高速です。

リソース効率:ChromeのCPU15%・メモリ13%を実現

タスクあたりのCPU時間中央値は100.6ms(Chromiumは687ms)、ピークメモリ中央値は92 MiB(Chromiumは697 MiB)。同じサーバーでChromiumの7倍以上の並列処理が可能になります。

各リクエストでMoliが何をするかを整理すると以下のようになります:

エージェントのリクエスト Moliの動作
HTML/Markdown抽出、DOM操作、JS実行 レイアウト・描画なしで直接ブラウザ状態を読み取り
座標入力、ヒットテスト 一度だけレイアウト計算して結果を保持
スクリーンショット取得 最新DOM/スタイルから再構築して描画、使用後に破棄
スクリーンキャストポーリング 変更有無のみ比較、変更時のみ新フレーム生成

インストールと基本的な使い方:Moli ヘッドレスブラウザの導入ガイド

インストール(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"

AIエージェントへのスキル追加(最も簡単な方法)

Claude CodeやCursor等のAIエージェントに以下のプロンプトを与えるだけで、自動的にMoliをインストールして使い始められます:

Install the skills under https://github.com/lexmount/moli/tree/main/skills,
follow their instructions to download and install the latest prebuilt Moli
binary, then use moli-webfetch to fetch https://example.com and show me the result.

CLIでのページ取得

Moliのメイン機能はCLIによるページ取得です。以下のコマンドでMarkdown形式のページ内容を取得できます:

# Markdown形式でページを取得
moli fetch \
  --dump markdown \
  --wait-until done \
  https://example.com

# AIモデル向けのセマンティックツリー形式で出力
moli fetch \
  --dump semantic_tree_text \
  --wait-selector body \
  https://example.com

# スクリーンショット(--layoutが必要)
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との連携

# 基本的な自動化サーバー(DOM操作中心)
moli serve

# レイアウト・座標入力・スクリーンショット対応
moli serve --layout

PlaywrightはCDP接続で直接Moliと連携できます:

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();

他のヘッドレスブラウザとの違い:なぜ今Moliなのか

Chrome Headlessとのベンチマーク比較

LexbenchのベンチマークはChrome、Moli、Kitesurf、Lightpanda、Obscuraの5つのヘッドレスブラウザを1,308タスクで評価しています:

ブラウザ タスク成功率 CPUタスク中央値 ピークメモリ中央値
Chrome 99.85% 687 ms 697 MiB
Moli 81.88% 100.6 ms 92 MiB
Kitesurf 62.08% N/A(リモート) N/A
Lightpanda 53.29% N/A 40 MiB
Obscura 44.88% N/A 39 MiB

Chromeと比較してタスク成功率はわずかに低いものの、CPUは15%・メモリは13%と大幅に削減されています。

ChromiumラッパーではなくネイティブRust実装

Moliの重要な差別化ポイントは、ChromiumやGeckoのラッパーではなく完全独自のブラウザカーネルであることです。以下のRustコンポーネントで構築されています:

  • libcurl(ネットワーク転送)
  • html5ever(HTMLパーサー)
  • rusty_v8 / V8(JavaScript実行)
  • Servo/Stylo(CSSセレクタ・カスケード・計算スタイル)
  • Taffy + Parley(ボックスレイアウト・テキストレイアウト)
  • AnyRender/Vello CPU(ソフトウェアレンダリング)

この独自実装により、Chromiumのライフサイクルに依存しない小さなバイナリサイズと軽量なメモリフットプリントを実現しています。


こんな人に向いている:Moliが輝く実務シナリオ

MLエンジニア・LLMパイプライン構築者

RAGシステムのクローラーや検索拡張のためにWebページを大量に処理するLLMパイプラインを構築するMLエンジニアに最適です。ChromeベースのソリューションではサーバーのRAMが瞬く間に枯渇しますが、Moliなら92 MiBのメモリで処理できるため、同じインフラコストで大幅に多くの並列処理が可能です。特に1日100万ページ規模のクローリングでは、インフラコストの削減効果が顕著に現れます。

Webスクレイピング・データ収集エンジニア

定期的にWebから情報を収集するデータエンジニアにとって、起動時間の短縮は重要です。MoliのCDPレディ時間は34.85ms(Chromiumの1/5)であり、短時間で大量のページを処理するバッチジョブでの恩恵が大きいです。moli fetch --dump markdownコマンド一発でAI処理に適したMarkdown形式でページを取得でき、シンプルなパイプライン構築が可能です。

強化学習・AIエージェント評価環境の構築者

ブラウザ操作を強化学習のアクション空間とするエージェント開発において、環境のリセット・ページロードのサイクルタイムが訓練速度に直結します。Episode activeのp50は33.40ms(Chromiumは57.13ms)、プロセス数は1/11という軽量さで、より多くの並列エージェント実行が可能になります。


使う前に知っておきたいこと

Moliは非常に優れたツールですが、以下の制限事項を把握しておく必要があります:

Chromeとのピクセル完全互換性はない: タスク成功率81.88%(Chrome 99.85%)という数字が示すように、一部のWebサイトやJavaScriptの高度な機能では動作しない場合があります。特にCanvas、WebGL、メディア再生には対応していません。

GPUコンポジター・持続的ウィンドウなし: --layoutモードでもソフトウェアレンダリングのスクリーンショットのみで、Chromeが提供するすべての印刷モードが実装されているわけではありません。

未対応プロトコルは明示的エラーを返す: Moliはサポートされていない操作について「発生したふりをする」ことがありません。エラーが明確に返るため、既存のChrome用コードをそのまま移植すると一部で動作しない場合があります。

ライセンス: Apache License 2.0またはMIT Licenseのデュアルライセンス。商用利用は両ライセンスとも可能ですが、ファイル単位で別ライセンスが適用される場合があるためlicense-metadata.jsonを確認してください。


まとめ

MoliはAIエージェント開発における「ブラウザ自動化のコスト」を根本から変える可能性を持つ革新的なツールです。ChromeのCPU使用量15%・メモリ13%という効率性を維持しながら、81.88%のタスク成功率と完全なPlaywright/Puppeteer互換を実現しています。

v1.1.1では-10%のバイナリサイズ削減と-20%のメモリ削減が達成されており、今後の開発も活発です。RAGシステムのクローラー、強化学習環境、Webスクレイピングパイプラインなど、大量のブラウザ操作が必要な用途でのChrome代替として、ぜひ評価してみてください。

GitHub でチェックする →


関連ツール・おすすめサービス

  • DigitalOcean — 開発者向けクラウド・App Platformでかんたんデプロイ

この技術を学ぶ

DevToolに興味を持った方には、UdemyのAI・自動化関連コースもおすすめです。

毎日更新のGitHubツール情報

LINEで受け取って最新情報をキャッチアップしよう

友達追加する(無料)

関連記事

この記事が役に立ったらシェアしてください