Help us improve
Share bugs, ideas, or general feedback.
From claude-obsidian
Strips ads, navigation, headers, footers, and boilerplate from web pages to output clean markdown for wiki ingestion. Saves 40-60% tokens on news articles, blog posts, and docs.
npx claudepluginhub agricidaniel/claude-obsidian --plugin claude-obsidianHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude-obsidian:defuddleThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
Extracts clean markdown from web pages using Defuddle CLI, removing navigation, ads, and clutter to save tokens. Use for URLs of docs, articles, blog posts instead of WebFetch.
Extracts clean markdown from web pages using Defuddle CLI, stripping clutter like navigation and ads to save tokens. Use for URLs to analyze docs, articles, or blogs instead of WebFetch.
Extracts clean markdown from web pages using Defuddle CLI, removing navigation, ads, and clutter to save tokens. Use over WebFetch for analyzing URLs like docs, articles, or blogs; skip for .md files.
Share bugs, ideas, or general feedback.
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.
npm install -g defuddle-cli
Verify: defuddle --version
defuddle https://example.com/article
Outputs clean markdown to stdout.
defuddle https://example.com/article > .raw/articles/article-slug-$(date +%Y-%m-%d).md
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
defuddle page.html
Use defuddle when:
Skip defuddle when:
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.
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:
ingest .raw/articles/[slug].md