Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provides a URL to read or analyze, for online documentation, articles, blog posts, or any standard web page. Do NOT use for URLs ending in .md — those are already markdown, use WebFetch directly.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# 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 |
The line at the top of this page pins the label git:20260711.1990e28, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
A 17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
pass: Frontmatter block present
pass: Frontmatter declares a name
pass: Frontmatter declares a description
pass: Size between 200 bytes and 200 KB (1123 bytes)
pass: No zero-width or bidi control characters
pass: No instruction hidden inside an HTML comment
pass: No link to an exfiltration or paste host
pass: No credential-shaped string
pass: No instruction to send local credentials anywhere
pass: No text hidden with inline styles
pass: No prompt-injection phrasing
pass: No curl or wget piped into a shell
pass: No recursive delete of root, home or parent
pass: No instruction to read or print local credentials
pass: No base64 blob over 200 characters
pass: No link to a raw IP address
pass: No script tag
Source
GitHub
atman-33/workhub · 3 stars · license MIT · pushed 2026-10-15 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_bkwaxhqgldyw72fi
GET https://markdownregistry.com/api/v1/resolve?ref=atman-33/workhub/defuddle
GET https://markdownregistry.com/api/v1/blob/10673a4dc70a0a057612d443243ab7a5aa4abdd4a0fadc3f6eec5fd71ad5a971
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
atman-33/workhub · plugins/agent-ops/skills/handoff-go/SKILL.md · Write a handoff document and launch the next agent in a split multiplexer pane (herdr or zellij), with new-window and…
atman-33/workhub · plugins/agent-ops/skills/herdr/SKILL.md · Control herdr from inside it. Manage workspaces and tabs, split panes, spawn agents, read output, and wait for state…
atman-33/workhub · plugins/agent-ops/skills/launch-team/SKILL.md · Launch a role-based team of Claude Code agents in separate multiplexer panes that coordinate on one task by messaging…
atman-33/workhub · plugins/agent-ops/skills/setup-herdr/SKILL.md · Install herdr (terminal-native agent multiplexer), set up its Claude Code and OpenCode integrations, and configure…
atman-33/workhub · plugins/agent-ops/skills/setup-zellij/SKILL.md · Install Zellij and configure shell profiles to auto-launch Zellij on startup (replacing any existing herdr autostart…
atman-33/workhub · plugins/agent-ops/skills/sidekick-go/SKILL.md · Use when the user explicitly asks to delegate work to a persistent sidekick/helper agent in its own pane that you can…
atman-33/workhub · plugins/agent-ops/skills/wsl-vscode-doctor/SKILL.md · Diagnose and fix `code .` failing to launch, or opening a disconnected Windows-side VS Code instead of a WSL-connected…
atman-33/workhub · plugins/authoring/skills/create-claude-md/SKILL.md · Generate or refine a concise, effective CLAUDE.md for the current project following official best-practice guidelines…
frankxai/claude-skills-library · free-skills/defuddle/SKILL.md · Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use…
jialuohu/codex-toolbox · plugins/research-tools/skills/defuddle/SKILL.md · Extract a standalone public article URL as clean Markdown. Excludes community threads, configured WeChat reading, and…
pantheon-org/tekhne · skills/documentation/obsidian/defuddle/SKILL.md · Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use…
tonydzi/second-brain-starter-kit · skills/defuddle/SKILL.md · Turn an article URL into a clean, vault-ready markdown note with the defuddle CLI, stripping ads, navigation and…
the-utopia-studio/skills · plugins/utopia-founder-productivity/skills/defuddle/SKILL.md · Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use…
yeaight7/agent-powerups · plugins/memory-optimization/skills/defuddle/SKILL.md · Use when the user provides a URL to a standard web page and clean Markdown extraction with Defuddle would reduce…
yeaight7/agent-powerups · skills/defuddle/SKILL.md · Use when the user provides a URL to a standard web page and clean Markdown extraction with Defuddle would reduce…