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

Web Monitor

by @corbin-breton

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
Downloads848
TERMINAL
clawhub install keats-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.

Triggers

Activate this skill when the user wants to:
  • Watch a website for content changes
  • Track price changes, new posts, or updated content on a page
  • Set up page change alerts or notifications
  • Check if a site has been updated since last visit
  • Monitor a specific section of a page (with CSS selector)
  • NOT For

  • Real-time alerting on dynamic topics β€” use the topic-monitor skill for news/topic monitoring with importance scoring
  • Full page archival β€” this tracks diffs, not full crawl archives
  • JavaScript-heavy SPAs β€” the monitor fetches raw HTML; dynamic content rendered by JS may not be captured accurately
  • Monitoring APIs or webhooks β€” use cron + exec for structured data endpoints

  • 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). For OpenClaw workspace integration, set WEB_MONITOR_DIR=$WORKSPACE/data/web-monitor (where $WORKSPACE is your agent workspace path).

  • 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