lacspace-monitor
Watch pages, APIs and feeds for changes — alert when something moves.
npx lacspace-monitor https://example.com --selector ".price" --interval 5mEverything, in one command
The first run captures a baseline; every run after reports exactly what changed. Snapshots live in a small state file, so you can run it from cron or CI and it just works — or use --interval to keep it running. Watch a selector's text, a JSON path, a feed's new items, an HTTP status/header, response time, SSL certificate expiry or plain availability — and fire only when a --when condition is met (decreased, >100, contains:…), delivered to Slack, Discord, Telegram, email or any webhook, with every change appended to a history log.
What's inside
Watch anything
A page, a CSS selector's text/attribute, a JSON API field, or an RSS/Atom/JSON feed.
Real diffs
Snapshots compared over time — you see the exact before → after, or the new feed items.
Webhook alerts
POST changes to any webhook, or handle them in code with the library.
Schedule or loop
Run once from cron/CI (stateful), or keep running with --interval 30s/5m/1h.
Config files
Define many watches in one JSON file with a shared webhook and state.
Export
Write results to JSON, NDJSON, CSV or Excel.
Condition alerts
--when "decreased | >100 | contains:In stock" fires only when the change matches — not on every diff.
SSL / uptime / latency
--status, --header, --response-time, --ssl-expiry and --availability watch more than page text.
Anywhere notifiers
--slack, --discord, --telegram or --email (SMTP) — send the alert where your team already is.
Change history
--history appends every change to an NDJSON log; keyword/regex content watch and --fail-on-change for CI.
Copy, paste, done
Real commands and snippets — from a one-liner to the typed library.
npx lacspace-monitor https://shop.site/p \
--selector ".price" --when decreased \
--slack $SLACK_HOOKOnly pings when the price actually falls.
npx lacspace-monitor https://mysite.com \
--ssl-expiry --when "<14" \
--email you@x.com --smtp smtp.x.com:587Emails you when the certificate has under 14 days left.
npx lacspace-monitor https://api.site/health \
--status --when "!=200" \
--discord $DISCORD_HOOK --interval 1mAlerts to Discord the moment the endpoint stops returning 200.
npx lacspace-monitor https://shop.site/item \
--contains "In stock" --history changes.ndjsonWatches for the keyword and records every change to NDJSON.
import { runChecks, loadState, saveState } from "lacspace-monitor";
const state = loadState(".lacspace-monitor.json");
const { results, state: next } = await runChecks(
[{ url: "https://example.com", selector: "h1", label: "Title" }], state);
saveState(".lacspace-monitor.json", next);What people build with it
✓ Price + stock monitoring
✓ New-listing / new-post alerts
✓ API status & uptime watching
✓ Content-change tracking
Run lacspace-monitor today
Free, open-source, no API keys. It's a CLI and a typed library.
npx lacspace-monitor https://example.com --selector ".price" --interval 5m