🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Web Monitor

by @rogue-agent1

Monitor web pages for content changes and get alerts. Track URLs, detect updates, view diffs. Use when asked to watch a website, track changes on a page, mon...

Versionv1.0.1
Downloads4,611
Installs45
Stars⭐ 3
TERMINAL
clawhub install web-monitor

πŸ“– About This Skill


name: web-monitor description: Monitor web pages for content changes and get alerts. Track URLs, detect updates, view diffs. Use when asked to watch a website, track changes on a page, monitor for new posts/content, set up page change alerts, or check if a site has been updated. Supports CSS selectors for targeted monitoring.

Web Monitor

Track web pages for changes. Stores snapshots, computes diffs, supports CSS selectors.

Quick Start

# Add a URL to watch
uv run --with beautifulsoup4 python scripts/monitor.py add "https://example.com" --name "Example"

Add with CSS selector (monitor specific section)

uv run --with beautifulsoup4 python scripts/monitor.py add "https://example.com/pricing" -n "Pricing" -s ".pricing-table"

Check all watched URLs for changes

uv run --with beautifulsoup4 python scripts/monitor.py check

Check one specific URL

uv run --with beautifulsoup4 python scripts/monitor.py check "Example"

List watched URLs

uv run --with beautifulsoup4 python scripts/monitor.py list

View last diff

uv run --with beautifulsoup4 python scripts/monitor.py diff "Example"

View current snapshot

uv run --with beautifulsoup4 python scripts/monitor.py snapshot "Example" --lines 50

Remove

uv run --with beautifulsoup4 python scripts/monitor.py remove "Example"

Commands

| Command | Args | Description | |---------|------|-------------| | add | [-n name] [-s selector] | Add URL to watch, take initial snapshot | | remove | | Stop watching a URL | | list | [-f json] | List all watched URLs with stats | | check | [url-or-name] [-f json] | Check for changes (all or one) | | diff | | Show last recorded diff | | snapshot | [-l lines] | Show current snapshot |

Output Symbols

  • πŸ”” CHANGED β€” page content changed (shows diff preview)
  • βœ… No changes
  • πŸ“Έ Initial snapshot taken
  • ❌ Error fetching
  • Data

    Stored in ~/.web-monitor/ (override with WEB_MONITOR_DIR env var):

  • watches.json β€” watch list config
  • snapshots/ β€” stored page content + diffs
  • Tips

  • Use --selector to monitor specific elements (prices, article lists, etc.)
  • Use --format json for programmatic checking (heartbeat integration)
  • CSS selectors require beautifulsoup4 (included via --with flag)
  • Text is normalized to reduce noise from timestamps, whitespace, ads
  • πŸ’‘ Examples

    # Add a URL to watch
    uv run --with beautifulsoup4 python scripts/monitor.py add "https://example.com" --name "Example"

    Add with CSS selector (monitor specific section)

    uv run --with beautifulsoup4 python scripts/monitor.py add "https://example.com/pricing" -n "Pricing" -s ".pricing-table"

    Check all watched URLs for changes

    uv run --with beautifulsoup4 python scripts/monitor.py check

    Check one specific URL

    uv run --with beautifulsoup4 python scripts/monitor.py check "Example"

    List watched URLs

    uv run --with beautifulsoup4 python scripts/monitor.py list

    View last diff

    uv run --with beautifulsoup4 python scripts/monitor.py diff "Example"

    View current snapshot

    uv run --with beautifulsoup4 python scripts/monitor.py snapshot "Example" --lines 50

    Remove

    uv run --with beautifulsoup4 python scripts/monitor.py remove "Example"

    πŸ“‹ Tips & Best Practices

  • Use --selector to monitor specific elements (prices, article lists, etc.)
  • Use --format json for programmatic checking (heartbeat integration)
  • CSS selectors require beautifulsoup4 (included via --with flag)
  • Text is normalized to reduce noise from timestamps, whitespace, ads