Gateway Watchdog Discord
Monitor the OpenClaw Gateway plus configured Spark, Local API Hub, and Dashboard loopback health endpoints with a read-only watchdog state machine, local state files, cooldown dedu…
Jonathan Jing
@jonathanjing
Install
$ openclaw skills install @jonathanjing/openclaw-gateway-watchdog-skillGateway Watchdog (Discord)
Discord-first watchdog for OpenClaw gateway incidents.
🛠️ Installation
1. Ask OpenClaw (Recommended)
Tell OpenClaw: "Install the gateway-watchdog skill." Loading a LaunchAgent or configuring Discord delivery remains an explicit operator action.
2. Manual Installation (CLI)
If you prefer the terminal, run:
openclaw skills install @jonathanjing/openclaw-gateway-watchdog-skill
Isolation model
- Watchdog data is isolated under
~/.openclaw/watchdogs/gateway-discord/. - No edits to
openclaw.jsonare required. - The shipped watchdog is read-only: it does not rewrite
openclaw.json, rundoctor --fix, promote baselines, or restart services. - Discord delivery exports a bounded incident summary to a third party; use an allowlisted private channel.
- A foreground run probes four targets: OpenClaw Gateway, Spark status, Local API Hub health, and Dashboard health. The latter three default to loopback endpoints and may be overridden with the declared environment variables.
- The script writes per-target state plus an append-only event log under the watchdog data directory. It creates background persistence only when the operator explicitly runs the cron or LaunchAgent installation commands below.
config.envis parsed as data using an allowlist; it is never sourced or executed. For Spark only, the script may read the singleSPARK_API_TOKENvalue from~/.openclaw/.envwhen that token is not already configured.
Files in this skill
scripts/gateway-watchdog.sh- health checks + state machine + Discord notification.scripts/install-launchd.sh- installs a user LaunchAgent from template.references/com.openclaw.gateway-watchdog.plist.template- launchd template.references/cron-agent-turn.md- isolated cron prompt template.
Health checks
Every run performs these checks:
openclaw gateway status --json
openclaw health --json --timeout <ms>
curl "${SPARK_API_URL:-http://127.0.0.1:17070}/status"
curl "${LOCAL_API_URL:-http://localhost:3456}/health"
curl "http://localhost:${DASHBOARD_PORT:-18793}/health"
Pass criteria:
- gateway runtime is
running - RPC probe is healthy (when present)
- health snapshot returns successfully
Failure classes:
runtime_stoppedrpc_probe_failedhealth_unreachableauth_mismatchconfig_invalid- target-specific Spark, Local API Hub, or Dashboard connectivity failure
Quick start (manual run)
bash "{baseDir}/scripts/gateway-watchdog.sh"
Optional env:
export DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/..."
export DISCORD_BOT_TOKEN="discord_bot_token"
export DISCORD_CHANNEL_ID="<your_discord_channel_id>"
export GW_WATCHDOG_SOURCE="manual"
export GW_WATCHDOG_FAIL_THRESHOLD=2
export GW_WATCHDOG_COOLDOWN_SECONDS=300
Delivery priority:
DISCORD_WEBHOOK_URLDISCORD_BOT_TOKEN + DISCORD_CHANNEL_ID
macOS background mode (LaunchAgent)
Install LaunchAgent (does not edit OpenClaw core config):
bash "{baseDir}/scripts/install-launchd.sh" --interval 30 --load
Check status:
launchctl list | rg "com.openclaw.gateway-watchdog"
OpenClaw cron mode (internal path)
Use isolated job and keep messaging in one channel:
openclaw cron add \
--name "gateway-watchdog-internal" \
--cron "*/1 * * * *" \
--session isolated \
--message "Run bash {baseDir}/scripts/gateway-watchdog.sh and report state changes only." \
--announce \
--channel discord \
--to "channel:<your_channel_id>" \
--best-effort-deliver
Backup and audit artifacts
- state file:
~/.openclaw/watchdogs/gateway-discord/state.json - state backups:
~/.openclaw/watchdogs/gateway-discord/backups/state-*.json - event log:
~/.openclaw/watchdogs/gateway-discord/events.jsonl
The script rotates old backups and keeps recent history for rollback/debugging.
Top skills in this category
CMO / Chief Marketing Officer
@ivangdavilaOperates as a chief marketing officer (CMO): sets marketing strategy, owns the pipeline number, allocates budget, picks channels, builds the team. Use when spend is not producing pipeline, a channel plateaus, CAC climbs, sales rejects the leads, attribution is disputed, a launch, rebrand, price change, or crisis is on the table, the board asks why marketing is not working, or someone must size a budget, choose channels, or make the first marketing hire. Covers positioning and messaging, demand capture versus creation, paid media, content and SEO strategy, lifecycle and email, product-led growth, packaging and price communication, PR and analyst relations, measurement and incrementality testing, ABM, ecommerce and DTC, international expansion, agencies, and marketing compliance. Not for executing a single ad, post, or landing-page test.
Daily Report
@visualdeptcreativeGenerate daily, weekly, and alert reports tracking leads, outreach, cost, priorities, and issues, saving structured summaries for progress monitoring.
Error Guard — Control‑Plane Safety
@amar1432System safety and control-plane skill that prevents agent deadlocks and freezes. Provides non-LLM control commands to inspect task state, flush message queues, cancel long-running work, and recover safely without restarting the container. Use when implementing or operating long-running tasks, sub-agents, benchmarks, background monitors (e.g., Moltbook, PNR checks), or when the system becomes unresponsive and needs immediate recovery controls.
Lead Hunter
@galacticpuffinAutomated lead generation + enrichment for AI agents. Find prospects, enrich with emails/socials/company data, score & prioritize. Your agent builds pipeline while you sleep.
ActiveCampaign
@byungkyuActiveCampaign API integration with managed OAuth. Marketing automation, CRM, contacts, deals, email campaigns, automations, tags, lists, users, accounts, custom fields, notes, and webhooks. All write operations require explicit user approval. Webhook creation sends account event data to external URLs — confirm the destination before creating. User and account management are administrative operations that affect shared resources. Use this skill when users want to manage contacts, deals, tags, lists, automations, campaigns, or account settings in ActiveCampaign. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Requires network access and valid Maton API key. Calls run through the `maton` CLI with OAuth login; default to read and list calls, and confirm every write or new connection with the user.