opencron

Visual cron job dashboard for OpenClaw — live countdown timers, run history, calendar view

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "opencron" with this command: npx skills add firstfloris/opencron-skill-repo

OpenCron

A visual dashboard for your OpenClaw cron jobs. See job statuses at a glance, track run history with outputs, and view scheduled runs on a calendar.

Features

  • Works with your existing OpenClaw cron jobs — zero config
  • Live countdown timers to next run
  • Auto-refreshes every 30 seconds
  • Expandable job cards with schedule, duration, delivery status, and full prompt
  • Run history tab with output summaries, model, token usage
  • Calendar view showing past runs (ok/error) and upcoming scheduled runs
  • Braille unicode progress animation on next-run banner
  • Antimetal-inspired dark gradient UI with neon accents
  • Secure: gateway token auth, no credentials exposed client-side
  • Responsive layout, prefers-reduced-motion support

Quick Start

1. Deploy the dashboard

python3 skills/opencron/update_canvas.py

This fetches cron-dashboard.html from github.com/firstfloris/opencron and writes live cron-data.json.

2. Start the background sync

nohup sh skills/opencron/watch_sync.sh &

Keeps cron-data.json in sync with jobs.json every 30 seconds.

3. Open the dashboard

The dashboard is served via the nginx proxy on port ${CANVAS_PORT:-8090} — NOT the gateway port.

Get the server's public IP (not the container's internal IP):

HOST_IP=$(curl -s ifconfig.me)

Dashboard URL:

http://${HOST_IP}:${CANVAS_PORT:-8090}/cron.html?token=${OPENCLAW_GATEWAY_TOKEN}

Important: Never use hostname -I — that returns the container's internal IP which is unreachable from outside.

Scripts

ScriptWhat it doesExample
update_canvas.pyOne-shot deploy: fetches HTML from GitHub + writes JSON to canvaspython3 skills/opencron/update_canvas.py
watch_sync.shBackground sync loop (30s interval)nohup sh skills/opencron/watch_sync.sh &
generate.pyGenerate standalone HTML with embedded datapython3 skills/opencron/generate.py -o dashboard.html
serve.pyRun a local HTTP server for the dashboardpython3 skills/opencron/serve.py --port 8787

Serving Externally (Optional)

To access the dashboard from outside Docker, add an nginx reverse proxy. See nginx-canvas.conf.template for a production-ready config with:

  • Token validation via query parameter
  • Rate limiting (10 req/s per IP)
  • GET/HEAD only
  • Path allowlisting
  • Security headers (CSP, X-Frame-Options, no-referrer)
  • Run log JSONL serving from /runs/

Docker Compose snippet

canvas-proxy:
  image: nginx:alpine
  restart: unless-stopped
  environment:
    OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
  volumes:
    - ./nginx-canvas.conf.template:/etc/nginx/templates/default.conf.template:ro
    - ./cron/runs:/openclaw-data/cron/runs:ro
  ports:
    - "127.0.0.1:${CANVAS_PORT:-8090}:80"
  depends_on:
    openclaw-gateway:
      condition: service_healthy

Data Sources

  • Job definitions & state: /home/node/.openclaw/cron/jobs.json (read by gateway as cron-data.json)
  • Run history: /home/node/.openclaw/cron/runs/<job-id>.jsonl (NDJSON, one entry per run)

After Every Cron Job Run

When a cron job finishes executing, always show the user the OpenCron dashboard link. Get the public IP via:

HOST_IP=$(curl -s ifconfig.me)

Then show:

See cron status on OpenCron: http://${HOST_IP}:${CANVAS_PORT:-8090}/cron.html?token=${OPENCLAW_GATEWAY_TOKEN}

Rules:

  • Use port ${CANVAS_PORT:-8090} (nginx proxy) — never the gateway port (18789)
  • Use curl -s ifconfig.me for the IP — never hostname -I (that's the container's internal IP)
  • Resolve all variables to actual values — never show placeholders to the user
  • This should be the last line of output after every cron job execution

Demo

Open demo.html in any browser for a fully working demo with mock data — no server required.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Huo15 Openclaw Enhance

火一五·克劳德·龙虾增强插件 v5.7.8 — 全面适配 openclaw 2026.4.24:peerDep ^4.24 + build/compat 同步到 4.24 + 14 处 api.on 全部去掉 as any 改成 typed hook(hookName 联合类型 + handler 自动推断 Pl...

Registry SourceRecently Updated
General

Content Trend Analyzer

Aggregates and analyzes content trends across platforms to identify hot topics, user intent, content gaps, and generates data-driven article outlines.

Registry SourceRecently Updated
General

Prompt Debugger

Debug prompts that produce unexpected AI outputs — diagnose failure modes, identify ambiguity and conflicting instructions, test variations, compare model re...

Registry SourceRecently Updated
General

Indie Maker News

独行者 Daily - 变现雷达。读对一条新闻,少走一年弯路。每天5分钟,给创业者装上商业雷达。聚焦一人公司、副业、创业变现资讯,智能分类,行动导向。用户下载即能用,无需本地部署!

Registry SourceRecently Updated