メインコンテンツへスキップ

概要

Web2MD CLI を使うと、ターミナルから直接、任意の URL をクリーンな Markdown に変換できます。出力を LLM にパイプしたり、URL リストをバッチ処理したり、Obsidian の Vault にコンテンツを取り込んだり — すべてブラウザを開かずに行えます。
CLI には Node.js 18 以上が必要です。node -v でバージョンを確認してください。

インストール

インストールは不要です。npx でそのまま実行できます。
起動を高速化したい場合は、グローバルにインストールすることもできます。

動作モード

Web2MD CLI は、設定に応じて 3 つのモードで動作します。

ローカル

デフォルトのモード。 API キー不要。ページを取得してローカルで変換します。大半の公開 Web サイトで動作します。

サーバー

API キー使用時。 WEB2MD_API_KEY を設定すると、Reddit や Fandom/Wikia など、サーバーサイド処理が必要な制限付きサイトに対応できます。

ブリッジ

--bridge フラグ使用時。 Chrome 拡張機能を利用して、静的な取得では届かない JS レンダリングページやログインが必要なページを取得します。

フラグ

環境変数

シェルのプロファイル(~/.zshrc または ~/.bashrc)に追加しておくと、セッションをまたいで有効になります。

使用例

基本的な変換

Markdown を標準出力に表示します。

LLM へのパイプ

ファイルへの保存

--meta フラグを付けると、タイトル、ソース URL、単語数、トークン数、読了時間、日付を含む YAML フロントマターが先頭に付加されます。

ファイルからのバッチ変換

urls.txt というファイルを作成します。
次のように実行します。
各 URL が ./research ディレクトリに個別の .md ファイルとして保存されます。

Obsidian Vault への取り込み

各ページが ~/Documents/MyVault/raw/ に保存され、変換したすべてのページへのリンクを含む ~/Documents/MyVault/INDEX.md が更新されます。

API キーを使った Reddit の変換

Reddit には有効な API キーが必要です。キーがない場合、Reddit のボット制限により Reddit の URL は変換に失敗します。

ブリッジモード

Chrome 拡張機能を使って、JS レンダリングページやログインが必要なページを処理します。
ブリッジモードを使うには、Web2MD Chrome 拡張機能がインストールされていて、Chrome が起動している必要があります。CLI は Chrome の Native Messaging プロトコルを介して拡張機能と通信します。

JSON 出力

構造化された出力を返します。
プログラムからの利用や jq へのパイプに便利です。

最適化済みサイト

Web2MD には以下のサイト向けのアダプターが組み込まれており、汎用の変換よりもクリーンな出力が得られます。
  • Wikipedia — 記事のクリーンな抽出、インフォボックスの処理
  • arXiv — 論文のアブストラクトとメタデータ
  • Hacker News — コメント付きスレッド
  • GitHub — Issue と Pull Request
  • Stack Overflow — 質問と回答
  • dev.to — ブログ記事
  • Medium — 記事(ペイウォールのプレビューを回避)
  • Substack — ニュースレター記事
  • OpenAI Docs — ドキュメントページ
  • Mintlify ベースのドキュメント — Mintlify で構築されたドキュメントサイト
  • Reddit — 投稿とコメント(API キーが必要)

よくあるワークフロー

AI エージェントのコンテキストディレクトリを ./context に向ければ、根拠に基づいた回答が得られます。
Obsidian にインデックス付きで検索可能なリサーチ Vault を作成します。
画像とリンクを除去し、LLM へパイプする際のトークン消費を削減します。