360 Secure SkillHub
360 安全技能中心

Feed Watcher

这是一个基于 Node.js 的命令行工具,可添加、列出、检查、删除 RSS/Atom 源,扫描时对比上次记录并发现新条目,将结果以 JSON 形式推送到可配置的 webhook,状态保存在本地数据目录,可配合 cron 定时运行。

runawaydevil
runawaydevil
热度 75.67
最近更新 2026-05-11 17:28:11
分类:自动化依赖:代码执行 / 读写文件 / 第三方 API应用场景:自动化脚本 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add feed-watcher
Metadata
name
feed-watcher
description
Monitor RSS/Atom feeds and send notifications when new content appears. Track YouTube channels, Reddit subreddits, GitHub releases, blogs, and any RSS/Atom feed. Supports webhook notifications for Discord, Telegram, Slack, etc.
compatibility
Node.js 14+
metadata
{"author":"Seth","version":"0.0.1"}

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

Reddit

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 scan before setting up cron to test feeds
  • You can use with any notification service (Discord webhook, Telegram bot, Slack, etc.)