GB-Power-Market-JJ web-monitor
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.
install
source · Clone the upstream repo
git clone https://github.com/GeorgeDoors888/GB-Power-Market-JJ
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/GeorgeDoors888/GB-Power-Market-JJ "$T" && mkdir -p ~/.claude/skills && cp -r "$T/openclaw-skills/skills/bloodandeath/keats-web-monitor" ~/.claude/skills/georgedoors888-gb-power-market-jj-web-monitor && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/GeorgeDoors888/GB-Power-Market-JJ "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/openclaw-skills/skills/bloodandeath/keats-web-monitor" ~/.openclaw/skills/georgedoors888-gb-power-market-jj-web-monitor && rm -rf "$T"
manifest:
openclaw-skills/skills/bloodandeath/keats-web-monitor/SKILL.mdsource content
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
skill for news/topic monitoring with importance scoringtopic-monitor - 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 URL to watch, take initial snapshot |
| | Stop watching a URL |
| | List all watched URLs with stats |
| | Check for changes (all or one) |
| | Show last recorded diff |
| | 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).
— watch list configwatches.json
— stored page content + diffssnapshots/
Tips
- Use
to monitor specific elements (prices, article lists, etc.)--selector - Use
for programmatic checking (heartbeat integration)--format json - CSS selectors require beautifulsoup4 (included via
flag)--with - Text is normalized to reduce noise from timestamps, whitespace, ads