Overview
Track web pages for changes. Stores snapshots, computes diffs, supports CSS selectors.
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 CommandArgsDescriptionadd<url> [-n name] [-s selector]Add URL to watch, take initial snapshotremove<url-or-name>Stop watching a URLlist[-f json]List all watched URLs with statscheck[url-or-name] [-f json]Check for changes (all or one)diff<url-or-name>Show last recorded diffsnapshot<url-or-name> [-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
SKILL.md file
Preview raw SKILL.md. Open the full source below. Scroll, inspect, then download the exact SKILL.md file if you want the original.
# web-monitor
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
CommandArgsDescriptionadd<url> [-n name] [-s selector]Add URL to watch, take initial snapshotremove<url-or-name>Stop watching a URLlist[-f json]List all watched URLs with statscheck[url-or-name] [-f json]Check for changes (all or one)diff<url-or-name>Show last recorded diffsnapshot<url-or-name> [-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
Preview raw SKILL.md. Open the full source below. Scroll, inspect, then download the exact SKILL.md file if you want the original.
# web-monitor
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
CommandArgsDescriptionadd<url> [-n name] [-s selector]Add URL to watch, take initial snapshotremove<url-or-name>Stop watching a URLlist[-f json]List all watched URLs with statscheck[url-or-name] [-f json]Check for changes (all or one)diff<url-or-name>Show last recorded diffsnapshot<url-or-name> [-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
Comments & Discussion
Add a comment