我在浏览 GitHub 推荐时,发现了一个特别有意思的项目,叫做 「mdream」。
一开始看到这个名字,我还以为是基于 「即梦」 或者 「Midjourney」 做的文生图工具,仔细一看发现不是那么回事儿,它解决了一个我们日常使用 Ai 的过程中的两个核心痛点:
如何高效地把网页内容喂给 AI 如何有效降低 tokens 消耗
我们平时想让 「Claude」 或 「GPT-5」 帮我们总结一个网页,是不是得手动复制粘贴?这个过程其实很麻烦,特别是当网页里有图片、表格或代码块时,复制过来一团乱麻。。头疼
而 mdream 这个小工具,就是为了解决这个痛点而生的。它可以把任何一个网站(或网页),直接转换成干净整洁的 「Markdown」 格式,甚至能生成一个叫 「llms.txt」 的文件。这个 llms.txt 文件,就是专门为大语言模型优化的“压缩包”。它能自动剔除网页中多余的导航栏、广告和页脚,只保留核心文本,大大节省token消耗。
mdream 的核心功能
mdream 的主要优势,我总结了一下:
是「专门为大语言模型优化的」。项目介绍里提到,它能将 HTML 转换成对 LLM 友好的 Markdown,可以节省大约 50% 的 token。在如今按 token 计费的模式下,这一点非常重要,因为每一个 token 都意味着成本。
转换的 Markdown 格式「非常干净」。它支持 YAML Frontmatter、嵌套结构和 HTML 标记,基本就是我们平时写作所用的格式。
「速度极快」。项目介绍中说,它能在 「50 毫秒内将 1.4MB 的 HTML 流式传输到 Markdown」。我自己也试了一下,速度确实非常快,几乎是瞬间完成。
而且,这个工具的「使用方式也很灵活」。它不仅是一个命令行工具,还提供了多种应用方案:
-
「mdream/crawl」:如果你需要爬取整个网站的内容,直接使用这个包就可以。
# Crawl a website and analyze with Claude
npx @mdream/crawl harlanzw.com
cat output/llms-full.txt | claude -p "give me a one sentence summary of this website" -
「Vite/Nuxt 插件」:对于前端开发者来说,可以把它作为插件,直接集成到你的项目里。
-
「API」:开发者可以直接调用它的 API,它提供了
htmlToMarkdown和streamHtmlToMarkdown两个核心函数,分别处理已有的 HTML 和流式 HTML,非常方便。
import { htmlToMarkdown } from 'mdream'
// Simple conversion
const markdown = htmlToMarkdown('<h1>Hello World</h1>')
console.log(markdown) // # Hello World
应用场景
mdream 的应用场景其实非常广泛。mdream 是一个高效的“数据整理师”,把杂乱无章的网页整理成清晰、有条理的笔记(其实有点类似与之前分享过的 obsidian 插件 obsidian_web_clipper),只是它面向的对象不是人,而是 AI,让 AI 学习起来事半功倍。
如果你想建立一个基于某个网站内容的 AI 知识库,比如公司的内部文档或者开源项目的 Wiki,用 mdream 爬一遍就能得到一份 Markdown 文档。这份文档可以直接喂给你的 「RAG」 应用,效果会比原始 HTML 好得多。。
我觉得,这才是创新,是让科技服务于人
最后,我想说,一个真正优秀的开发者,不仅是技术上的专家,更重要的是,他能发现一个「普遍存在但未被满足的需求」,然后用一种优雅的方式去解决它。
只有当我们把 AI 当作工具,而不是盲目崇拜它时,我们才能真正发挥它的作用。

