Changes is a self‑hosted content change monitor with a TUI.
Track pages, feeds, and APIs; get readable diffs and optional AI summaries.
Track pages, feeds, and APIs; get readable diffs and optional AI summaries.
Webpages • Markdown • JSON • XML/Atom
Readable diffs • AI summaries • Notifications
Requirements: Bun 1.3+, SQLite (bundled with Bun), a shell.
Clone and install:
git clone https://github.com/iannuttall/changes.gitcd changesbun installSetup env and database:
bun setup:localRun the service and TUI (local dev):
bun devbun changes- Monitors: webpages, APIs (JSON), Markdown, XML/Atom feeds
- HTML→Markdown conversion for stable diffing
- AI summaries (optional)
- Provider: Droid CLI (no API keys) or AI SDK (Anthropic/OpenAI/Google)
- Configure in TUI → Settings (provider/model, verify keys)
- Notifications: Telegram
- TUI over SSH; API is local and used only by the TUI
- SQLite storage; easy to run on a small VPS
- Parallel background checks with per‑monitor locking
- 5 MB max fetch size (oversize pages are skipped)
- Retention defaults: keep last 20 snapshots and 20 changes per monitor (adjust in TUI → Settings → Retention)
Start:
bun changes- Monitors: Add → List → Detail → Link notification channel
- Settings: Choose AI provider/model, verify keys, enable/disable summaries
- Controls: ↑/↓ to navigate, Enter to select, ESC/← to go back, q to quit
bun devbun typecheckbun testbun buildCreate and deploy in one flow:
bun setup:vpsPrompts include:
- Hetzner API key
- Server name
- Region
- Server size
- Install path
- Login key (SSH key)
- GitHub auto‑deploy (optional)
After it finishes:
- The app runs on the server.
- On your computer, open the dashboard with:
bun changes --remote- Droid:
droid execis installed during setup when needed. See docs: https://docs.factory.ai/cli/droid-exec/overview.md - AI SDK (Anthropic/OpenAI/Google): set API keys via TUI → Settings → Edit AI (keys are encrypted at rest). Models can be selected per‑provider.
- SQLite at
data/changes.db(WAL mode). Back it up with the-waland-shmside files if running live.
MIT
- Keep changes focused and type‑safe. Include tests for new behavior.
- Use timestamped, minimal logs (no emojis).