{
  "schemaVersion": "1.0",
  "item": {
    "slug": "service-watchdog",
    "name": "Service Watchdog",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/mariusfit/service-watchdog",
    "canonicalUrl": "https://clawhub.ai/mariusfit/service-watchdog",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/service-watchdog",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=service-watchdog",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "watchdog.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/service-watchdog"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/service-watchdog",
    "agentPageUrl": "https://openagent3.xyz/skills/service-watchdog/agent",
    "manifestUrl": "https://openagent3.xyz/skills/service-watchdog/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/service-watchdog/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Service Watchdog",
        "body": "Lightweight service and endpoint monitoring for self-hosted infrastructure. Checks HTTP endpoints, TCP ports, SSL certificate expiry, and DNS resolution — then reports status in a clean, chat-friendly format."
      },
      {
        "title": "What It Does",
        "body": "HTTP Health Checks — GET/POST with expected status codes, response time tracking, content matching\nTCP Port Checks — Verify services are listening (databases, mail servers, game servers, etc.)\nSSL Certificate Monitoring — Days until expiry, issuer info, auto-warn thresholds\nDNS Resolution — Verify domains resolve correctly, detect DNS hijacking\nSmart Summaries — One-glance status for all your services, with trend data\nAlert Logic — Configurable thresholds, cooldowns, and severity levels to prevent alert fatigue"
      },
      {
        "title": "1. Create a watchlist",
        "body": "Create watchdog.json in your workspace root:\n\n{\n  \"services\": [\n    {\n      \"name\": \"Home Assistant\",\n      \"type\": \"http\",\n      \"url\": \"http://192.168.1.100:8123\",\n      \"expect_status\": 200,\n      \"timeout_ms\": 5000\n    },\n    {\n      \"name\": \"Proxmox\",\n      \"type\": \"https\",\n      \"url\": \"https://proxmox.local:8006\",\n      \"expect_status\": 200,\n      \"ssl_warn_days\": 14,\n      \"timeout_ms\": 5000\n    },\n    {\n      \"name\": \"PostgreSQL\",\n      \"type\": \"tcp\",\n      \"host\": \"db.local\",\n      \"port\": 5432,\n      \"timeout_ms\": 3000\n    },\n    {\n      \"name\": \"My Domain\",\n      \"type\": \"dns\",\n      \"domain\": \"example.com\",\n      \"expect_ip\": \"93.184.216.34\"\n    }\n  ],\n  \"defaults\": {\n    \"timeout_ms\": 5000,\n    \"ssl_warn_days\": 14,\n    \"alert_cooldown_min\": 30,\n    \"history_retention_days\": 30\n  }\n}"
      },
      {
        "title": "2. Run a check",
        "body": "bash skills/service-watchdog/watchdog.sh\n\nOutput example:\n\n🟢 Home Assistant       — 200 OK (142ms)\n🟢 Proxmox              — 200 OK (89ms) | SSL: 47 days\n🟢 PostgreSQL           — port 5432 open (12ms)\n🟢 My Domain            — resolves to 93.184.216.34 ✓\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n4/4 healthy | avg response: 81ms | checked: 2026-02-24 16:30 UTC"
      },
      {
        "title": "3. Detailed report",
        "body": "bash skills/service-watchdog/watchdog.sh --report\n\nShows trend data: uptime percentage, P95 response times, incident history."
      },
      {
        "title": "4. JSON output (for cron integration)",
        "body": "bash skills/service-watchdog/watchdog.sh --json"
      },
      {
        "title": "5. Check SSL only",
        "body": "bash skills/service-watchdog/watchdog.sh --ssl-only"
      },
      {
        "title": "6. Alert summary (for messaging)",
        "body": "bash skills/service-watchdog/watchdog.sh --alerts-only\n\nOnly outputs services that need attention (down, slow, SSL expiring)."
      },
      {
        "title": "Cron Integration",
        "body": "Add to your OpenClaw cron for continuous monitoring:\n\nEvery 5 minutes (lightweight check):\n\nRun `bash skills/service-watchdog/watchdog.sh --json` and report only if any service is unhealthy.\n\nDaily SSL report:\n\nRun `bash skills/service-watchdog/watchdog.sh --ssl-only` and report expiring certificates."
      },
      {
        "title": "Service types",
        "body": "TypeRequired FieldsOptional Fieldshttp / httpsurlexpect_status, expect_body, method, headers, timeout_ms, ssl_warn_daystcphost, porttimeout_msdnsdomainexpect_ip, nameserver"
      },
      {
        "title": "Global defaults",
        "body": "FieldDefaultDescriptiontimeout_ms5000Request timeoutssl_warn_days14SSL expiry warning thresholdalert_cooldown_min30Min minutes between repeated alertshistory_retention_days30How long to keep check historyhistory_filewatchdog-history.csvPath for check history data"
      },
      {
        "title": "How the Agent Should Use This",
        "body": "When the user asks about service status, infrastructure health, or \"are my services up?\":\n\nRun bash skills/service-watchdog/watchdog.sh for a quick overview\nRun with --report for detailed trends and history\nRun with --alerts-only for just the problems\nRun with --ssl-only to check certificate status\nRun with --json when you need structured data for further analysis\n\nFor proactive monitoring, run checks in cron jobs and only alert the user when something is wrong."
      },
      {
        "title": "Requirements",
        "body": "curl (for HTTP/HTTPS checks)\nopenssl (for SSL certificate checks)\nnc or ncat (for TCP port checks) — falls back to bash /dev/tcp if unavailable\ndig or nslookup (for DNS checks) — falls back to host command\njq (for JSON config parsing)\n\nAll standard on most Linux distributions. No external APIs or accounts needed."
      }
    ],
    "body": "Service Watchdog\n\nLightweight service and endpoint monitoring for self-hosted infrastructure. Checks HTTP endpoints, TCP ports, SSL certificate expiry, and DNS resolution — then reports status in a clean, chat-friendly format.\n\nWhat It Does\nHTTP Health Checks — GET/POST with expected status codes, response time tracking, content matching\nTCP Port Checks — Verify services are listening (databases, mail servers, game servers, etc.)\nSSL Certificate Monitoring — Days until expiry, issuer info, auto-warn thresholds\nDNS Resolution — Verify domains resolve correctly, detect DNS hijacking\nSmart Summaries — One-glance status for all your services, with trend data\nAlert Logic — Configurable thresholds, cooldowns, and severity levels to prevent alert fatigue\nQuick Start\n1. Create a watchlist\n\nCreate watchdog.json in your workspace root:\n\n{\n  \"services\": [\n    {\n      \"name\": \"Home Assistant\",\n      \"type\": \"http\",\n      \"url\": \"http://192.168.1.100:8123\",\n      \"expect_status\": 200,\n      \"timeout_ms\": 5000\n    },\n    {\n      \"name\": \"Proxmox\",\n      \"type\": \"https\",\n      \"url\": \"https://proxmox.local:8006\",\n      \"expect_status\": 200,\n      \"ssl_warn_days\": 14,\n      \"timeout_ms\": 5000\n    },\n    {\n      \"name\": \"PostgreSQL\",\n      \"type\": \"tcp\",\n      \"host\": \"db.local\",\n      \"port\": 5432,\n      \"timeout_ms\": 3000\n    },\n    {\n      \"name\": \"My Domain\",\n      \"type\": \"dns\",\n      \"domain\": \"example.com\",\n      \"expect_ip\": \"93.184.216.34\"\n    }\n  ],\n  \"defaults\": {\n    \"timeout_ms\": 5000,\n    \"ssl_warn_days\": 14,\n    \"alert_cooldown_min\": 30,\n    \"history_retention_days\": 30\n  }\n}\n\n2. Run a check\nbash skills/service-watchdog/watchdog.sh\n\n\nOutput example:\n\n🟢 Home Assistant       — 200 OK (142ms)\n🟢 Proxmox              — 200 OK (89ms) | SSL: 47 days\n🟢 PostgreSQL           — port 5432 open (12ms)\n🟢 My Domain            — resolves to 93.184.216.34 ✓\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n4/4 healthy | avg response: 81ms | checked: 2026-02-24 16:30 UTC\n\n3. Detailed report\nbash skills/service-watchdog/watchdog.sh --report\n\n\nShows trend data: uptime percentage, P95 response times, incident history.\n\n4. JSON output (for cron integration)\nbash skills/service-watchdog/watchdog.sh --json\n\n5. Check SSL only\nbash skills/service-watchdog/watchdog.sh --ssl-only\n\n6. Alert summary (for messaging)\nbash skills/service-watchdog/watchdog.sh --alerts-only\n\n\nOnly outputs services that need attention (down, slow, SSL expiring).\n\nCron Integration\n\nAdd to your OpenClaw cron for continuous monitoring:\n\nEvery 5 minutes (lightweight check):\n\nRun `bash skills/service-watchdog/watchdog.sh --json` and report only if any service is unhealthy.\n\n\nDaily SSL report:\n\nRun `bash skills/service-watchdog/watchdog.sh --ssl-only` and report expiring certificates.\n\nConfiguration Reference\nService types\nType\tRequired Fields\tOptional Fields\nhttp / https\turl\texpect_status, expect_body, method, headers, timeout_ms, ssl_warn_days\ntcp\thost, port\ttimeout_ms\ndns\tdomain\texpect_ip, nameserver\nGlobal defaults\nField\tDefault\tDescription\ntimeout_ms\t5000\tRequest timeout\nssl_warn_days\t14\tSSL expiry warning threshold\nalert_cooldown_min\t30\tMin minutes between repeated alerts\nhistory_retention_days\t30\tHow long to keep check history\nhistory_file\twatchdog-history.csv\tPath for check history data\nHow the Agent Should Use This\n\nWhen the user asks about service status, infrastructure health, or \"are my services up?\":\n\nRun bash skills/service-watchdog/watchdog.sh for a quick overview\nRun with --report for detailed trends and history\nRun with --alerts-only for just the problems\nRun with --ssl-only to check certificate status\nRun with --json when you need structured data for further analysis\n\nFor proactive monitoring, run checks in cron jobs and only alert the user when something is wrong.\n\nRequirements\ncurl (for HTTP/HTTPS checks)\nopenssl (for SSL certificate checks)\nnc or ncat (for TCP port checks) — falls back to bash /dev/tcp if unavailable\ndig or nslookup (for DNS checks) — falls back to host command\njq (for JSON config parsing)\n\nAll standard on most Linux distributions. No external APIs or accounts needed."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/mariusfit/service-watchdog",
    "publisherUrl": "https://clawhub.ai/mariusfit/service-watchdog",
    "owner": "mariusfit",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/service-watchdog",
    "downloadUrl": "https://openagent3.xyz/downloads/service-watchdog",
    "agentUrl": "https://openagent3.xyz/skills/service-watchdog/agent",
    "manifestUrl": "https://openagent3.xyz/skills/service-watchdog/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/service-watchdog/agent.md"
  }
}