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