article-extractor
Extract clean article content from URLs (blog posts, articles, tutorials) and save as readable text.
Skill by michalparkola
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/michalparkola-article-extractor
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing, marketing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/article-extractor
Tools it pre-approves 1
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Bash,Write
What's inside
- Skill name
article-extractor- Description
- Extract clean article content from URLs (blog posts, articles, tutorials) and save as readable text. Use when user wants to download, extract, or save an article/blog post from a URL without ads, navigation, or clutter.
- License
- MIT
- Allowed tools
- Bash,Write
- Instructions
- 365 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
- Instructions call the network
Files (1)
- SKILL.md
SKILL.md (first lines)
# Article Extractor
This skill extracts the main content from web articles and blog posts, removing navigation, ads, newsletter signups, and other clutter. Saves clean, readable text.
## When to Use This Skill
Activate when the user:
- Provides an article/blog URL and wants the text content
- Asks to "download this article"
- Wants to "extract the content from [URL]"
- Asks to "save this blog post as text"
- Needs clean article text without distractions
## How It Works
### Priority Order:
1. **Check if tools are installed** (reader or trafilatura)
2. **Download and extract article** using best available tool
3. **Clean up the content** (remove extra whitespace, format properly)
4. **Save to file** with article title as filename
5. **Confirm location** and show preview
## Installation Check
Check for article extraction tools in this order:
### Option 1: reader (Recommended - Mozilla's Readability)
```bash
command -v reader
```
If not installed:
```bash
npm install -g @mozilla/readability-cli
# or
npm install -g reader-cli
```
### Option 2: trafilatura (Python-based, very good)
```bash
command -v trafilatura
```
If not installed:
```bash
pip3 install trafilatura
```
### Option 3: Fallback (curl + simple parsing)
If no tools available, use basic curl + text extraction (less reliable but works)
## Extraction Methods
### Method 1: Using reader (Best for most articles)
```bash
# Extract article
reader "URL" > article.txt
```
**Pros:**
- Based on Mozilla's Readability algorithm
- Excellent at removing clutter
- Preserves article structure
### Method 2: Using trafilatura (Best for blogs/news)
```bash
# Extract article
trafilatura --URL "URL" --output-format txt > article.txt
# Or with more options
trafilatura --URL "URL" --output-format txt --no-comments --no-tables > article.txt
```
**Pros:**
- Very accurate extraction
- Good with various site structures
- Handles multiple languages
**Options:**
- `--no-comments`: Skip comment sections
- `--no-tables`: Skip data tables
- `--precision`: Favor precision over recall
- `--recall`: Extract more content (may include some noise)
### Method 3: Fallback (curl + basic parsing)
```bash
# Download and extract basic content
curl -s "URL" | python3 -c "
from html.parser import HTMLParser
import sys
class ArticleExtractor(HTMLParser):
def __init__(self):
super().__init__()
self.in_content = False
self.content = []
self.skip_tags = {'script', 'style', 'nav', 'header', 'footer', 'aside'}
self.current_tag = None
def handle_starttag(self, tag, attrs):
if tag not in self.skip_tags:
if tag in {'p', 'article', 'main', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'}:
self.in_content = True
self.current_tag = tag
def handle_data(self, data):
if self.in_content and data.strip():
self.content.append(data.strip())
def get_content(self):
return '\n\n'.join(self.content)
parser = ArticleExtractor()From michalparkola/tapestry-skills, MIT.
More from michalparkola/tapestry-skills
- 0.631score
learn-this
michalparkola
Unified content extraction and action planning.
SkillDFreshness: D★ 562Claude Code +9 - 0.631score
scrum-sage
michalparkola
AI-powered Scrum Master and Enterprise Agility Coach based on Jeff Sutherland, Taiichi Ohno, and First Principles thinking.
SkillDFreshness: D★ 562Claude Code +9 - 0.631score
session-log
michalparkola
Summarize the current conversation session and append results to the weekly agent-log.
SkillDFreshness: D★ 562Claude Code +9 - 0.631score
unblock-action
michalparkola
Help the user unblock a vague or stuck action item by clarifying the intended output, scoping it to today, and identifying the concrete next action.
SkillDFreshness: D★ 562Claude Code +9 - 0.585score
youtube-transcript
michalparkola
Download YouTube video transcripts when user provides a YouTube URL or asks to download/get/fetch a transcript from YouTube.
SkillFFreshness: F★ 562Claude Code +9 - 0.585score
ship-learn-next
michalparkola
Transform learning content (like YouTube transcripts, articles, tutorials) into actionable implementation plans using the Ship-Learn-Next framework.
SkillFFreshness: F★ 562Claude Code +9
Signals
- Stars
- 562
- Forks
- 67
- Open issues
- 1
- Last commit (this folder)
- Oct 24, 2025 (1 year ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/michalparkola/tapestry-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.304score
article-extractor
shrivatsas
Extract clean article content from URLs (blog posts, articles, tutorials) and save as readable text.
SkillCFreshness: C★ 2Claude Code +9 - 0.303score
article-extractor
ovachiever
Extract clean article content from URLs (blog posts, articles, tutorials) and save as readable text.
SkillDFreshness: D★ 55Claude Code +9 - 0.243score
article-extractor
Ocean326
Extract clean article content from URLs (blog posts, articles, tutorials) and save as readable text.
SkillDFreshness: DClaude Code +9
More from michalparkola
- 0.631score
learn-this
michalparkola
Unified content extraction and action planning.
SkillDFreshness: D★ 562Claude Code +9 - 0.631score
scrum-sage
michalparkola
AI-powered Scrum Master and Enterprise Agility Coach based on Jeff Sutherland, Taiichi Ohno, and First Principles thinking.
SkillDFreshness: D★ 562Claude Code +9 - 0.631score
session-log
michalparkola
Summarize the current conversation session and append results to the weekly agent-log.
SkillDFreshness: D★ 562Claude Code +9 - 0.631score
unblock-action
michalparkola
Help the user unblock a vague or stuck action item by clarifying the intended output, scoping it to today, and identifying the concrete next action.
SkillDFreshness: D★ 562Claude Code +9 - 0.585score
youtube-transcript
michalparkola
Download YouTube video transcripts when user provides a YouTube URL or asks to download/get/fetch a transcript from YouTube.
SkillFFreshness: F★ 562Claude Code +9 - 0.585score
ship-learn-next
michalparkola
Transform learning content (like YouTube transcripts, articles, tutorials) into actionable implementation plans using the Ship-Learn-Next framework.
SkillFFreshness: F★ 562Claude Code +9
Cite this page
article-extractor skill. Agent Mart. https://agentmart.dev/skills/michalparkola-article-extractor (last updated 2026-10-24)