โ† Back to DevOps & Cloud
DevOps & Cloud by @jorgermp

task-monitor

Real-time web dashboard for OpenClaw sessions and background tasks

0
Source Code

Task Monitor v0.1

Real-time monitoring dashboard for OpenClaw with web interface.

Features

  • ๐ŸŒ Web Dashboard - Beautiful, responsive UI accessible from any device
  • ๐Ÿ“ฑ Mobile-First - Optimized for phones and tablets
  • ๐Ÿ”„ Auto-Refresh - Updates every 60 seconds
  • ๐ŸŽจ Modern Design - Gradient UI with dark theme
  • ๐Ÿ“Š Live Data - Main session, Discord, sub-agents, cron jobs
  • ๐Ÿš€ Fast API - JSON endpoint with intelligent caching (30s TTL)
  • โšก Performance - <100ms response time (cached), ~15s cold cache

Installation

cd skills/task-monitor
npm install

Usage

Start Web Server

./scripts/start-server.sh

Server will run on port 3030 (accessible on LAN).

Access URLs:

  • Local: http://localhost:3030
  • LAN: http://<your-ip>:3030

Stop Server

./scripts/stop-server.sh

API Endpoint

curl http://localhost:3030/api/status

Returns JSON with:

  • Main session stats
  • Discord session stats
  • Active sub-agents (with descriptions)
  • Recent cron job history

Generate Markdown (v0.1)

Legacy markdown generator still available:

./scripts/generate-dashboard.js

Updates DASHBOARD.md in workspace root.

Automation

CRON job runs every 5 minutes to update markdown dashboard: */5 * * * * -> Executes generate-dashboard.js

Architecture

  • Backend: Node.js + Express
  • Frontend: Pure HTML/CSS/JS (no frameworks)
  • Data Source: openclaw sessions list --json + openclaw cron list --json
  • Caching: In-memory cache with 30-second TTL
    • Pre-warmed on server startup
    • Async background refresh when expired
    • Stale-while-revalidate pattern for optimal UX
  • Refresh: Client-side polling (60s interval)

Performance

Without cache:

  • API response time: ~15 seconds (blocking)
  • Problem: Each request blocks Node.js event loop

With cache:

  • Cache hit: <100ms (~365x faster)
  • Cache miss: ~15s (first request only)
  • Stale cache: <100ms while refreshing in background
  • Cache TTL: 30 seconds

The caching system ensures:

  • Lightning-fast responses for most requests
  • No blocking of concurrent requests
  • Graceful degradation when cache expires