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.
2 stars
0 votes
0 copies
3 views
Added September 6, 2026
ai-agentsgobashdocumentation
Works with
claude code
cli
Security analysis
A92/100
mediumInstalls packages at runtime which could introduce malicious dependencies
Installs into .claude/skills of the current project.
Are you the author of Defuddle?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/risadams-defuddle)
---
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"
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` (or workspace-local `.ink-and-agency/` where the sandbox confines writes). Read it first; append what the run taught — [SELF-EVOLVE.md](../SELF-EVOLVE.md).
<!-- self-evolve:end -->