tameshita新しいツールを実際に動かした記録

moliとは?使い方・できることを実際に使って検証した動いた

配布元: https://github.com/lexmount/moli  / 2026-10-22 時点で確認

この日に実際に動かした結果です。内容の誤りに気づかれた場合はお問い合わせください。確認のうえ訂正します。

使う前に分かること

必要なものClaude Code などのコーディングエージェント
動かした環境Linux(x86_64)、Claude Code。
日本語画面・文書は英語
確認日2026-10-22(この日に実際に動かした)

コーディングエージェントに「このページの中身を教えて」と頼んでも、うまく読めずに困ることがあります。最近のWebページの多くは、最初に届く中身がほとんど空で、JavaScriptが動いたあとに本文が出てくる作りになっているからです。今回試したmoliは、そういうページでもエージェントが中身をちゃんと読み取れるようにするための、ヘッドレスブラウザです。ターミナルから自分でコマンドを打って中身の取り出し・見た目のスクリーンショットを試したあと、最後にエージェントへ日本語で頼んで、実際にページの内容を教えてもらうところまでやりました。

追記(2026-10-22): 公開からスターは2,219から一時2万を超え、本記事執筆時点では19,976。本体のバージョンも公開時の1.1.9から1.1.19まで5回上がりましたが、そのたびにインストールとmoli fetchの取り出し(markdown・screenshot・pdf)をもう一度試し、インストールの手順・コマンドの使い方・取れる中身が前回と変わらないことを確認してきました。唯一の変化は1.1.17で、ここで取り出し方の1つpdf(PDFとして保存)を新たに試せたので、下の「ページをPDFとして保存する」に追記しています。1.1.19では配布元のコードを見る限りmoli serve(Skillのうち今回は使っていないmoli-cdp-server向け)にデバッガ用の引数が増えただけで、今回試した範囲への影響はありませんでした。

moli本体とSkillを入れる

moliは、Chromeなどの既存のブラウザを内部で呼び出すのではなく、Rustでゼロから書かれた独立したブラウザです。実行ファイルを1つ置くだけで動き、別の言語の実行環境を用意する必要はありませんでした。

ターミナルを開いて、配布元が用意しているインストール用のスクリプトを取ってきて、そのまま走らせます。

curl --proto "=https" --tlsv1.2 -fsSL \
  https://github.com/lexmount/moli/releases/latest/download/moli-installer.sh | sh
Downloading moli-x86_64-unknown-linux-gnu.tar.gz...
Installed moli to /root/.local/bin/moli

バージョンを確認しておきます。

moli --version
moli 1.1.19

moliは自分でコマンドを打って使うこともできますが、用意されているのはコーディングエージェント(Claude CodeやCodexなど)向けのSkillです。配布元のファイル一式を取ってきて、Skillを置く場所にコピーします。

git clone https://github.com/lexmount/moli.git
Cloning into 'moli'...

Skillは決まったフォルダに置きます。Skillを一度も入れたことがなければそのフォルダ自体がまだ無いので、 作ってからコピーしました(既にあればそのまま使われます)。

mkdir -p ~/.claude/skills
cp -R moli/skills/. ~/.claude/skills/
ls ~/.claude/skills/
moli-cdp-server
moli-webfetch
moli-websearch

3つ入りました。今回使うのは、URLを渡して中身を取ってこさせるmoli-webfetchです。moli-websearchはキーワードや画像でWebを検索する用、moli-cdp-serverはページのクリックやフォーム入力まで自動化する用で、今回はどちらも使っていません。

8種類の取り出し方から3つを試す

moliはページの中身を、そのまま欲しい形で取り出せます。今回試したのは「読みやすい文章として」「見た目の画像として」「PDFとして」の3つです。

取り出し方 中身 今回
markdown ページを読みやすいMarkdownに変換したもの ✓
html レンダリングしたあとのHTML
json ステータスコードやヘッダーなどをまとめた情報
screenshot 画面に見えている範囲のPNG画像 ✓
screenshot_full ページ全体を1枚に収めたPNG画像
pdf ページをPDFとして保存したもの ✓
semantic_tree 見出しやリンクの役割が分かる構造化データ
semantic_tree_text 同じ内容をテキストとして読める形にしたもの

エージェントに頼む

ここからは、Skillを入れたエージェントに実際にお願いしてみます。エージェントのチャット欄に、そのままこう頼みました。

https://pypi.org/project/requests/ の内容を取ってきて、何のパッケージか3行くらいで教えて

すると、こう返ってきました。

requests(バージョン2.34.2)は、Python用のシンプルでエレガントなHTTPライブラリ("Python HTTP for Humans")です。GET/POSTなどのHTTPリクエストを直感的なAPIで送受信でき、認証・セッション管理・JSON処理などを簡単に扱えるようにする、Pythonエコシステムで最も広く使われている定番パッケージの一つです。`pip install requests` でインストールでき、公式ドキュメントは https://requests.readthedocs.io にあります。

