Defuddle — An open-source content extraction tool that turns only the main body of a web page into clean Markdown

Defuddle is a content extraction tool that strips ads, sidebars, navigation and other clutter from a web page and converts just the main content into clean Markdown. It is developed by kepano (Steph Ango), also known as the CEO of Obsidian, and was originally built as the extraction engine for Obsidian Web Clipper, the official browser extension for the note-taking app Obsidian. Released in February 2025, it is distributed as MIT-licensed open source on GitHub and npm. It can be called in three ways ─ as a library, a CLI, or a hosted API ─ and is useful when you want to save a blog post to your notes, or pull out only the body text as a preprocessing step before feeding a page to an LLM.

Key Features

  • A distinctive way of keeping only the main content: It uses the page’s own mobile CSS as a cue for what can safely be removed, stripping out ads, sidebars and navigation. Footnotes, math and code blocks are also normalized into a consistent format
  • Three ways to use it: Choose between an npm library (runs in the browser or Node.js, with support for JSDOM, linkedom and happy-dom), a CLI (npx defuddle parse <URL> --md), or a hosted API (just put a URL after defuddle.md/)
  • Metadata extraction: In addition to title, author and publish date, it can extract schema.org structured data. The hosted API returns Markdown with YAML frontmatter
  • Multiple output formats: Choose clean HTML, Markdown, or JSON (with the --json flag)
  • Bookmarklets: Add one to your bookmarks bar and you can convert the page you are viewing into Markdown and copy it to the clipboard in one click
  • An extraction engine used in production: It serves as the extraction engine for Obsidian Web Clipper and Obsidian Importer, so it is an implementation that runs inside real products

Pricing

Running it in your own environment as a library or CLI is free (MIT license, no API key required). Only the hosted API at defuddle.md is paid, and it is not a subscription: you buy blocks of requests as one-time purchases.

PlanPriceDetails
Free$0Up to 1,000 hosted API requests per month
1,000 requests$5 ($0.005 per request)One-time purchase, never expires
10,000 requests$40 ($0.004 per request)One-time purchase, never expires
100,000 requests$300 ($0.003 per request)One-time purchase, never expires

Pricing is as of September 2026. Please check the official website for the latest pricing.

Pros & Cons

✅ Pros

  • Running it yourself as a library or CLI costs nothing, so you can use it without worrying about how many pages you process
  • The same engine is available whether you are trying it out in the browser, building it into a script, or embedding it in your own app, so there is no switching cost from prototype to production
  • Author and publish date come along with the content, making it easier to organize saved pages later with proper attribution
  • You get Markdown without ads or menus mixed in, which reduces wasted tokens and noise when passing pages to an LLM
  • Extra hosted API request blocks never expire, so nothing goes to waste in months when you use it less

⚠️ Cons

  • The README states plainly that “Defuddle is very much a work in progress!”, so behavior and usage may change in future updates
  • The official website and documentation do not describe AI or LLM use cases. Using it for LLM preprocessing or through an MCP server relies mainly on third-party implementations and examples
  • Once you exceed the hosted API’s free tier (1,000 requests per month), you need to buy request blocks separately
  • Official sources do not make clear how well it handles pages that depend on JavaScript rendering. For pages it cannot fetch cleanly, you may need to combine it with other tools

Comparison with Similar Services

ServiceHow it differs from Defuddle
Mozilla ReadabilityA main-content extraction library that originated in Firefox’s Reader View. Defuddle’s README also names it as a point of comparison. It does not offer a CLI, a hosted API, or Markdown output
Jina ReaderA hosted Markdown conversion API used by adding a prefix in front of a URL. Its pricing model differs from Defuddle’s one-time request blocks
FirecrawlA scraping SaaS that bundles crawling, JavaScript rendering and structured data extraction. With that breadth of features comes a monthly subscription

Who Is It For

  • People who want to save web articles to a note-taking app such as Obsidian as body-only Markdown
  • Developers who want low-noise text ready before bringing web pages into an LLM or RAG pipeline
  • People who want to build main-content extraction into their own browser extension or app
  • People who want to fetch the body text of many pages via script for archiving or summarization
  • People who first want to try Markdown conversion casually through a bookmarklet or the web interface

Summary

Turning a web page into “readable text” is unglamorous work, but it is essential groundwork for organizing notes and for feeding content to AI. Defuddle offers that groundwork in a form you can build into your own environment for free. Keep in mind that it is explicitly labeled a work in progress, but a good first step is to try a bookmarklet, or the API that only asks you to put a URL after defuddle.md/, and see how cleanly your own articles come out as Markdown.

← Blog