LE
Leonard013/WebSentinel
A modern Chrome extension that monitors webpages for changes and notifies you when content updates
WebSentinel
Webpage monitoring extension for Chrome and Firefox.
Heavily inspired by the legendary Update Scanner for Firefox.
WebSentinel monitors web pages for content changes. It runs in the background and notifies you when pages update, with configurable sensitivity to filter out minor edits.
Features
- Granular Sensitivity: Choose between "Every Change", "Default" (significant edits), or "Low" (major updates only).
- Diff Viewer: See exactly what changed with a built-in visual diff tool (highlighted and side-by-side views).
- Local Processing: All checks happen locally in your browser — no external servers involved.
- Cloud Sync: Page list syncs across devices via Chrome/Firefox sync.
- Backup & Restore: Export and import your monitored pages as JSON.
Installation
Chrome (Developer Mode)
- Clone the repository:
git clone https://github.com/Leonard013/WebSentinel
- Open
chrome://extensions/ - Enable Developer mode (toggle in the top-right corner).
- Click Load unpacked and select the project root folder (contains
manifest.json).
Firefox (Temporary Add-on)
- Clone the repository:
git clone https://github.com/Leonard013/WebSentinel
- Copy
manifest.firefox.jsonovermanifest.json:Or use the build script to generate a Firefox package (see Build below).cp manifest.firefox.json manifest.json
- Open
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on and select any file inside the project folder (e.g.
manifest.json).
Note: Temporary add-ons are removed when Firefox closes. For permanent installation, submit the built
.zipto addons.mozilla.org.
Quick Start
- Click the WebSentinel icon in your browser toolbar.
- Navigate to a page you want to track and click Add Page.
- Configure Sensitivity:
- Every Change: Detects even a single character change.
- Default: Ignores minor formatting; detects changes of ~100+ words.
- Low: Only triggers on major structural updates.
- Click Save.
Build
Requires Node.js. Produces a .zip ready for store submission.
# Build for Chrome (default)
node build.js
# Build for Firefox
node build.js --firefox
# Build for both
node build.js --allOutput files:
WebSentinel-v{VERSION}.zip— Chrome Web Store packageWebSentinel-firefox-v{VERSION}.zip— Firefox Add-ons package
Project Structure
WebSentinel/
├── manifest.json # Chrome extension manifest (MV3)
├── manifest.firefox.json # Firefox extension manifest (MV3)
├── build.js # Build script (supports --chrome, --firefox, --all)
├── icons/ # Extension icons
├── src/
│ ├── background/ # Service worker (alarms, scanning, message hub)
│ ├── lib/ # Core logic (diff engine, storage, scanner, backup)
│ ├── popup/ # Main popup UI
│ └── viewer/ # Diff viewer (highlighted + side-by-side)
└── test/ # Browser-based unit tests
Browser Compatibility
| Feature | Chrome | Firefox |
|---|---|---|
| Manifest | V3 (service worker) | V3 (background scripts) |
| Min version | Chrome 102+ | Firefox 109+ |
| Storage sync | chrome.storage.sync | chrome.storage.sync |
| Notifications | Full support | Full support |
| Keyboard shortcut | Alt+W | Alt+W |
Running Tests
Tests run in the browser (no CLI test runner):
python3 -m http.server 8000
# Open http://localhost:8000/test/run-tests.htmlQuick smoke tests: open test/simple-test.html in the browser.
On this page
Languages
JavaScript62.7%HTML28.7%CSS8.6%
Contributors
MIT License
Created November 28, 2025
Updated February 25, 2026