defuddle-skill

Скилл для Claude Code: вытаскивает из веб-страницы чистую статью в Markdown с метаданными и сохраняет файл

  • 112 ★ репозитория
  • Последний коммит
Скилл

Расширенный доступ

Почему такой уровень

  • Установщик запускает `npm install -g defuddle jsdom` и копирует файл в `~/.claude/skills/`
  • Агент открывает любые ссылки, которые вы ему дадите, и пишет файлы в выбранный каталог
Все причины и проверки

joeseesun/defuddle-skill

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/defuddle-skill

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Установщик запускает `npm install -g defuddle jsdom` и копирует файл в `~/.claude/skills/`
  • Агент открывает любые ссылки, которые вы ему дадите, и пишет файлы в выбранный каталог

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

defuddle-skill оборачивает консольную утилиту defuddle в скилл для Claude Code. Получив ссылку или локальный HTML-файл, агент запускает `defuddle parse "<адрес>" -m -j` и получает основной текст без рекламы, боковых панелей и навигации в Markdown вместе с метаданными: заголовком, автором, датой публикации, доменом и числом слов. Затем он показывает заголовок, автора, источник, число слов и начало текста. При первом обращении за разговор скилл спрашивает, в какой каталог сохранять, и записывает Markdown-файл с шапкой из полей `title`, `author`, `source`, `date`, `clipped` и `wordCount`. Имя файла берется из заголовка статьи с заменой спецсимволов на пробелы. Перед работой скилл проверяет наличие `defuddle` и при его отсутствии ставит `defuddle` и `jsdom` глобально через `npm`. Установщик `npx defuddle-skill` копирует `SKILL.md` в `~/.claude/skills/defuddle/`.

Для кого. Тем, кто собирает статьи и документацию в заметки и хочет получать из ссылки чистый Markdown без рекламы и навигации прямо из сессии Claude Code.

Подходит, если

  • Статью из блога надо превратить в Markdown-файл для заметок с автором, датой и источником
  • Агент должен прочитать документацию по ссылке без шума страницы
  • Из страницы берут одно поле, например автора или дату публикации, флагом `-p`
  • Локальный HTML-файл очищают от навигации и рекламных блоков

Не подходит, если

  • Страница целиком строится на JavaScript: автор предупреждает, что для SPA и статей WeChat нужна отрисовка в браузере
  • Нужен обход всего сайта или поиск по нему: скилл читает одну страницу за раз
  • Нужен разбор PDF и файлов Office: для них в каталоге есть другие инструменты, например MarkItDown

Пример запроса к агенту

Достань статью по этой ссылке в Markdown, покажи автора и число слов и сохрани файл в мою папку для заметок

Ограничения

Нужны Node.js и npm, а `jsdom` ставится как обязательная зависимость. Лучше всего скилл читает статейные страницы: блоги, новости и документацию. Страницы на JavaScript и SPA он не рассчитан обрабатывать. Последний коммит в репозитории сделан в марте 2026 года. Файл записывается только после выбора каталога, а имя строится из заголовка статьи, поэтому длинные заголовки дают длинные имена. Установщик выполняет `npm install -g` без вопросов, когда `defuddle` не найден. Без `jsdom` разбор не запустится.

Как отключить. Удалите папку `~/.claude/skills/defuddle/` и, если утилита больше не нужна, пакеты командой `npm uninstall -g defuddle jsdom`.

Частые вопросы

Как поставить defuddle-skill?

Командой `npx defuddle-skill`: она ставит `defuddle`, если его нет, и копирует скилл в `~/.claude/skills/defuddle/`. Альтернативы: `npx skills add joeseesun/defuddle-skill` или `bash install.sh` из клонированного репозитория.

Какие фразы вызывают скилл?

Слова «defuddle», «extract article», «clean this page», «get content from URL» и похожие просьбы достать статью по ссылке, очистить страницу или получить чистый Markdown.

Что попадает в файл?

Шапка с полями `title`, `author`, `source`, `date`, `clipped` и `wordCount`, затем заголовок первого уровня и текст статьи в Markdown. Поле `date` принимает «Unknown», если дату публикации найти не удалось.

Можно ли взять только одно поле страницы?

Да, флагом `-p`: например `defuddle parse <адрес> -p author` отдаст автора, а доступны также `title`, `description`, `domain`, `published`, `wordCount` и `content`.

Почему скилл не справился со страницей?

Скорее всего страница строится JavaScript-ом: автор прямо называет такие случаи, SPA и статьи WeChat, которым нужна отрисовка в браузере. Для обычных статейных страниц блогов и документации результат стабилен.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Скилл читает ссылку и отдает агенту полный текст в Markdown: выбирает отдельный путь для страниц WeChat, документов Feishu, PDF и статей arXiv

СкиллРасширенный доступ512Звезды репозитория

Скилл для Claude Code превращает просьбу «изучи тему» в многофазное исследование: гипотезы, параллельный поиск, файл на каждый источник и проверка цитат

СкиллРасширенный доступ367Звезды репозитория

Deep Research

Deep Research Skill for Claude Code

Скилл глубокого исследования для Claude Code: многоэтапный поиск, проверка утверждений и отчет со ссылками в Markdown, HTML и PDF

СкиллРасширенный доступ1,2 тыс.Звезды репозитория

Шесть скиллов для OpenClaw: поиск по четырем источникам, страницы в Markdown, разбор репозиториев GitHub и проверка зависимостей.

СкиллРасширенный доступ55Звезды репозитория

Скилл превращает ссылку в чистый Markdown через Scrapling с запасным Jina Reader, в том числе статьи WeChat, Juejin и CSDN

СкиллРасширенный доступ613Звезды репозитория

Скилл browse из репозитория Stagehand учит агента открывать страницы, читать их и кликать через одноименную CLI-утилиту.

СкиллШирокий доступ26 тыс.Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
defuddle-skill (эта карточка)нет112
MarkItDownдане нужна195 008переводит в Markdown файлы PDF, Word, Excel и HTML, для страниц сети он не предназначен
Firecrawl CLIнет684облачный скрейпинг, обход сайтов и карта адресов, скилл же читает одну страницу локально

Коротко о README

Документация перечисляет три способа установки, перечисляет фразы-триггеры и примеры запросов, дает справку по флагам `defuddle parse` (`-m`, `-j`, `-o`, `-p`, `--debug`) и называет основой утилиту defuddle.

Бейдж для README

Исходный 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

Сообщить о проблеме