
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 defuddleAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 312 |
|---|---|
| repo stars | ★ 10.4k |
| Last updated | August 1, 2026 |
| Repository | agricidaniel/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
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-cliVerify: defuddle --version
---
Usage
Clean a URL directly
defuddle https://example.com/articleOutputs clean markdown to stdout.
Save to .raw/
defuddle https://example.com/article > .raw/articles/article-slug-$(date +%Y-%m-%d).mdAdd 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.mdClean 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.
| # | Principle | Application here |
|---|---|---|
| 1 | OBSERVE (ext) | Which URL? What's actually on the page? Don't assume the title matches the content. |
| 2 | OBSERVE (int) | Am I assuming the page has the content the user expects? Verify before extracting. |
| 3 | LISTEN | Did the user say "the article" (main content only) or "the link" (everything visible)? |
| 4 | THINK | Strip boilerplate, preserve structure, capture metadata. Quote URLs in shell to avoid injection. |
| 5 | CONNECT (lat) | How does this domain typically render? Some sites mangle defuddle's heuristics; track those. |
| 6 | CONNECT (sys) | Shells out to defuddle-cli (kepano); output lands in .raw/ for wiki-ingest pickup. |
| 7 | FEEL | Clean markdown that reads like the original, not boilerplate residue. |
| 8 | ACCEPT | Some pages don't extract well. Flag and move on; don't force when the heuristic loses. |
| 9 | CREATE | Markdown to stdout, redirected to .raw/articles/<slug>-<date>.md. |
| 10 | GROW | Extraction 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.