# openclaw-progress-notifier > Time-based progress updates for long-running scripts. Use when you need periodic progress notifications to any OpenClaw channel (Discord/Telegram/Slack/Signal/etc.) from Python or shell workflows. - Author: Grunt - Repository: grunt3714-lgtm/openclaw-progress-notifier - Version: 20260209043230 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-09 - Source: https://github.com/grunt3714-lgtm/openclaw-progress-notifier - Web: https://mule.run/skillshub/@@grunt3714-lgtm/openclaw-progress-notifier~openclaw-progress-notifier:20260209043230 --- --- name: openclaw-progress-notifier description: "Time-based progress updates for long-running scripts. Use when you need periodic progress notifications to any OpenClaw channel (Discord/Telegram/Slack/Signal/etc.) from Python or shell workflows." --- # OpenClaw Progress Notifier Use this skill to add **time-based progress updates** to long-running jobs and send them via `openclaw message send` to any channel. ## Quick usage (Python) Import the helper and call `maybe_send()` each epoch/step (optionally attach a plot). Use `send_now()` for start/end summaries (bypasses interval): ```python from progress_notifier import ProgressNotifier notifier = ProgressNotifier(interval_sec=300) # 5 min notifier.send_now("starting run…") # inside loop notifier.maybe_send(f"epoch {epoch} | loss {loss:.6f}", plot_path="plots/loss.png") notifier.send_now("run complete") ``` Configure delivery via env vars (channel-agnostic): - `OPENCLAW_PROGRESS_CHANNEL` (e.g., `discord`, `telegram`, `slack`) - `OPENCLAW_PROGRESS_TARGET` (e.g., `channel:123`, `user:123`, `+15551234567`) If either is missing, the notifier is a no-op. Optional defaults for “DM me” setups: - `OPENCLAW_DEFAULT_DM_CHANNEL` (used if `OPENCLAW_PROGRESS_CHANNEL` is unset) - `OPENCLAW_DEFAULT_DM_TARGET` (used if `OPENCLAW_PROGRESS_TARGET` is unset) ## CLI usage Send a one-off update: ```bash OPENCLAW_PROGRESS_CHANNEL=discord \ OPENCLAW_PROGRESS_TARGET=channel:123456789 \ python scripts/progress_notifier.py "epoch 5 | loss 0.1234" ``` Send a one-off update with a plot: ```bash OPENCLAW_PROGRESS_CHANNEL=discord \ OPENCLAW_PROGRESS_TARGET=channel:123456789 \ python scripts/progress_notifier.py "epoch 5 | loss 0.1234" --plot plots/loss.png ``` ## Notes - Use **time-based** updates (default 300s). - Plot refreshes default to the same interval as progress updates. - Override plot frequency with `OPENCLAW_PROGRESS_PLOT_INTERVAL_SEC`. - Keep messages short and consistent. - For multi-run workflows, prefix messages with a run label. ## Resources - `scripts/progress_notifier.py` — reusable helper + CLI wrapper