🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Monitor

by @ivangdavila

Create monitors for anything. User defines what to check, skill handles scheduling and alerts.

Versionv1.0.2
Downloads2,639
Installs15
Stars⭐ 2
TERMINAL
clawhub install monitor

πŸ“– About This Skill


name: Monitor slug: monitor version: 1.0.2 description: Create monitors for anything. User defines what to check, skill handles scheduling and alerts. changelog: Declared required binaries and optional env vars in metadata metadata: {"clawdbot":{"emoji":"πŸ“‘","requires":{"bins":["curl"],"env":{"optional":["PUSHOVER_TOKEN","PUSHOVER_USER"]}},"os":["linux","darwin","win32"]}}

Data Storage

~/monitor/
β”œβ”€β”€ monitors.json       # Monitor definitions
β”œβ”€β”€ config.json         # Alert preferences
└── logs/               # Check results
    └── {name}/YYYY-MM.jsonl

Create on first use: mkdir -p ~/monitor/logs

Scope

This skill:

  • βœ… Stores monitor definitions in ~/monitor/
  • βœ… Runs checks at specified intervals
  • βœ… Alerts user on status changes
  • Execution model:

  • User explicitly defines WHAT to monitor
  • User grants any permissions/tools needed
  • Skill only handles WHEN and ALERTING
  • This skill does NOT:

  • ❌ Assume access to any service or endpoint
  • ❌ Run checks without user-defined instructions
  • ❌ Store credentials (user provides via environment or other skills)
  • Requirements

    Required:

  • curl β€” for HTTP checks
  • Optional (for alerts):

  • PUSHOVER_TOKEN / PUSHOVER_USER β€” for push notifications
  • Webhook URL β€” user provides their own endpoint
  • Used if available:

  • openssl β€” for SSL certificate checks
  • pgrep β€” for process checks
  • df β€” for disk space checks
  • nc β€” for port checks
  • Quick Reference

    | Topic | File | |-------|------| | Monitor type examples | templates.md | | Alert configuration | alerts.md | | Analysis patterns | insights.md |

    Core Rules

    1. User Defines Everything

    When user requests a monitor: 1. WHAT: User specifies what to check 2. HOW: User provides method or grants tool access 3. WHEN: This skill handles interval 4. ALERT: This skill handles notifications

    Example flow:

    User: "Monitor my API at api.example.com every 5 minutes"
    Agent: "I'll check HTTP status. Alert you on failures?"
    User: "Yes, and check SSL cert too"
    β†’ Monitor stored with user-defined checks
    

    2. Monitor Definition

    In ~/monitor/monitors.json:
    {
      "api_prod": {
        "description": "User's API health",
        "checks": [
          {"type": "http", "target": "https://api.example.com/health"},
          {"type": "ssl", "target": "api.example.com"}
        ],
        "interval": "5m",
        "alert_on": "change",
        "requires": [],
        "created": "2024-03-15"
      }
    }
    

    3. Common Check Types

    User can request any of these (or others):

    | Type | What it checks | Tool used | |------|---------------|-----------| | http | URL status + latency | curl | | ssl | Certificate expiry | openssl | | process | Process running | pgrep | | disk | Free space | df | | port | Port open | nc | | custom | User-defined command | user specifies |

    4. Confirmation Format

    βœ… Monitor: [description]
    πŸ” Checks: [what will be checked]
    ⏱️ Interval: [how often]
    πŸ”” Alert: [when to notify]
    πŸ”§ Requires: [tools/access needed]
    

    5. Alert on Change

  • Alert when status changes (okβ†’fail, failβ†’ok)
  • Include failure count
  • Recovery message when back to OK
  • Never spam repeated same-status
  • 6. Permissions

    The requires field lists what user granted:
  • Empty = basic checks only (curl, df, pgrep)
  • ["ssh:server1"] = user granted SSH access
  • ["docker"] = user granted Docker access
  • Agent asks before assuming any access.