Skip to main content
OpenClaw is an open-source AI messaging gateway that connects to WhatsApp, Telegram, Discord, Slack, iMessage, and other messaging channels. It routes conversations to your AI agents and includes a plugin system for extending functionality.

Install OpenClaw

npm install -g openclaw@latest

# Run the interactive setup wizard
openclaw onboard --install-daemon
See the OpenClaw getting started guide for details.

OpenAlerts

AI agents fail silently — LLM errors, stuck sessions, gateway outages — nobody knows until a user complains. OpenAlerts is a standalone monitoring daemon that connects to your OpenClaw gateway in real-time, fires alerts when something goes wrong, and serves a live dashboard. No code changes to OpenClaw needed — runs as a separate process alongside it.

Install

npm install -g @steadwing/openalerts
Requires Node.js 22.5.0 or later — uses the built-in node:sqlite module, so there are no native builds or binaries to compile.

Quick Start

# 1. Create default config (auto-detects your OpenClaw gateway token)
openalerts init

# 2. Edit config to add your alert channel
#    ~/.openalerts/config.json

# 3. Start monitoring
openalerts start
Dashboard opens at http://127.0.0.1:4242 — the gateway overlay dismisses automatically once connected. The gateway token is auto-detected from gateway.auth.token in ~/.openclaw/openclaw.json — no manual copy needed.

Channels

Configure at least one channel in ~/.openalerts/config.json. Falls back to console if none are set.
{
  "channels": [
    { "type": "telegram", "token": "BOT_TOKEN", "chatId": "CHAT_ID" },
    { "type": "webhook", "webhookUrl": "https://your-endpoint" },
    { "type": "console" }
  ]
}

Alert Rules

10 rules run against every event in real-time. All thresholds and cooldowns are configurable.
RuleTriggers whenDefault thresholdDefault cooldown
infra-errorsInfrastructure errors in 1 min window115 min
llm-errorsLLM/agent errors in 1 min window115 min
tool-errorsTool execution failures in 1 min window115 min
heartbeat-failConsecutive heartbeat failures330 min
session-stuckSession idle too long120s30 min
high-error-rateError rate of last 20 calls50%30 min
queue-depthItems piling up in delivery queue1015 min
gateway-downNo heartbeat from watchdog30s60 min
cost-hourly-spikeLLM cost per hour$530 min
cost-daily-budgetLLM cost per day$206 h
To tune rules:
{
  "rules": {
    "llm-errors": { "threshold": 5 },
    "gateway-down": { "enabled": false },
    "heartbeat-fail": { "cooldownMinutes": 60 }
  }
}
Set "quiet": true at the top level for log-only mode (no alerts sent).

Dashboard

A real-time web dashboard is served at http://127.0.0.1:4242 after running openalerts start:
TabWhat it shows
OverviewGateway health log, live activity feed, 24h stats, recent alerts
WorkspacesPer-agent SOUL.md, HEARTBEAT.md, MEMORY.md previews
AlertsFull alert history with severity, rule ID, fingerprint
SessionsActive sessions with status, token counts, cost
Live MonitorReal-time per-run timeline — steps, tool calls, LLM responses
Cron JobsScheduled job status, last/next run, consecutive errors
DiagnosticsRaw engine event log
Delivery QueuePending/failed alert delivery items

CLI

CommandDescription
openalerts initCreate default config at ~/.openalerts/config.json
openalerts startStart the monitoring daemon
openalerts statusPrint live engine state (daemon must be running)
openalerts testFire a test alert through all configured channels
openalerts start accepts --port N (default 4242) and --config PATH (default ~/.openalerts/config.json). Need additional help? Please reach out to us at hello@steadwing.com