# defuddle

Pulls the main article text from a web page or local HTML file, drops ads, sidebars and nav, and returns Markdown with metadata.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1300 installs · ★ 112
- Author: joeseesun
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/joeseesun/defuddle-skill/tree/HEAD/skills/defuddle/SKILL.md
- Updated: 2026-03-03
- HTML: https://affpapa.org/en/nevibecode/skills/joeseesun-defuddle

## What it does

The skill drives the `defuddle` CLI and turns a page into readable Markdown. Its workflow is spelled out step by step: parse the source with `-m` and `-j`, show you a summary with title, author, domain, word count and the opening sentences, then ask where to save. After that the agent writes a Markdown file with frontmatter and reports the path.

Before the first run it checks whether `defuddle` is present and installs it globally alongside `jsdom` if not. Node.js and npm are required, since `jsdom` comes in as a peer dependency. A source can be a URL or a path to a local HTML file, and the `-p` flag pulls a single field such as `title` or `wordCount`.

The skill targets article-style pages: blogs, news, documentation. Single-page apps and sites that render content in the browser are out of scope, because those need a real browser — worth checking whether the text is in the raw HTML before you rely on it.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add joeseesun/defuddle-skill --skill defuddle -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/defuddle/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/defuddle/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add joeseesun/defuddle-skill --skill defuddle -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/defuddle/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add joeseesun/defuddle-skill --skill defuddle -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/defuddle/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install joeseesun/defuddle-skill defuddle
```

2. **Manually: put the files in place**
- File: `.github/skills/defuddle/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add joeseesun/defuddle-skill --skill defuddle -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/joeseesun/defuddle-skill --path skills/defuddle
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/defuddle/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add joeseesun/defuddle-skill --skill defuddle -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/joeseesun/defuddle-skill/tree/HEAD/skills/defuddle/SKILL.md

## When to use it
- grab an article's text from a link without ads or menus
- clean a saved HTML file into Markdown
- keep title, author and publish date alongside the body
- count words before saving a piece
- file read articles into a folder with frontmatter

## Example prompts
- Extract the article at this URL and save it to `~/Documents`
- Clean this HTML file and show me the first sentences
- How many words are in the article at this link?

## Similar
- [firecrawl-download](https://affpapa.org/en/nevibecode/skills/firecrawl-download.md) — skill · 79900 installs
- [md2wechat](https://affpapa.org/en/nevibecode/skills/md2wechat.md) — skill · 2500 installs
- [firecrawl-knowledge-ingest](https://affpapa.org/en/nevibecode/skills/firecrawl-knowledge-ingest.md) — skill · 31400 installs
- [qiaomu-markdown-proxy](https://affpapa.org/en/nevibecode/skills/qiaomu-markdown-proxy.md) — skill · 659 installs
- [baoyu-danger-x-to-markdown](https://affpapa.org/en/nevibecode/skills/baoyu-danger-x-to-markdown.md) — skill · 28000 installs
- [firecrawl-research](https://affpapa.org/en/nevibecode/skills/firecrawl-research.md) — skill · 379 installs

## Other versions with the same name
- [defuddle · kepano](https://affpapa.org/en/nevibecode/skills/defuddle.md) — 74400 installs
- [defuddle · agricidaniel](https://affpapa.org/en/nevibecode/skills/agricidaniel-defuddle.md) — 433 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
