open sourceAug 2026 - Present

Sentinel

Add it once. Sentinel watches it. Know when it changes.

A dependency-free Python CLI that monitors the things developers depend on — and explains exactly what changed.

  • 0

    Third-party dependencies

  • 5 types

    GitHub, HTTP, API, PyPI, npm

  • SQLite

    Durable change history

  • CI-ready

    JSON output + exit codes

Sentinel — project cover

Why it stands out

The decisions, trade-offs, and details that make Sentinel worth your time.

01

Explains what changed, not just that it changed — releases, JSON fields, HTTP status, commits

02

Zero dependencies: Python 3.11+, pip install and go

03

Durable SQLite history with uptime statistics, watch mode and machine-readable output

04

Ships with a safety-first updater that verifies checksums before touching anything

Monitor everything that matters

Checking releases, endpoints and version fields by hand is tedious and forgettable. Sentinel turns it into a repeatable, inspectable routine — and keeps a durable history so you know when something changed, not just that it did.

GitHub releases, tags and commits

Watch microsoft/vscode for releases, python/cpython for commits, or any repository for new tags. Repositories are verified to exist when added.

Websites and APIs

Track a page for changes or drill into a JSON endpoint with a jpath such as $.version or $.stargazers_count, with custom headers and environment-variable secrets.

PyPI and npm packages

Know the moment a dependency ships a new release — with human names for the sources you care about most.

Diffs, not noise

Sentinel reports what changed: a version going 1.102.0 → 1.103.0, an endpoint going HTTP 200 → HTTP 404, or a JSON field moving between values.

Durable history

Every observation is stored in SQLite. sentinel history shows a source's timeline; sentinel uptime turns checks into uptime statistics.

Watch mode

Run sentinel watch --interval 10m to check repeatedly and print changes as they happen. Ctrl-C stops cleanly and the interval is configurable.

Built for scripts

sentinel check --json emits machine-readable output. Exit codes mean something: 0 = no changes, 1 = changes detected, 2 = a source failed.

Safety-first updates

Monitoring is passive; updating is explicit and potentially destructive. The two are kept strictly separate. sentinel upgrade downloads verified release assets — checksum-checked — into <install-path>/<version>/.

Immediately useful defaults

Interactive add, non-interactive one-liners, show, status, list, config — a complete CLI surface with no setup ceremony.

A five-minute setup that keeps paying off

Sentinel is deliberately boring where it matters: install it, point it at the things you depend on, and let it speak only when something changes.

01

Install

pip install . — Python 3.11+ and nothing else. No virtualenv gymnastics required.

02

Add sources

sentinel add github microsoft/vscode --monitor release, sentinel add pypi requests, sentinel add api https://api.example.com/version --jpath '$.version'. Interactive or one-line.

03

Check and watch

Run sentinel check in a cron job or CI pipeline, or sentinel watch --interval 10m while you work.

04

Upgrade deliberately

When you're ready, sentinel upgrade fetches verified assets into a versioned folder. Nothing is replaced behind your back.

CLI surface

sentinel add       Add a source (github | http | api | pypi | npm)
sentinel check     Check now — prints diffs, stores history, sets exit code
sentinel watch     Check repeatedly, stream changes as they happen
sentinel history   A source's observation timeline
sentinel uptime    Uptime statistics from the checks log
sentinel status    Sources, current values, health
sentinel show      Full detail of one source
sentinel upgrade   Verified, checksum-checked software updates (dry-run safe)

Tech stack

Deliberately dependency-free so it can run anywhere Python runs — including CI images you don't control.

Python 3.11+Zero dependenciesSQLiteGitHub APIPyPI/npmChecksum-verified

Licensed under MIT.

Repositorygithub.com/Pranesh-Selvaraj/Sentinel
LicenseMIT
LanguagePython 3.11+
DependenciesNone — standard library only
StorageSQLite (sources, observations, change log)
SourcesGitHub (releases/tags/commits), HTTP, JSON API (jpath), PyPI, npm
OutputHuman-readable, --json, and CI-friendly exit codes
Configconfig.toml + environment variables for secrets
UpdatesChecksum-verified release assets, dry-run by default
CIGitHub Actions with a full test suite

Built in the open. Star it, try it, break it.

Sentinel is MIT-licensed and developed in public. Feedback, issues, and contributions are genuinely welcome.