Focus Break Reminder
by @lxj0276
Workspace wellness break reminder with configurable work interval, cooldown, idle reset, quiet hours, and per-day caps. Use when users want OpenClaw to remin...
clawhub install focus-break-reminder๐ About This Skill
name: focus-break-reminder description: Workspace wellness break reminder with configurable work interval, cooldown, idle reset, quiet hours, and per-day caps. Use when users want OpenClaw to remind them to take regular breaks during long sessions, including setup of heartbeat checks, reminder templates, and on/off/snooze/status controls.
Focus Break Reminder
Implement a lightweight per-user/session state machine that triggers rest reminders without spamming.
Configure
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:
Track state
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.
Update activity
On each inbound user message:
1. If date changed in configured timezone, reset remind_count_today and today_key.
2. If idle time since last_active_at >= idle_reset_minutes, reset session_start_at to now.
3. Set last_active_at to now.
Evaluate reminder eligibility
Only remind when all conditions pass:
1. enabled is true.
2. Not in quiet hours.
3. Not snoozed (now < snooze_until means skip).
4. Daily cap not exceeded.
5. Active duration (now - session_start_at) >= work_minutes.
6. Cooldown passed (now - last_remind_at) >= cooldown_minutes.
If all pass, send one reminder and set:
last_remind_at = nowremind_count_today += 1Reminder delivery
Use one short template per reminder. Keep copy practical and non-medical.
Example template:
Commands
Support these chat commands:
/break on โ enable reminders/break off โ disable reminders/break status โ show current config + next eligible reminder window/break set โ update work_minutes/break snooze โ set snooze_until = now + minutesValidate numeric ranges (e.g., 15โ180 for work interval).
Heartbeat integration
Use heartbeat polling to run eligibility checks when there is recent activity. Avoid noisy polling loops.
Recommended behavior:
Safety and UX boundaries
Testing checklist
Use references/test-cases.md.
At minimum verify: