lacspace-monitor

Watch pages, APIs and feeds for changes — alert when something moves.

● Live · v0.2.0npm ↗Source ↗
terminal
npx lacspace-monitor https://example.com --selector ".price" --interval 5m
What it does

Everything, 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.

Features

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.

How to use

Copy, paste, done

Real commands and snippets — from a one-liner to the typed library.

Price drop → Slack
terminal
npx lacspace-monitor https://shop.site/p \
  --selector ".price" --when decreased \
  --slack $SLACK_HOOK

Only pings when the price actually falls.

SSL expiry → email
terminal
npx lacspace-monitor https://mysite.com \
  --ssl-expiry --when "<14" \
  --email you@x.com --smtp smtp.x.com:587

Emails you when the certificate has under 14 days left.

API health, every minute
terminal
npx lacspace-monitor https://api.site/health \
  --status --when "!=200" \
  --discord $DISCORD_HOOK --interval 1m

Alerts to Discord the moment the endpoint stops returning 200.

Back-in-stock + history log
terminal
npx lacspace-monitor https://shop.site/item \
  --contains "In stock" --history changes.ndjson

Watches for the keyword and records every change to NDJSON.

Use it as a library
typescript
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);
Good for

What people build with it

✓ Price + stock monitoring

✓ New-listing / new-post alerts

✓ API status & uptime watching

✓ Content-change tracking

Start now

Run lacspace-monitor today

Free, open-source, no API keys. It's a CLI and a typed library.

terminal
npx lacspace-monitor https://example.com --selector ".price" --interval 5m