Feed Watcher
Monitor RSS/Atom feeds and send notifications when new content appears.
Description
This skill monitors RSS and Atom feeds for new content and sends notifications via webhook or cron job. It's designed to track YouTube channels, Reddit subreddits, GitHub repos, blogs, and any other RSS/Atom feed.
Features
- Add multiple feeds to monitor
- Track new articles/posts since last check
- Configurable notification via webhook
- Persistent state (remembers last checked item)
- Supports any RSS/Atom feed
Installation
# Install required dependencies
npm install
# Or use globally
npm install -g rss-parser dotenv
Configuration
Create a .env file with:
# Webhook URL for notifications (Discord, Telegram, Slack, etc.)
WEBHOOK_URL=https://your-webhook-url.com/hook
# Optional: Custom user agent
USER_AGENT=feed-watcher/1.0
Commands
Add a feed
node index.js add "feed_name" "https://example.com/feed.xml"
Example - YouTube channel:
node index.js add "Psychopoly" "https://www.youtube.com/feeds/videos.xml?channel_id=UCXXXX"
Example - Reddit subreddit:
node index.js add "programming" "https://www.reddit.com/r/programming/.rss"
Example - GitHub releases:
node index.js add "openclaw" "https://github.com/openclaw/openclaw/releases.atom"
List feeds
node index.js list
Scan for updates
node index.js scan
Check specific feed
node index.js check "feed_name"
Remove feed
node index.js remove "feed_name"
Usage as a Cron Job
Add to crontab for automatic monitoring:
# Run every 30 minutes
*/30 * * * * cd /path/to/feed-watcher && node index.js scan >> /var/log/feed-watcher.log 2>&1
Supported Feed Types
- RSS 2.0
- Atom 1.0
- YouTube channel feeds
- Reddit subreddit feeds (.rss)
- GitHub release/issue feeds
- Any standard RSS/Atom feed
Examples
YouTube Channel
Find channel ID, then use:
https://www.youtube.com/feeds/videos.xml?channel_id=UCxxxxx
For r/programming:
https://www.reddit.com/r/programming/.rss
GitHub Releases
For a repo:
https://github.com/owner/repo/releases.atom
Environment Variables
| Variable | Required | Description |
|---|---|---|
| WEBHOOK_URL | No | URL to send notifications |
| DATA_DIR | No | Directory for state files (default: ~/.feed-watcher) |
Notification Format
When new content is found, the webhook receives:
{
"feed": "Feed Name",
"count": 3,
"items": [
{
"title": "Article Title",
"link": "https://example.com/article",
"pubDate": "2024-01-15T10:30:00Z"
}
]
}
Notes
- State is stored in
~/.feed-watcher/feeds.json - Each feed tracks its own last-seen item
- Run
scanbefore setting up cron to test feeds - You can use with any notification service (Discord webhook, Telegram bot, Slack, etc.)