name: rss-fetch
/plugin marketplace add vm0-ai/api0/plugin install api0@api0This skill inherits all available tools. When active, it can use any tool Claude has access to.
name: rss-fetch description: Fetch RSS/Atom feeds via curl. Use this skill to gather news and articles from RSS sources.
Use curl to fetch and parse RSS/Atom feeds from any source.
RSS feeds return XML that can be parsed with
xmllintor converted to JSON.
Use this skill when you need to:
No API key required. RSS feeds are public.
Optional tools for parsing:
xmllint (for XML parsing)jq (for JSON output)Important: When using
$VARin a command that pipes to another command, wrap the command containing$VARinbash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"' | jq .
curl -s "https://hnrss.org/frontpage" | head -100
Extract titles from RSS feed:
curl -s "https://hnrss.org/frontpage" | xmllint --xpath '//item/title/text()' - 2>/dev/null
Extract titles and links:
curl -s "https://hnrss.org/frontpage" | xmllint --format - | grep -E '<title>|<link>' | head -20
RSS_URL="https://hnrss.org/frontpage"
curl -s "$RSS_URL" | xmllint --xpath '//item' - 2>/dev/null | xmllint --format - | head -50
Atom feeds use <entry> instead of <item>:
curl -s "https://github.com/blog.atom" | xmllint --xpath '//entry/title/text()' - 2>/dev/null
| Source | URL |
|---|---|
| Hacker News | https://hnrss.org/frontpage |
| HN Best | https://hnrss.org/best |
| TechCrunch | https://techcrunch.com/feed/ |
| Ars Technica | https://feeds.arstechnica.com/arstechnica/index |
| The Verge | https://www.theverge.com/rss/index.xml |
| Reddit (any sub) | https://www.reddit.com/r/programming/.rss |
| GitHub Blog | https://github.blog/feed/ |
curl -s "https://hnrss.org/frontpage?count=10" | xmllint --xpath '//item/title/text()' - 2>/dev/null | tr '\n' '\n'
curl -s "https://hnrss.org/frontpage?count=5" | grep -oP '<link>\K[^<]+' | grep -v hnrss
FEEDS=(
"https://hnrss.org/frontpage?count=5"
"https://techcrunch.com/feed/"
)
for feed in "${FEEDS[@]}"; do
echo "=== $feed ==="
curl -s "$feed" | xmllint --xpath '//item/title/text()' - 2>/dev/null | head -5
echo ""
done
curl -s "https://hnrss.org/frontpage?count=3" | xmllint --format - | awk '
/<item>/ { in_item=1 }
/<\/item>/ { in_item=0; print "---" }
in_item && /<title>/ { gsub(/<[^>]*>/, ""); print "Title: " $0 }
in_item && /<link>/ { gsub(/<[^>]*>/, ""); print "Link: " $0 }
in_item && /<pubDate>/ { gsub(/<[^>]*>/, ""); print "Date: " $0 }
'
curl -s "https://hnrss.org/frontpage" -o /tmp/hn-feed.xml
xmllint --xpath '//item/title/text()' /tmp/hn-feed.xml
Hacker News RSS (hnrss.org) supports parameters:
| Parameter | Description |
|---|---|
count=N | Number of items (default 20) |
points=N | Minimum points |
comments=N | Minimum comments |
q=keyword | Search keyword |
# Top stories with 100+ points
curl -s "https://hnrss.org/frontpage?points=100&count=10"
# Search for "AI" topics
curl -s "https://hnrss.org/frontpage?q=AI&count=10"
| Element | RSS | Atom |
|---|---|---|
| Container | <item> | <entry> |
| Title | <title> | <title> |
| Link | <link> | <link href="..."> |
| Summary | <description> | <summary> |
| Date | <pubDate> | <published> |
head first to see if it's RSS or Atom