Install
openclaw skills install focus-break-reminderWorkspace wellness break reminder with configurable work interval, cooldown, idle reset, quiet hours, and per-day caps. Use when users want OpenClaw to remin...
openclaw skills install focus-break-reminderImplement a lightweight per-user/session state machine that triggers rest reminders without spamming.
Create or load references/config.example.json as the default schema.
Required settings:
enabledtimezonework_minutescooldown_minutesidle_reset_minutesdaily_max_remindersquiet_hourssnooze_untiltemplatesPrefer defaults that are practical and non-intrusive:
Maintain minimal state per user (or per DM/chat for first version):
session_start_atlast_active_atlast_remind_atremind_count_todaytoday_keyPersist to a small JSON file so reminders survive restarts.
On each inbound user message:
remind_count_today and today_key.last_active_at >= idle_reset_minutes, reset session_start_at to now.last_active_at to now.Only remind when all conditions pass:
enabled is true.now < snooze_until means skip).now - session_start_at) >= work_minutes.now - last_remind_at) >= cooldown_minutes.If all pass, send one reminder and set:
last_remind_at = nowremind_count_today += 1Use one short template per reminder. Keep copy practical and non-medical.
Example template:
Support these chat commands:
/break on → enable reminders/break off → disable reminders/break status → show current config + next eligible reminder window/break set <minutes> → update work_minutes/break snooze <minutes> → set snooze_until = now + minutesValidate numeric ranges (e.g., 15–180 for work interval).
Use heartbeat polling to run eligibility checks when there is recent activity. Avoid noisy polling loops.
Recommended behavior:
Use references/test-cases.md.
At minimum verify: