watchers

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

Updated Sep 10, 2026
One-click install
npx skills add https://github.com/loteiron/ZeusAgent --skill watchers-loteiron
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: watchers
Source: https://github.com/loteiron/ZeusAgent/tree/main/optional-skills/devops/watchers
Command: npx skills add https://github.com/loteiron/ZeusAgent --skill watchers-loteiron

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Manually checking RSS feeds, GitHub repos, and JSON APIs for updates is repetitive and error-prone. This Skill polls external sources on an interval and reports only genuinely new items, using persistent watermark files so nothing is missed or duplicated. ## Core Features & Use Cases - RSS/Atom Watching: Monitor 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 Polling: Poll arbitrary JSON endpoints with configurable ID fields and dotted paths to nested item lists. - Use Case: Schedule a cron job that checks Hacker News every 15 minutes; the agent summarizes new headlines and delivers them, 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 monitor an RSS feed for new items automatically?▼

Run watch_rss.py with a --name and feed --url, typically from a cron job. The first run records a baseline silently; subsequent runs print only new entries deduplicated by guid or id, with empty stdout when nothing changed.

How to watch GitHub issues or releases for a repository?▼

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

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 at $ZEUS_HOME/watcher-state/<name>.json.

Can I poll a JSON API that nests items inside an object?▼

Yes, watch_http_json.py accepts --items-path with a dotted path like data.events to locate the list inside the response. You can also set --id-field, --title-field, and custom HTTP headers for authenticated endpoints.

What are the limitations of watermark-based deduplication?▼

The watermark stores a bounded set of at most 500 seen IDs, so very high-churn feeds may evict old IDs and risk re-emitting items. State files must live in a writable directory such as $ZEUS_HOME/watcher-state/; sandboxed backends may not see arbitrary host paths.