npm install -g uptimekit# Start the monitoring daemon
upkit start
# Add a monitor
upkit add https://google.com -t http -i 30 -n "Google"
# Add a monitor to a group
upkit add https://api.dev.com -t http -i 30 -n "Dev API" -g dev
# View dashboard
upkit status
# View detailed stats
upkit status 1
# View only monitors in a specific group
upkit status -g dev- Background Daemon - Continuous monitoring without keeping terminal open
- Live Dashboard - Real-time TUI with status, latency, and uptime metrics
- Multi-Protocol - HTTP/HTTPS, ICMP Ping, DNS, and SSL Certificate monitoring
- SSL Certificate Monitoring - Track certificate expiration with alerts
- Monitor Grouping - Organize monitors as you like
- Desktop Notifications - Get notified when monitors go down or certificates expire
- Webhook Alerts - Send status updates to custom webhook URLs
- Rich Metrics - Latency sparklines, P95, status history timeline
- Lightweight - Minimal resource usage with SQLite storage
uptimekit start # Start monitoring daemon
upkit start # alias
uptimekit stop # Stop daemon
upkit stop # aliasuptimekit add <url> -t <type> -i <interval> -n <name>
upkit add <url> -t <type> -i <interval> -n <name> # alias
uptimekit status # View all monitors
upkit st # alias
uptimekit status <id> # View monitor details
upkit st <id> # alias
uptimekit edit <id> # Edit monitor
upkit edit <id> # alias
uptimekit delete <id> # Delete monitor
upkit del <id> # alias
uptimekit clear # Clear all monitors
upkit clr # alias
uptimekit reset # Reset the database
upkit reset # aliasuptimekit group # List all groups
upkit grp # alias
uptimekit group list # List all groups with monitor counts
upkit grp list # alias
uptimekit group rename <old> <new> # Rename a group
upkit grp rename <old> <new> # alias
uptimekit group delete <name> # Delete group (ungroups monitors)
upkit grp delete <name> --with-monitors # Delete group and its monitorsuptimekit notif enable # Enable desktop notifications
upkit notif enable # alias
uptimekit notif disable # Disable desktop notifications
upkit notif disable # alias
uptimekit notif status # Check notification status
upkit notif status # alias-t, --type- Monitor type:http,icmp,dns,ssl-i, --interval- Check interval in seconds (default: 60)-n, --name- Custom name-u, --url- URL/Host (foreditcommand)-w, --webhook- Webhook URL to receive status updates-g, --group- Group name (usenoneto remove from group)
-g, --group- Filter monitors by group name
HTTP/HTTPS - Website availability
upkit add https://example.com -t http -i 30ICMP Ping - Server reachability
upkit add 8.8.8.8 -t icmp -i 10DNS - Domain resolution
upkit add google.com -t dns -i 60SSL Certificate - Certificate expiration monitoring
upkit add example.com -t ssl -i 3600 -n "Example SSL"Organize your monitors into groups for better management. Groups are useful for separating monitors by environment (dev, staging, production) or by project.
# Add monitor to a group
upkit add https://api.dev.com -t http -i 30 -n "Dev API" -g dev
upkit add https://api.staging.com -t http -i 30 -n "Staging API" -g staging
upkit add https://api.prod.com -t http -i 30 -n "Prod API" -g production# View only monitors in a specific group
upkit status -g dev
upkit status -g production# List all groups with monitor counts
upkit group
# Rename a group
upkit group rename dev development
# Delete a group (monitors become ungrouped)
upkit group delete old-group
# Delete a group AND all its monitors
upkit group delete test-group --with-monitors# Change a monitor's group
upkit edit my-monitor -g production
# Remove a monitor from its group
upkit edit my-monitor -g noneConfigure webhook URLs to receive HTTP POST notifications when monitors change status (UP/DOWN).
When a monitor's status changes, UptimeKit sends a POST request with the following JSON payload:
{
"event": "monitor_up" ,
"monitor": {
"name": "My Website",
"url": "https://example.com",
"status": "up",
"time": "2025-11-27T15:40:59.403Z"
}
}The event field will be either monitor_up or monitor_down.
# Add monitor with webhook
upkit add https://mysite.com -t http -n "My Site" -w https://yourwebhookurl.com/
# Add webhook to existing monitor
upkit edit 1 -w https://yourwebhookurl.com/
# Remove webhook
upkit edit 1 -w none# Monitor a website every 30 seconds
upkit add https://mysite.com -t http -i 30 -n "My Website"
# Monitor with webhook notifications
upkit add https://mysite.com -t http -i 30 -n "My Website" -w https://yourwebhookurl.com/
# Ping Google DNS every 10 seconds
upkit add 8.8.8.8 -t icmp -i 10 -n "Google DNS"
# Check DNS resolution every minute
upkit add github.com -t dns -i 60 -n "GitHub DNS"
# Monitor SSL certificate expiration (check every hour)
upkit add mysite.com -t ssl -i 3600 -n "My Site SSL"
# Add monitors to groups
upkit add https://api.dev.com -t http -i 30 -n "Dev API" -g dev
upkit add https://api.prod.com -t http -i 30 -n "Prod API" -g production
# View all monitors
upkit st
# View only production monitors
upkit st -g production
# List all groups
upkit group
# Move monitor to different group
upkit edit 1 -g staging
# View detailed stats for monitor #1
upkit st 1
# Delete monitor #1
upkit del 1
# Edit monitor #1 (interactive)
upkit edit 1
# Edit monitor #1 (flags)
upkit edit 1 -i 120 -n "Updated Name"The dashboard shows:
- Monitor status (UP/DOWN)
- Current latency
- 24-hour uptime percentage
- Last downtime
- Group name (if assigned)
Monitors are organized by group, with each group displayed in its own section. SSL monitors are displayed in a separate table showing:
- Certificate validity status
- Days remaining until expiration
- Expiry date
- Certificate issuer
The detail view includes:
- Status timeline (last 40 checks)
- Latency sparkline (last 60 seconds)
- Current, average, and P95 latency
- 24-hour uptime percentage
- Group name (if assigned)
- Configured webhook URL (if set)
For SSL monitors, the detail view shows:
- Certificate subject and issuer
- Valid from/to dates
- Days remaining until expiration
- Serial number and fingerprint
- Node.js 16+
- Linux, macOS, or Windows
Full documentation: GitHub Repository
Contributions are welcome! Please read our Contributing Guidelines for details on how to submit pull requests, report issues, and contribute to the project.
UptimeKit is made available under the terms of the MIT License.
Copyright (c) 2025 abhixdd
⭐ Star on GitHub • 🐛 Report Bug • 💡 Request Feature
