Web Monitor
/install keats-web-monitor
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-monitorskill 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 |
\x3Curl> [-n name] [-s selector] |
Add URL to watch, take initial snapshot |
remove |
\x3Curl-or-name> |
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 |
\x3Curl-or-name> |
Show last recorded diff |
snapshot |
\x3Curl-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).
For OpenClaw workspace integration, set WEB_MONITOR_DIR=$WORKSPACE/data/web-monitor (where $WORKSPACE is your agent workspace path).
watches.json— watch list configsnapshots/— stored page content + diffs
Tips
- Use
--selectorto monitor specific elements (prices, article lists, etc.) - Use
--format jsonfor programmatic checking (heartbeat integration) - CSS selectors require beautifulsoup4 (included via
--withflag) - Text is normalized to reduce noise from timestamps, whitespace, ads
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install keats-web-monitor - After installation, invoke the skill by name or use
/keats-web-monitor - Provide required inputs per the skill's parameter spec and get structured output
What is 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, mon... It is an AI Agent Skill for Claude Code / OpenClaw, with 158 downloads so far.
How do I install Web Monitor?
Run "/install keats-web-monitor" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Web Monitor free?
Yes, Web Monitor is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Web Monitor support?
Web Monitor is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Web Monitor?
It is built and maintained by Corbin Breton (@corbin-breton); the current version is v1.0.1.