✓ Verified 💻 Development ✓ Enhanced Data

Website Monitor

Lightweight website uptime monitor.

Rating
4.3 (191 reviews)
Downloads
41,189 downloads
Version
1.0.0

Overview

Lightweight website uptime monitor.

Key Features

1

Uptime checking: Verify any URL returns the expected HTTP status code

2

Response time measurement: Precise millisecond timing for each request

3

Content change detection: SHA-256 based hashing to detect when page content changes between checks

4

Text verification: Confirm that specific text appears in the response body

5

Multi-URL support: Check multiple sites in a single command

6

JSON output: Machine-readable output for integration with other tools and dashboards

7

Exit codes: Returns exit code 1 if any site is down, making it perfect for shell scripts and cron jobs

Complete Documentation

View Source →

Website Monitor

A zero-dependency Python tool for checking website availability, measuring response times, and detecting content changes. Uses only Python's standard library (urllib) — no requests, no aiohttp, no external packages.

Features

  • Uptime checking: Verify any URL returns the expected HTTP status code
  • Response time measurement: Precise millisecond timing for each request
  • Content change detection: SHA-256 based hashing to detect when page content changes between checks
  • Text verification: Confirm that specific text appears in the response body
  • Multi-URL support: Check multiple sites in a single command
  • JSON output: Machine-readable output for integration with other tools and dashboards
  • Exit codes: Returns exit code 1 if any site is down, making it perfect for shell scripts and cron jobs

Usage Examples

Simple uptime check:

bash
python main.py https://example.com
# ✅ https://example.com
#    Status: 200
#    Response: 142ms
#    Size: 1256 bytes
#    Hash: fb91d75a6bb43078

Check multiple sites at once:

bash
python main.py example.com google.com github.com

Detect content changes (compare against a previous hash):

bash
python main.py https://example.com --hash-check fb91d75a6bb43078
# Shows "Changed: YES ⚠️" or "Changed: No"

Verify a page contains expected text:

bash
python main.py https://status.example.com --contains "All Systems Operational"

Expect a specific status code (e.g., redirect):

bash
python main.py https://old.example.com --expect 301

JSON output for scripting:

bash
python main.py example.com github.com --json | jq '.[] | select(.up == false)'

Use in a cron job or script:

bash
python main.py https://mysite.com || echo "ALERT: Site is down!" | mail -s "Downtime Alert" [email protected]

Command Line Options

  • urls — One or more URLs to check (auto-prepends https:// if missing)
  • --timeout N — Request timeout in seconds (default: 10)
  • --expect N — Expected HTTP status code (default: 200)
  • --contains TEXT — Verify response body contains this string
  • --hash-check HASH — Previous content hash to compare against for change detection
  • --json — Output results as JSON array

Exit Codes

  • 0 — All sites are up and match expectations
  • 1 — One or more sites are down or failed checks

Installation

Terminal bash

openclaw install website-monitor
    
Copied!

💻Code Examples

Simple uptime check:

simple-uptime-check.sh
python main.py https://example.com
# ✅ https://example.com
#    Status: 200
#    Response: 142ms
#    Size: 1256 bytes
#    Hash: fb91d75a6bb43078

Detect content changes (compare against a previous hash):

detect-content-changes-compare-against-a-previous-hash.sh
python main.py https://example.com --hash-check fb91d75a6bb43078
# Shows "Changed: YES ⚠️" or "Changed: No"

Tags

#web_and-frontend-development #web

Quick Info

Category Development
Model Claude 3.5
Complexity One-Click
Author claudiodrusus
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install website-monitor