{"id":"cef7c373-2889-4074-b74f-36afd7cba9cd","shortId":"3Wrkmz","kind":"skill","title":"defuddle","tagline":"Strip clutter from web pages before ingesting into the wiki. Removes ads, navigation, headers, footers, and boilerplate: leaving clean readable markdown that saves 40-60% tokens. Triggers on: defuddle, clean this page, strip this url, fetch and clean, clean web content before ing","description":"# defuddle: Web Page Cleaner\n\nDefuddle 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.\n\nUse 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.\n\n---\n\n## Install\n\n```bash\nnpm install -g defuddle-cli\n```\n\nVerify: `defuddle --version`\n\n---\n\n## Usage\n\n### Clean a URL directly\n```bash\ndefuddle https://example.com/article\n```\nOutputs clean markdown to stdout.\n\n### Save to .raw/\n```bash\ndefuddle https://example.com/article > .raw/articles/article-slug-$(date +%Y-%m-%d).md\n```\n\n### Add frontmatter header after saving\nAfter running defuddle, prepend the source URL and fetch date:\n```bash\nSLUG=\"article-slug-$(date +%Y-%m-%d)\"\n{ 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\n```\n\n### Clean a local HTML file\n```bash\ndefuddle page.html\n```\n\n---\n\n## When to Use\n\n**Use defuddle when:**\n- Ingesting a news article, blog post, or documentation page from a URL\n- The page has a lot of surrounding content (most web pages do)\n- You want to stay within token budget on a long article\n\n**Skip defuddle when:**\n- The source is already a clean markdown or PDF file\n- The page is a dashboard, app, or structured data (defuddle expects article-style content)\n- defuddle is not installed and the article is short enough to process raw\n\n---\n\n## Fallback\n\nIf defuddle is not installed, check:\n\n```bash\nwhich defuddle 2>/dev/null || echo \"not installed\"\n```\n\nIf not installed: use WebFetch directly. The content will be less clean but still workable.\n\n---\n\n## Integration with /wiki-ingest\n\nThe `/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.\n\nTo manually clean a page and save before ingesting:\n1. Run the save command above\n2. Then: `ingest .raw/articles/[slug].md`","tags":["defuddle","claude","obsidian","agricidaniel","agent-skills","ai-second-brain","autonomous-research","claude-code","claude-code-skill","claude-plugin","karpathy-llm-wiki","knowledge-graph"],"capabilities":["skill","source-agricidaniel","skill-defuddle","topic-agent-skills","topic-ai-second-brain","topic-autonomous-research","topic-claude-code","topic-claude-code-skill","topic-claude-plugin","topic-karpathy-llm-wiki","topic-knowledge-graph","topic-knowledge-management","topic-llm","topic-multi-agent","topic-obsidian"],"categories":["claude-obsidian"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/AgriciDaniel/claude-obsidian/defuddle","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add AgriciDaniel/claude-obsidian","source_repo":"https://github.com/AgriciDaniel/claude-obsidian","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 5150 github stars · SKILL.md body (2,189 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:52:44.045Z","embedding":null,"createdAt":"2026-05-18T12:53:57.093Z","updatedAt":"2026-05-18T18:52:44.045Z","lastSeenAt":"2026-05-18T18:52:44.045Z","tsv":"'-60':26,100 '/article':130,143,180 '/article;':192 '/dev/null':296 '/wiki-ingest':317,319 '1':359 '2':295,365 '40':25,99 'ad':13,62 'add':150 'alreadi':250 'app':262 'articl':68,77,104,168,212,243,269,278 'article-slug':167 'article-styl':268 'automat':324 'avail':349 'banner':64 'bar':66 'bash':111,126,139,165,200,292 'blog':213 'bodi':78 'boilerpl':18 'budget':239 'button':72 'call':346 'check':291,321 'clean':20,31,39,40,80,122,132,195,252,311,352 'cleaner':48,107 'cli':117 'clutter':3 'command':363 'content':42,53,228,271,307 'cooki':63 'cut':95 'd':148,173,186 'dashboard':261 'data':265 'date':145,164,170,183 'defuddl':1,30,45,49,116,119,127,140,157,189,201,207,245,266,272,287,294,323,336 'defuddle-c':115 'direct':125,305 'document':216 'drop':59 'echo':174,175,181,187,188,297 'els':61 'enough':281 'everyth':60 'example.com':129,142,179,191 'example.com/article':128,141,178 'example.com/article;':190 'expect':267 'extract':50 'fallback':285 'fetch':37,163,182 'file':199,256 'footer':16,69 'frontmatt':151 'g':114 'header':15,152 'html':198 'ing':44 'ingest':8,87,209,339,343,358,367 'instal':110,113,275,290,299,302 'integr':315 'leav':19 'less':310 'local':197 'long':242 'lot':225 'm':147,172,185 'manual':337,351 'markdown':22,81,133,253 'md':149,370 'meaning':52 'nav':65 'navig':14 'need':333 'news':211 'npm':112 'option':90 'output':131 'page':6,33,47,57,109,217,222,231,258,354 'page.html':202 'pass':329 'pdf':255 'post':214 'prepend':158 'process':283 'produc':106 'raw':138,284 'raw/articles':193,368 'raw/articles/article-slug-':144 'readabl':21 'recommend':93 'relat':67 'remain':74 'remov':12 'run':156,335,360 'save':24,136,154,356,362 'share':71 'short':280 'skill':320,344 'skill-defuddle' 'skip':244 'slug':166,169,369 'slug.md':194 'social':70 'sourc':160,176,248 'source-agricidaniel' 'stay':236 'stdout':135 'still':313 'strip':2,34 'strong':92 'structur':264 'style':270 'surround':227 'token':27,96,238 'topic-agent-skills' 'topic-ai-second-brain' 'topic-autonomous-research' 'topic-claude-code' 'topic-claude-code-skill' 'topic-claude-plugin' 'topic-karpathy-llm-wiki' 'topic-knowledge-graph' 'topic-knowledge-management' 'topic-llm' 'topic-multi-agent' 'topic-obsidian' 'trigger':28 'typic':102 'url':36,86,124,161,177,220,327,341 'usag':97,121 'use':82,205,206,303 'verifi':118 'version':120 'want':234 'web':5,41,46,56,103,230 'webfetch':304 'wiki':11,108 'within':237 'workabl':314 'y':146,171,184","prices":[{"id":"14f2fbee-57b0-414b-ac52-0c303434a0be","listingId":"cef7c373-2889-4074-b74f-36afd7cba9cd","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"AgriciDaniel","category":"claude-obsidian","install_from":"skills.sh"},"createdAt":"2026-05-18T12:53:57.093Z"}],"sources":[{"listingId":"cef7c373-2889-4074-b74f-36afd7cba9cd","source":"github","sourceId":"AgriciDaniel/claude-obsidian/defuddle","sourceUrl":"https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/defuddle","isPrimary":false,"firstSeenAt":"2026-05-18T12:53:57.093Z","lastSeenAt":"2026-05-18T18:52:44.045Z"}],"details":{"listingId":"cef7c373-2889-4074-b74f-36afd7cba9cd","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"AgriciDaniel","slug":"defuddle","github":{"repo":"AgriciDaniel/claude-obsidian","stars":5150,"topics":["agent-skills","ai","ai-second-brain","autonomous-research","claude-code","claude-code-skill","claude-plugin","karpathy-llm-wiki","knowledge-graph","knowledge-management","llm","multi-agent","obsidian","obsidian-ai","obsidian-plugin","open-source","pkm","rag","second-brain","wiki"],"license":"mit","html_url":"https://github.com/AgriciDaniel/claude-obsidian","pushed_at":"2026-04-24T10:21:48Z","description":"Claude + Obsidian knowledge companion. Persistent, compounding wiki vault based on Karpathy's LLM Wiki pattern. /wiki /save /autoresearch","skill_md_sha":"519ec11e5cb28f03f0399f0a7bd90cbfb7511cfd","skill_md_path":"skills/defuddle/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/AgriciDaniel/claude-obsidian/tree/main/skills/defuddle"},"layout":"multi","source":"github","category":"claude-obsidian","frontmatter":{"name":"defuddle","description":"Strip clutter from web pages before ingesting into the wiki. Removes ads, navigation, headers, footers, and boilerplate: leaving clean readable markdown that saves 40-60% tokens. Triggers on: defuddle, clean this page, strip this url, fetch and clean, clean web content before ingesting, strip ads, remove clutter, clean URL content, readable markdown from URL."},"skills_sh_url":"https://skills.sh/AgriciDaniel/claude-obsidian/defuddle"},"updatedAt":"2026-05-18T18:52:44.045Z"}}