Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
agricidaniel avatar

Defuddle

  • 312 installs
  • 10.4k repo stars
  • Updated August 1, 2026
  • agricidaniel/claude-obsidian

defuddle is a documentation skill that strips ads, navigation, headers, footers, and boilerplate from web pages and outputs clean markdown for developers who ingest URL content into Obsidian wikis or agent pipelines.

About

defuddle is a Claude agent skill that extracts meaningful article body content from web pages and discards everything else—ads, cookie banners, nav bars, related articles, footers, and social sharing widgets. The cleaned output arrives as readable markdown suitable for Obsidian vaults, RAG ingestion, or agent context. The skill readme states defuddle saves 40-60% tokens compared to raw page HTML by removing non-content noise. Developers trigger defuddle on phrases like clean this page, strip this url, or fetch and clean before wiki ingestion. Allowed tools are Read and Bash, making it a lightweight pre-processing step in documentation workflows.

  • Note simplification
  • Ambiguity removal
  • Heading restoration
  • Link cleanup
  • Readability passes

Defuddle by the numbers

  • 312 all-time installs (skills.sh)
  • Ranked #877 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/agricidaniel/claude-obsidian --skill defuddle

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs312
repo stars10.4k
Last updatedAugust 1, 2026
Repositoryagricidaniel/claude-obsidian

How do you clean web pages into markdown for Obsidian?

Clarify messy Obsidian notes by restructuring prose, resolving ambiguity, and distilling dense captures into readable, actionable documentation.

Who is it for?

Developers building Obsidian knowledge bases who fetch web articles and need token-efficient, clutter-free markdown.

Skip if: Pages requiring authenticated scraping, JavaScript-rendered SPAs without a static article body, or cases where full HTML structure must be preserved.

When should I use this skill?

A developer says defuddle, clean this page, strip this url, or wants readable markdown from a URL before wiki ingestion.

What you get

Clean markdown article body with boilerplate removed, ready for Obsidian or agent ingestion.

  • Clean markdown file
  • Boilerplate-stripped article text

By the numbers

  • Saves 40-60% tokens versus raw page HTML
  • Allowed tools: Read and Bash

Files

SKILL.mdMarkdownGitHub ↗

defuddle: Web Page Cleaner

Defuddle extracts the meaningful content from a web page and drops everything else: ads, cookie banners, nav bars, related articles, footers, social sharing buttons. What remains is the article body as clean markdown.

Use this before any URL ingestion. It is optional but strongly recommended. It cuts token usage by 40-60% on typical web articles and produces cleaner wiki pages.

Substrate note (v1.7+): Unlike obsidian-markdown / obsidian-bases / json-canvas (where we defer to kepano/obsidian-skills as upstream), the defuddle skill is original to claude-obsidian — kepano's marketplace does not ship a defuddle skill. This is the canonical version. The underlying defuddle-cli is independent of either marketplace and lives at github.com/kepano/defuddle.

---

Install

npm install -g defuddle-cli

Verify: defuddle --version

---

Usage

Clean a URL directly

defuddle https://example.com/article

Outputs clean markdown to stdout.

Save to .raw/

defuddle https://example.com/article > .raw/articles/article-slug-$(date +%Y-%m-%d).md

Add frontmatter header after saving

After running defuddle, prepend the source URL and fetch date:

SLUG="article-slug-$(date +%Y-%m-%d)"
{ echo "---"; echo "source_url: https://example.com/article"; echo "fetched: $(date +%Y-%m-%d)"; echo "---"; echo ""; defuddle https://example.com/article; } > .raw/articles/$SLUG.md

Clean a local HTML file

defuddle page.html

---

When to Use

Use defuddle when:

  • Ingesting a news article, blog post, or documentation page from a URL
  • The page has a lot of surrounding content (most web pages do)
  • You want to stay within token budget on a long article

Skip defuddle when:

  • The source is already a clean markdown or PDF file
  • The page is a dashboard, app, or structured data (defuddle expects article-style content)
  • defuddle is not installed and the article is short enough to process raw

---

Fallback

If defuddle is not installed, check:

which defuddle 2>/dev/null || echo "not installed"

If not installed: use WebFetch directly. The content will be less clean but still workable.

---

Integration with /wiki-ingest

The /wiki-ingest skill checks for defuddle automatically when a URL is passed. You do not need to run defuddle manually before ingesting a URL. The ingest skill will call it if available.

To manually clean a page and save before ingesting: 1. Run the save command above 2. Then: ingest .raw/articles/[slug].md

---

How to think (10-principle mapping)

When working on this skill, apply the 10-principle loop. See `skills/think/SKILL.md` for the canonical framework.

#PrincipleApplication here
1OBSERVE (ext)Which URL? What's actually on the page? Don't assume the title matches the content.
2OBSERVE (int)Am I assuming the page has the content the user expects? Verify before extracting.
3LISTENDid the user say "the article" (main content only) or "the link" (everything visible)?
4THINKStrip boilerplate, preserve structure, capture metadata. Quote URLs in shell to avoid injection.
5CONNECT (lat)How does this domain typically render? Some sites mangle defuddle's heuristics; track those.
6CONNECT (sys)Shells out to defuddle-cli (kepano); output lands in .raw/ for wiki-ingest pickup.
7FEELClean markdown that reads like the original, not boilerplate residue.
8ACCEPTSome pages don't extract well. Flag and move on; don't force when the heuristic loses.
9CREATEMarkdown to stdout, redirected to .raw/articles/<slug>-<date>.md.
10GROWExtraction failures suggest defuddle-cli upgrade or alternative extractor — track them as backlog.

Related skills

How it compares

Pick defuddle for Obsidian wiki prep with token reduction; pick full browser automation when the page requires login or heavy JavaScript rendering.

FAQ

How much token savings does defuddle provide?

Defuddle's skill readme reports 40-60% token savings by removing ads, navigation, headers, footers, and boilerplate from web pages. Only the article body remains as clean markdown for Obsidian or agent ingestion.

What web clutter does defuddle remove?

Defuddle removes ads, cookie banners, navigation bars, related articles, footers, and social sharing buttons from fetched URLs. The remaining output is the article body formatted as readable markdown.

Which tools does defuddle use?

Defuddle is configured with Read and Bash allowed tools. Developers invoke it before ingesting URL content into Obsidian wikis or agent context pipelines that need clutter-free markdown.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.