Back to Skills
    šŸ¦ž

    uptime-monitor

    24/7 OpenClaw uptime monitor.

    By @kunoiiv
    View on GitHub
    SKILL.md
    ---
    name: uptime-monitor
    description: 24/7 OpenClaw uptime monitor. Every 5min cron ping → writes dead.json if down, uptime.json after 7d (168h) continuous alive streak. Use when setting up persistent monitoring (cron setup, streak tracking, status files).
    ---
    
    # Uptime Monitor
    
    Silent 24/7 sentinel: Tracks OpenClaw/Gateway alive → dead.json (fail) or uptime.json (7d streak). Files in workspace/uptime/.
    
    ## Quick Setup (One-Shot)
    ```bash
    # Install cron (5min pings)
    šŸ“Š cron add uptime-5m '{"kind":"every","everyMs":300000}' '{"kind":"systemEvent","text":"UPTIME CHECK šŸ‘»"}' --sessionTarget main
    
    # View status/logs
    šŸ“Š cron list
    šŸ“Š cron runs uptime-5m
    ```
    
    ## Workflow (Auto on "UPTIME CHECK")
    1. **Ping**: `šŸ“Š session_status` + `openclaw gateway status` (via exec).
    2. **Success**: Update `uptime/streak.json` (hours += 5/60). If >=168h → write `uptime/uptime.json`.
    3. **Fail**: Write `uptime/dead.json` {ts, downtime_start: now}.
    4. **Dirs**: Auto-mkdir `uptime/`.
    
    **Streak Reset**: On fail → streak=0.
    
    ## Files (Workspace/uptime/)
    - `streak.json`: `{"streak_hours": 24.5, "last_ping": 1738746800000}`
    - `uptime.json`: `{"streak_hours": 168.1, "verified": true, "end_ts": 1738746800000}` (7d+)
    - `dead.json`: `{"ts": 1738746800000, "downtime_start": 1738746800000}`
    
    ## Edge Handling
    - First run: streak=0.
    - Cron miss: Streak holds (no false-dead).
    - Manual: `message "UPTIME CHECK šŸ‘»"` triggers.
    
    No alerts/deps. Pure files. Prod eternal.
    
    ## Script (Optional Exec)
    `scripts/uptime-check.js`: Standalone Node ping (for manual/cron spawn).
    
    Prod: Cron → silent forever.