defuddle-skill

A Claude Code skill that pulls a clean article from a web page into Markdown with metadata and saves the file

  • 112 ★ on the repository
  • Last commit
Skill

Extended access

Why this level

  • The installer runs `npm install -g defuddle jsdom` and copies a file into `~/.claude/skills/`
  • The agent opens any link you give it and writes files into the chosen directory
All reasons and checks

joeseesun/defuddle-skill

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/defuddle-skill

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The installer runs `npm install -g defuddle jsdom` and copies a file into `~/.claude/skills/`
  • The agent opens any link you give it and writes files into the chosen directory

This is third-party code. Review the repository files before installing.

What it does

defuddle-skill wraps the defuddle command-line utility into a skill for Claude Code. Given a link or a local HTML file, the agent runs `defuddle parse "<url>" -m -j` and gets the main text as Markdown, without ads, sidebars and navigation, together with metadata: title, author, publication date, domain and word count. It then shows the title, author, source, word count and the start of the text. On first use in a conversation the skill asks which directory to save to and writes a Markdown file with a header of the `title`, `author`, `source`, `date`, `clipped` and `wordCount` fields. The file name comes from the article title with special characters replaced by spaces. Before working the skill checks that `defuddle` exists and, if it does not, installs `defuddle` and `jsdom` globally through `npm`. The `npx defuddle-skill` installer copies `SKILL.md` into `~/.claude/skills/defuddle/`.

Who it is for. People who collect articles and documentation into notes and want clean Markdown without ads and navigation from a link right inside a Claude Code session.

Good fit when

  • A blog article should become a Markdown note file with author, date and source
  • The agent has to read documentation from a link without the page noise
  • A single field such as the author or publication date is pulled from a page with the `-p` flag
  • A local HTML file is cleaned of navigation and ad blocks

Not a fit when

  • The page is built entirely with JavaScript: the author warns that SPAs and WeChat articles need browser rendering
  • You need to crawl a whole site or search it: the skill reads one page at a time
  • You need PDF and Office file parsing: the catalog has other tools for that, for example MarkItDown

Example request

Extract the article at this link into Markdown, show the author and word count and save the file to my notes folder

Limitations

Node.js and npm are required, and `jsdom` installs as a mandatory dependency. The skill reads article-style pages best: blogs, news and documentation. It is not designed to handle JavaScript pages and SPAs. The last commit in the repository was made in March 2026. The file is written only after you choose a directory, and its name is built from the article title, so long titles give long names. The installer runs `npm install -g` without asking if `defuddle` is not found, and parsing will not start without `jsdom`.

How to disable. Delete the `~/.claude/skills/defuddle/` folder and, if you no longer need the utility, remove the packages with `npm uninstall -g defuddle jsdom`.

FAQ

How do I install defuddle-skill?

With `npx defuddle-skill`: it installs `defuddle` if missing and copies the skill into `~/.claude/skills/defuddle/`. Alternatives are `npx skills add joeseesun/defuddle-skill` or `bash install.sh` from a cloned repository.

Which phrases trigger the skill?

The words "defuddle", "extract article", "clean this page", "get content from URL" and similar requests to extract an article from a link, clean a page or get clean Markdown.

What ends up in the file?

A header with the `title`, `author`, `source`, `date`, `clipped` and `wordCount` fields, then a first-level heading and the article text in Markdown. The `date` field takes "Unknown" when no publication date was found.

Can I take just one field from a page?

Yes, with the `-p` flag: for example `defuddle parse <url> -p author` returns the author, and `title`, `description`, `domain`, `published`, `wordCount` and `content` are available too.

Why did the skill fail on a page?

Most likely the page is built with JavaScript: the author names such cases, SPAs and WeChat articles, which need browser rendering. For ordinary article pages of blogs and documentation the result is stable.

Discussion

No questions or reviews yet.

Skills

A skill that reads a link and hands the agent the full text as Markdown, picking a separate route for WeChat pages, Feishu docs, PDFs and arXiv papers

SkillExtended access512Repository stars

A Claude Code skill that turns "research this topic" into a multi-phase investigation: hypotheses, parallel search, a file per source and citation checks

SkillExtended access367Repository stars

Deep Research

Deep Research Skill for Claude Code

A deep research skill for Claude Code: multi-phase search, claim verification and cited reports in Markdown, HTML and PDF

SkillExtended access1.2KRepository stars

Six OpenClaw skills: four-source search, page extraction to Markdown, GitHub repository analysis and dependency checks.

SkillExtended access55Repository stars

A skill that turns a link into clean Markdown via Scrapling with a Jina Reader fallback, incl. WeChat, Juejin and CSDN articles

SkillExtended access613Repository stars

The browse skill from the Stagehand repository teaches an agent to open, read and click pages through the browse CLI.

SkillBroad access26KRepository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
defuddle-skill (this card)no112
MarkItDownyesnot required195,008converts PDF, Word, Excel and HTML files to Markdown and is not built for web pages
Firecrawl CLIno684cloud scraping, site crawling and URL maps, while this skill reads one page locally

README in short

The documentation lists three install methods, lists trigger phrases and sample requests, gives a reference for the `defuddle parse` flags (`-m`, `-j`, `-o`, `-p`, `--debug`) and names the defuddle utility as its base.

README badge

Original SKILL.md

---
name: defuddle
description: Extract clean article content from web pages or local HTML files. Removes clutter (ads, sidebars, nav) and returns readable content with metadata.
trigger: Use when user wants to extract/clean web page content, strip clutter from HTML, get article text from a URL, or convert web pages to clean markdown. Triggers include "defuddle", "extract article", "clean this page", "get content from URL", "strip clutter", "web extract".
---

# Defuddle - Web Content Extraction

Extract main article content from web pages, removing ads, sidebars, navigation, and other clutter. Output clean Markdown with metadata.

## Prerequisites

Before first use, check if `defuddle` is installed:

```bash
command -v defuddle >/dev/null 2>&1 || npm install -g defuddle jsdom
```

## Default Workflow

When user provides a URL, follow this workflow:

### Step 1: Extract content as Markdown + JSON metadata

Always use both `-m` and `-j` flags to get markdown content with full metadata:

```bash
defuddle parse "<url>" -m -j
```

### Step 2: Present a summary to the user

Show the user:
- **Title**: from JSON `title` field
- **Author**: from JSON `author` field
- **Source**: domain
- **Word count**: from JSON `wordCount` field
- A brief preview (first 2-3 sentences)

### Step 3: Ask where to save

Report a problem