Agent skill
uptime-kuma
Manage Uptime Kuma monitoring via the Python API. Use when: (1) User asks to add, remove, or list monitors, (2) User asks about service uptime or monitoring status, (3) User asks to check what's being monitored, (4) User deploys a new service and needs monitoring added, (5) User mentions "uptime", "monitoring", "health check", or "uptime kuma". Uptime Kuma v2 running in Kubernetes, managed via uptime-kuma-api Python library.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/uptime-kuma
SKILL.md
Uptime Kuma Monitoring Management
Overview
- URL:
https://uptime.viktorbarzin.me - Internal:
uptime-kuma.uptime-kuma.svc.cluster.local:80 - Image:
louislam/uptime-kuma:2 - Storage: NFS at
/mnt/main/uptime-kuma->/app/data - API Library:
uptime-kuma-api(pip, available via PYTHONPATH) - Credentials: admin / (from
UPTIME_KUMA_PASSWORDenv var)
Python API Access
Connection Pattern
import os
from uptime_kuma_api import UptimeKumaApi, MonitorType
api = UptimeKumaApi('https://uptime.viktorbarzin.me')
api.login('admin', os.environ.get('UPTIME_KUMA_PASSWORD', ''))
# ... operations ...
api.disconnect()
Execution
python3 -c "
import os
from uptime_kuma_api import UptimeKumaApi, MonitorType
api = UptimeKumaApi('https://uptime.viktorbarzin.me')
api.login('admin', os.environ.get('UPTIME_KUMA_PASSWORD', ''))
# ... your code ...
api.disconnect()
"
Common Operations
List All Monitors
monitors = api.get_monitors()
for m in monitors:
print(f'{m["id"]:3d} | {m["name"]:30s} | {m["type"]:15s} | interval={m["interval"]}s')
Add HTTP Monitor
api.add_monitor(
type=MonitorType.HTTP,
name="Service Name",
url="http://service.namespace.svc.cluster.local",
interval=120,
maxretries=2,
)
Add PING Monitor
api.add_monitor(
type=MonitorType.PING,
name="Host Name",
hostname="10.0.20.1",
interval=30,
maxretries=3,
)
Add PORT Monitor
api.add_monitor(
type=MonitorType.PORT,
name="Service Port",
hostname="service.namespace.svc.cluster.local",
port=8080,
interval=120,
maxretries=2,
)
Edit Monitor
api.edit_monitor(monitor_id, interval=120, maxretries=2)
Delete Monitor
api.delete_monitor(monitor_id)
Pause/Resume Monitor
api.pause_monitor(monitor_id)
api.resume_monitor(monitor_id)
Monitor Types
MonitorType.HTTP— HTTP(S) endpoint checkMonitorType.PING— ICMP pingMonitorType.PORT— TCP port checkMonitorType.POSTGRES— PostgreSQL connectionMonitorType.REDIS— Redis connectionMonitorType.DNS— DNS resolution check
Tiered Monitoring System
Monitors use tiered intervals to balance responsiveness with resource usage:
| Tier | Interval | Retries | Use For |
|---|---|---|---|
| 1 - Critical | 30s | 3 | Core infra (DNS, gateway, ingress, NFS, K8s API, auth, mail) |
| 2 - Important | 120s | 2 | Actively used services (Nextcloud, Immich, Vaultwarden, etc.) |
| 3 - Standard | 300s | 1 | Auxiliary/optional services (blog, games, tools) |
Tier Assignment Guidelines
- Tier 1: If it goes down, multiple other services fail or the cluster is unreachable
- Tier 2: User-facing services that are actively used daily
- Tier 3: Nice-to-have services, tools, dashboards
When Adding a New Service
Match the tier to the service's DEFCON level from CLAUDE.md:
- DEFCON 1-2 → Tier 1 (30s)
- DEFCON 3-4 → Tier 2 (120s)
- DEFCON 5 → Tier 3 (300s)
Internal Service URL Pattern
Most K8s services follow: http://<service-name>.<namespace>.svc.cluster.local:<port>
Common port is 80. Exceptions:
- Homepage: port 3000
- Ollama: port 11434
- Loki: port 3100 (use
/readyendpoint) - Traefik dashboard: port 8080 (use
/dashboard/path) - K8s API:
https://10.0.20.100:6443 - Immich: port 2283 (use
/api/server/ping)
Notes
- Uptime Kuma uses Socket.IO (WebSocket) for its API, not REST
- The
uptime-kuma-apiPython library wraps Socket.IO - Add
time.sleep(0.3)between bulk operations to avoid overloading - Homepage dashboard widget slug:
cluster-internal - Cloudflare-proxied at
uptime.viktorbarzin.me
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?