ページの中身をそのまま貼るように頼んだわけではないのに、実際のバージョン番号やインストール方法まで正しく拾えていました。裏では、Skillの手順どおりにmoli fetch --dump markdownが実行され、そこで取れたMarkdownを読んでからこの返事を作っています。

自分の手でも試す

moliのSkillはmoli fetchコマンドを呼んでいるだけなので、自分の手で同じコマンドを打つこともできます。JavaScriptで後から中身を書き足すタイプのページとして、パッケージ検索サイトJSRのページを渡してみました。

moli fetch --dump markdown --wait-until networkidle https://jsr.io/@std/path
[Skip to main content](#main-content)

[Home](/)

[JSR](/)

Search for packages

[PackagesBrowse packages](/packages)|[Docs](/docs)||[Sign in](/login?redirect=%2F%40std%2Fpath)

Search for packages

# [@std](/@std)/[path](/@std/path)@1.1.6  Built and signed on GitHub Actions  Built and signed on GitHub Actions

latest

[denoland/std](https://github.com/denoland/std)

メニューの文字やパッケージ名・バージョンなど、JavaScriptが後から書き足す部分まで、ちゃんと文章として取れています。

同じページの見た目も確認しました。--layoutを付けると画面のレイアウトが計算されるようになり、スクリーンショットが撮れます。

moli fetch --layout --dump screenshot https://jsr.io/@std/path > shot.png

> shot.pngの部分で、今いるフォルダにそのファイル名で保存されます。画像としてちゃんと保存できたかを確認するため、ファイルの種類を見るコマンドにかけてみます。

file shot.png
shot.png: PNG image data, 1920 x 1080, 8-bit/color RGBA, non-interlaced

1920×1080のPNG画像として保存できていました。開いてみると、こうなっていました。

JSRのパッケージページをmoliで撮ったスクリーンショット

検索ボックスやタブ、右側の「Use with」の選択メニューまで、実際にブラウザで開いた時と同じ見た目で撮れていました。

ページをPDFとして保存する(2026-10-15追記)

1.1.17に上がったタイミングで、まだ試していなかったpdfという取り出し方も試してみました。画面のレイアウトを計算する--layoutを付けて、--dump pdfを指定します。

moli fetch --layout --dump pdf https://jsr.io/@std/path > jsr.pdf

このコマンドだけだと画面にPDFのデータがそのまま出てしまうので、>で保存先のファイル名を指定しています。ちゃんとPDFファイルとして保存できたか、中身を見るコマンドにかけて確認します。

pdfinfo jsr.pdf
Pages:           2
Page size:       612 x 792 pts (letter)
PDF version:     1.7

開いてみると、こうなっていました。

moliでPDF保存したJSRのパッケージページ

コードブロックの薄い灰色の背景や、黄色い「latest」のバッジ、プログラムコードの色分けまで、画面の見た目がそのままPDFに残っていました。これは1.1.17で入った変更で、配布元のコードを見ると、このバージョンからPDFに書き出すときに背景色を保持するようになっていました(それより前のバージョンでどうだったかは試していません)。

お金はかかるか

今回使ったmoli本体は、ここまで全部無料でした。ソースコードも公開されていて、追加の登録やAPIキーも必要ありません。

同じ開発元は、ブラウザを自分の手元やサーバーに用意しなくても使えるクラウド版(Lexmount Browser)も別に提供しています。今回はそちらには触れておらず、自分の環境に入れたmoli本体だけで完結する範囲を試しました。

まとめ

moliは、エージェントがJavaScriptで書かれた最近のWebページの中身までちゃんと読み取れるようにしてくれる、軽いブラウザでした。インストールは実行ファイルを1つ置くだけで、Skillさえ入れておけば、日本語で「このページの内容を教えて」と頼むだけで、実際のバージョン番号やインストール方法まで正確に拾ってきてくれました。自分のエージェントにWebページを読ませたい場面があるので、今後もこれを使っていくと思います。クリックやフォーム入力までブラウザの操作そのものを自動化したい場合は、最初に入れたmoli-cdp-serverのSkillがmoli serveで操作用のサーバーを立ち上げ、そこにPlaywrightのような自動操作のツールを繋ぐ形になります。今回はそこまでは試していません。

確認した環境

最初の検証(2026-09-22)、2026-10-08の再検証(1.1.9→1.1.15)、2026-10-12の再検証(1.1.15→1.1.16)、2026-10-15の再検証(1.1.16→1.1.17)、2026-10-19の再検証(1.1.17→1.1.18)、2026-10-22の再検証(1.1.18→1.1.19)は、いずれもLinux(x86_64)のクラウド環境で、Claude Codeを使いました。インストールとmoli fetchでの取り出しは6回とも同じ結果でした。インストール用のスクリプトはMacにも対応しています(配布元が同じcurlの手順をMac向けにも用意しており、Windows向けにはPowerShellの手順が別に用意されています)が、そちらは今回試していません。

おすすめのツール・サービス