watchers

Poll RSS feeds, JSON APIs, and GitHub repositories with watermark-based deduplication.

1|Updated Jun 19, 2026
One-click install
npx skills add https://github.com/Lento47/arcana-community --skill watchers-lento47
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: watchers
Source: https://github.com/Lento47/arcana-community/tree/main/skills/devops/watchers
Command: npx skills add https://github.com/Lento47/arcana-community --skill watchers-lento47

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Monitoring external sources like RSS feeds, GitHub repos, or JSON APIs for new items requires tracking what has already been seen. This Skill provides ready-made polling scripts that deduplicate results with persistent watermark files, so cron jobs and agents only report genuinely new items. ## Core Features & Use Cases - RSS/Atom Watching: Poll any RSS 2.0 or Atom feed and emit only new entries, deduplicated by guid or id. - GitHub Monitoring: Watch issues, pull requests, releases, or commits for any repository, with optional GITHUB_TOKEN authentication to avoid rate limits. - Generic JSON API Polling: Poll any JSON endpoint returning a list of objects, with configurable id fields, dotted items paths, and custom headers. - Use Case: Schedule a cron job that runs watch_rss.py every 15 minutes against a news feed; the agent summarizes and delivers only new headlines, staying silent when nothing changed. ## Quick Start Ask the agent to watch the Hacker News RSS feed every 15 minutes and notify you only when new stories appear.

Frequently Asked Questions about watchers

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I watch an RSS feed for new items with a script?▼

Run watch_rss.py with a --name and --url argument pointing at the RSS or Atom feed. The first run records a baseline silently; subsequent runs print only new entries as Markdown, deduplicated by guid or id.

How to monitor GitHub issues or releases from the command line?▼

Use watch_github.py with --repo owner/name and --scope set to issues, pulls, releases, or commits. Set GITHUB_TOKEN in the environment to avoid the 60 requests per hour anonymous rate limit.

Can I poll any JSON API and get notified of new items?▼

Yes, watch_http_json.py polls any JSON endpoint returning a list of objects. Configure the dedup field with --id-field, locate nested lists with --items-path like data.events, and pass custom headers with repeatable --header flags.

Why does the watcher print nothing on its first run?▼

The first run records a baseline of all current item IDs without emitting anything, preventing replay of the entire existing feed. To force a replay, delete the state file in the watcher-state directory before the next run.

What happens when the watermark state file grows too large?▼

The shared watermark helper caps the stored ID set at 500 entries by default, discarding the oldest IDs. You can adjust the max_seen limit when instantiating the Watermark class in a custom script.

Does the watcher script require external Python packages?▼

No, all three watcher scripts use only the Python standard library: urllib for HTTP, xml.etree.ElementTree for feed parsing, and json for state. No pip installs are required.