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...
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 0 · 62 · 0 current installs · 0 all-time installs
byCorbin Breton@corbin-breton
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description (web page change monitoring) matches the included Python tool and SKILL.md usage. The script fetches URLs, optionally applies CSS selectors, normalizes text, stores snapshots and diffs — all expected. Minor metadata inconsistencies exist: registry metadata/version (1.0.1) vs _meta.json version (1.0.0) and differing ownerId values; this looks like a packaging oversight, not functional mismatch.
Instruction Scope
SKILL.md instructs the agent to run the included script and to read/write data under ~/.web-monitor (or WEB_MONITOR_DIR). All instructions are within the declared purpose. The only noteworthy behavior is that the skill will fetch arbitrary URLs (provided by the user), which can include internal addresses reachable by the agent — expected for a monitor but a potential privacy/SSRF consideration.
Install Mechanism
No install spec; the skill is instruction-only with a bundled Python script. There are no downloads, brew/npm installs, or external installers. The script uses only the standard library and optionally beautifulsoup4 (recommended).
Credentials
The skill requires no credentials or special env vars. It optionally honors WEB_MONITOR_DIR (reasonable for changing storage location) and recommends setting it to $WORKSPACE for workspace integration. No unrelated secrets or config paths are requested.
Persistence & Privilege
always is false and the skill does not request to be force-enabled. It stores its own data under ~/.web-monitor or a user-provided WEB_MONITOR_DIR; it does not modify other skills or system-wide agent settings.
Assessment
This skill appears internally consistent for monitoring webpages. Before installing, consider: (1) it will fetch any URL you add — avoid adding sensitive or internal-only endpoints if the agent has network access to internal systems (SSRF/privacy risk); (2) snapshots and diffs are stored on disk (default ~/.web-monitor) — set WEB_MONITOR_DIR if you prefer the workspace or a different location; (3) CSS selector support needs beautifulsoup4 (optional); (4) metadata/version fields in _meta.json differ from the registry entry (likely an authoring oversight) — if provenance matters, verify the author/repo before trusting the package. If you want to limit risk, run the script in an environment with restricted network access or review/execute the script manually rather than enabling autonomous invocation.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.1
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
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 | <url> [-n name] [-s selector] | Add URL to watch, take initial snapshot |
remove | <url-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 | <url-or-name> | Show last recorded diff |
snapshot | <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).
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
Files
4 totalSelect a file
Select a file to preview.
Comments
Loading comments…
