Uptime Kuma Skill
Manage Uptime Kuma monitors via CLI wrapper around the Socket.IO API.
Setup
Requires uptime-kuma-api Python package:
bash
pip install uptime-kuma-api
Environment variables (set in shell or Clawdbot config):
- UPTIME_KUMA_URL - Server URL (e.g., http://localhost:3001)
- UPTIME_KUMA_USERNAME - Login username
- UPTIME_KUMA_PASSWORD - Login password
Usage
Script location: scripts/kuma.py
Commands
# Overall status summary
python scripts/kuma.py status
# List all monitors
python scripts/kuma.py list
python scripts/kuma.py list --json
# Get monitor details
python scripts/kuma.py get <id>
# Add monitors
python scripts/kuma.py add --name "My Site" --type http --url https://example.com
python scripts/kuma.py add --name "Server Ping" --type ping --hostname 192.168.1.1
python scripts/kuma.py add --name "SSH Port" --type port --hostname server.local --port 22
# Pause/resume monitors
python scripts/kuma.py pause <id>
python scripts/kuma.py resume <id>
# Delete monitor
python scripts/kuma.py delete <id>
# View heartbeat history
python scripts/kuma.py heartbeats <id> --hours 24
# List notification channels
python scripts/kuma.py notifications
Monitor Types
http- HTTP/HTTPS endpointping- ICMP pingport- TCP port checkkeyword- HTTP + keyword searchdns- DNS resolutiondocker- Docker containerpush- Push-based (passive)mysql,postgres,mongodb,redis- Database checksmqtt- MQTT brokergroup- Monitor group
Common Workflows
Check what's down:
bash
python scripts/kuma.py status
python scripts/kuma.py list # Look for 🔴
Add HTTP monitor with 30s interval:
bash
python scripts/kuma.py add --name "API Health" --type http --url https://api.example.com/health --interval 30
Maintenance mode (pause all):
bash
for id in $(python scripts/kuma.py list --json | jq -r '.[].id'); do
python scripts/kuma.py pause $id
done