Extract clean markdown from web pages using Defuddle CLI, stripping navigation and clutter to save tokens. Use instead of WebFetch for any standard web page, documentation, article, or blog post — but not for URLs ending in .md, which WebFetch handles directly.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add risadams/ink-and-agency --skill defuddle --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Defuddle?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/risadams-defuddle)More formats (shields.io, HTML) on the badges page.
---
name: defuddle
category: meta-orchestration
description: >
Extract clean markdown from web pages using Defuddle CLI, stripping navigation and clutter
to save tokens. Use instead of WebFetch for any standard web page, documentation, article,
or blog post — but not for URLs ending in .md, which WebFetch handles directly.
codex-short-description: "Extract clean markdown from web pages via Defuddle CLI, stripping clutter"
related-skills:
- technical-writer
- documentation-engineer
loop-eligible: false
compatibility: claude-code codex opencode
---
# Defuddle
Use Defuddle CLI to extract clean readable content from web pages. Prefer over WebFetch for standard web pages — it removes navigation, ads, and clutter, reducing token usage.
If not installed: `npm install -g defuddle`
## Usage
Always use `--md` for markdown output:
```bash
defuddle parse <url> --md
```
Save to file:
```bash
defuddle parse <url> --md -o content.md
```
Extract specific metadata:
```bash
defuddle parse <url> -p title
defuddle parse <url> -p description
defuddle parse <url> -p domain
```
## Output formats
| Flag | Format |
|------|--------|
| `--md` | Markdown (default choice) |
| `--json` | JSON with both HTML and markdown |
| (none) | HTML |
| `-p <name>` | Specific metadata property |
> **Host portability:** tool names in this skill follow Claude Code conventions; on other hosts (Codex, opencode) map them by intent — see [PORTABILITY.md](../PORTABILITY.md).
<!-- self-evolve:start -->
## Self-Evolve Loop
Journal: `~/.ink-and-agency/learnings/defuddle.md` (workspace-local
`.ink-and-agency/learnings/defuddle.md` where the sandbox confines writes). Read it
first, append what the run taught last — [SELF-EVOLVE.md](../SELF-EVOLVE.md).
<!-- self-evolve:end -->
Is this your skill, or is something wrong with this listing? . Author removals are honored within 72 hours.
No comments yet. Be the first to comment!