Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Unified notification hub collecting all skill alerts and delivering by priority
Unified notification hub collecting all skill alerts and delivering by priority
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Notification Integration โ Collects all skill notifications centrally and delivers by priority to reduce notification fatigue.
Centrally manage diverse notifications from all skills and deliver at appropriate timing and channels based on importance.
Collect all event files from events/ directory: events/ โโโ health-2026-02-14.json (health-monitor) โโโ scrape-result-2026-02-14.json (data-scraper) โโโ dm-check-2026-02-14.json (insta-post) โโโ competitor-2026-02-14.json (competitor-watch) โโโ workflow-2026-02-14.json (skill-composer)
Conditions: Security issues (abnormal login, suspicious access) System errors (OpenClaw down, browser disconnected) Cost exceeded (API usage 90%+) Critical mentions Delivery: Discord DM (channel ID configured in TOOLS.md) Send immediately (within 1 min) Example: ๐จ Urgent: Browser disconnected Port 18800 not responding. Auto-recovery attempted but failed. Manual check needed: openclaw browser start
Conditions: New Instagram DMs (unread) Trending keyword surge detected Competitor launches new service Git push needed (10+ unpushed commits) Delivery: Include in next heartbeat response (~30 min intervals) Bundle multiple notifications in single message Example: ๐ข 3 Updates ๐ฉ 2 Instagram DMs (iam.dawn.kim, partner_xyz) ๐ Trend: "AI agent" surging (+150%) ๐ Git: 12 commits waiting for push
Conditions: Regular statistics updates Daily token usage Completed workflows General system logs Delivery: Include when daily-report skill executes Send summary once daily Example: ๐ Daily Report (2026-02-14) โ 3 workflows completed ๐ Tokens: 45,230 / 100,000 (45%) ๐ Memory: 3.2 GB ๐ง Health check: OK
Never send notification more than once for same event.
{ "event_id": "health-check-2026-02-14-07:00", "fingerprint": "sha256(source + type + key_data)", "notified_at": "2026-02-14T07:05:00+09:00" }
memory/notifications/ โโโ sent-2026-02-14.json โโโ sent-2026-02-13.json โโโ ... sent-YYYY-MM-DD.json structure: { "date": "2026-02-14", "notifications": [ { "id": "health-check-2026-02-14-07:00", "priority": "info", "sent_at": "2026-02-14T07:05:00+09:00", "channel": "discord_dm", "source": "health-monitor" } ] }
Channel ID: Configure in TOOLS.md Purpose: urgent, important notifications Format: Markdown (emoji + title + content)
Purpose: Bundle important notifications Format: Concise bullet list
Purpose: info notification summary Format: Structured section organization
Activate skill with these keywords: "notification settings" "notification" "check notifications" "anything new"
"Anything new?" โ Immediately summarize important+ notifications
"Set Instagram DMs to immediate notification" โ Promote dm-check events to urgent
"Show today's notification history" โ Read memory/notifications/sent-2026-02-14.json
// Scan events/ directory const events = fs.readdirSync('events/') .filter(f => f.endsWith('.json')) .map(f => JSON.parse(fs.readFileSync(`events/${f}`)));
const urgent = events.filter(e => e.priority === 'urgent'); const important = events.filter(e => e.priority === 'important'); const info = events.filter(e => e.priority === 'info');
const sent = loadSentHistory(today); const newEvents = events.filter(e => !sent.notifications.some(n => n.id === e.id) );
// urgent โ Immediate Discord DM if (urgent.length > 0) { await sendDiscordDM(urgent); } // important โ Add to heartbeat queue if (important.length > 0) { await addToHeartbeatQueue(important); } // info โ Add to daily-report queue if (info.length > 0) { await addToDailyReportQueue(info); }
saveSentHistory(today, newlySentNotifications);
Guide each skill to include priority field when creating events: { "timestamp": "2026-02-14T07:58:00+09:00", "skill": "health-monitor", "priority": "urgent", // urgent | important | info "message": "Browser disconnected", "data": { ... } } ๐ง Built by ๋ฌดํญ์ด โ Mupengism ecosystem skill
Messaging, meetings, inboxes, CRM, and teammate communication surfaces.
Largest current source with strong distribution and engagement signals.