Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

macOS Notification Reader

v1.1.0

Reads recent macOS notifications from the local database and exports them to date-organized markdown files for review and logging.

1· 354·1 current·1 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for gift-is-coding/macos-notification-reader.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "macOS Notification Reader" (gift-is-coding/macos-notification-reader) from ClawHub.
Skill page: https://clawhub.ai/gift-is-coding/macos-notification-reader
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Canonical install target

openclaw skills install gift-is-coding/macos-notification-reader

ClawHub CLI

Package manager switcher

npx clawhub@latest install macos-notification-reader
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name and description match the code and instructions. The scripts only access the macOS notification DB, parse bplist entries, and write markdown outputs; requiring Full Disk Access to read the protected notification DB is appropriate for this purpose.
Instruction Scope
Instructions focus on granting Full Disk Access, running the provided scripts, and scheduling cron jobs. This stays within the stated purpose. Note: granting Full Disk Access to a Python binary gives that binary broad file access on the machine — the instructions correctly require that but users should be aware of this scope. Also, scheduled/background execution (cron/launchd) can behave differently with macOS TCC permissions; the docs mention restarting services but users may need to test automation carefully.
Install Mechanism
No external install hooks or downloads; this is instruction + shipped scripts. No network fetches or archive extraction are performed by an installer. The code is local and readable before execution.
Credentials
The skill does not request environment variables, credentials, or config paths unrelated to its purpose. The only privileged requirement (Full Disk Access) is directly tied to reading the notification DB. The reference suggesting a dscl-based terminal method is marked 'may not work' and is not necessary; avoid running unclear dscl commands without understanding them.
Persistence & Privilege
The skill does not request always:true or other elevated platform privileges. It writes outputs into a user-local workspace (~/.openclaw) and temporary files under /tmp, and cleans temp files; these behaviors are in-scope for an archiver/summary tool.
Assessment
This skill appears internally consistent, but review and test before automating. Key points to consider: - Granting Full Disk Access to a Python binary gives that binary broad read access to your files; only grant to a binary you trust. Consider running the scripts manually first and inspect the output and code. - The scripts copy the notification DB to /tmp and then delete it; check that no sensitive notification content ends up in the output directory (~/.openclaw/workspace/memory/) if you keep those logs. - Cron or other background schedulers may not inherit macOS TCC permissions the same way as an interactive shell; verify that scheduled runs can actually access the DB or use a wrapped/approved binary. - The permission-setup guide includes an advanced dscl example that may be unreliable and could be risky—prefer the GUI Full Disk Access flow. - If you plan to run this regularly, consider creating a dedicated, minimal Python binary or virtualenv for this purpose and add only that binary to Full Disk Access, and periodically audit logs and outputs. If you do not trust the source, do not grant Full Disk Access or schedule it; instead run the scripts in a controlled environment and inspect outputs first.

Like a lobster shell, security has layers — review code before you run it.

automationvk97bsrd532kvk5zcayetvntwbd82bjdjlatestvk97bsrd532kvk5zcayetvntwbd82bjdjmacosvk97bsrd532kvk5zcayetvntwbd82bjdjnotificationsvk97bsrd532kvk5zcayetvntwbd82bjdjproductivityvk97bsrd532kvk5zcayetvntwbd82bjdjwork-summaryvk97bsrd532kvk5zcayetvntwbd82bjdj
354downloads
1stars
2versions
Updated 23h ago
v1.1.0
MIT-0

macOS Notification Reader

Reads the macOS notification center database and exports recent notifications to markdown files. Also supports automated work notification summary with filtering and delivery.

Features

  • 📱 Multi-app support: WeChat, Teams, Outlook, Mail, iMessage, Calendar, Reminders, and more
  • Time filtering: Fetch notifications from the last N minutes or hours
  • 📅 Date-organized output: Exports to memory/YYYY-MM-DD/computer_io/notification/
  • 🤖 Cron scheduling: Designed for automated periodic exports
  • 📊 Work notification summary: Auto-filter work-related notifications (Teams/Outlook) and generate summaries
  • 🔒 Privacy-friendly: Reads from local database only, no cloud upload

Quick Start

1. Grant Full Disk Access (Required)

This skill requires Full Disk Access to read the macOS notification database.

# Verify permission
python3 -c "import os; print('OK' if os.access(os.path.expanduser('~/Library/Group Containers/group.com.apple.usernoted/db2/db'), os.R_OK) else 'FAIL')"

If it returns FAIL, follow these steps:

  1. Open System SettingsPrivacy & SecurityFull Disk Access
  2. Click the 🔒 lock and enter your password
  3. Click +, press Cmd+Shift+G, enter /usr/bin/python3, click Open
  4. Ensure the toggle is ON

Note: If using a virtual environment, add the Python binary from that venv instead.

2. Test the Scripts

# Navigate to the skill directory
cd /path/to/macos-notification-reader

# Basic: Read notifications from the last 35 minutes
python3 scripts/read_notifications.py --minutes 35

# Basic: Read notifications from the last 24 hours
python3 scripts/read_notifications.py --hours 24

# Advanced: Generate work notification summary (every 30 min)
bash scripts/work-summary.sh

3. Set Up Cron Jobs (Recommended)

Option A: Basic Notification Export (every 30 min)

# Edit crontab
crontab -e

# Add this line:
*/30 * * * * /path/to/macos-notification-reader/scripts/export-notification.sh

Option B: Work Notification Summary (every 30 min)

This filters work-related notifications (Teams, Outlook) and generates a summary:

crontab -e

# Add this line:
*/30 * * * * /path/to/macos-notification-reader/scripts/work-summary.sh

Or use OpenClaw's built-in cron:

openclaw cron add --name "Work Notification Summary" --every "30m" --message "Run work-summary.sh"

Scripts

ScriptPurpose
read_notifications.pyCore script - reads raw notifications from database
export-notification.shExports all notifications to markdown
work-summary.shFilters work notifications and generates summary

Work Notification Summary

The work-summary.sh script does:

  1. Filters work apps: Teams, Outlook, WeChat (work-related)
  2. Extracts action items: Identifies pending tasks from message content
  3. Generates summary: Creates a structured markdown report
  4. Saves to: memory/YYYY-MM-DD/computer_io/notification/work-summary-YYYYMMDD-HHMMSS.md

Summary Output Format

# 工作通知摘要
- Lookback: 过去 35 分钟
- 总工作通知: 5 条

## 渠道分布
- Teams: 3
- Outlook: 2

## 待处理事项(自动提取)
- [时间] (app) 消息内容摘要

## 最近工作通知(去重后)
- [时间] (app) 消息内容

Output Directory

By default, exports go to:

~/.openclaw/workspace/memory/YYYY-MM-DD/computer_io/notification/

To customize, edit the scripts and change the OUTPUT_DIR variable.

Supported Apps

The script recognizes these apps by default:

Bundle IDDisplay Name
com.tencent.xinWeChatWeChat
com.microsoft.teams2Teams
com.microsoft.OutlookOutlook
com.apple.mailMail
com.apple.mobilesmsiMessage
com.apple.icalCalendar
com.apple.remindersReminders

To add more apps, edit the simplify_app_name() function in read_notifications.py.

Limitations

  • ⚠️ macOS only: This skill only works on macOS
  • ⚠️ Full Disk Access required: Must be granted manually (see above)
  • ⚠️ Limited retention: macOS automatically deletes notifications after ~3-7 days
  • ⚠️ Notification state: Cannot read notifications that have been dismissed

File Structure

macos-notification-reader/
├── SKILL.md                       # This file
├── _meta.json                     # Skill metadata
├── scripts/
│   ├── read_notifications.py      # Core script (file output)
│   ├── export-notification.sh     # Basic export wrapper
│   └── work-summary.sh            # Work notification summary (NEW)
└── references/
    └── permission-setup.md        # Detailed permission guide

Use Cases

  • 📊 Review missed notifications: See what you missed while away
  • 🔍 Debug notification issues: Check if a specific app sent a notification
  • 📝 Daily logging: Automatically archive notifications
  • 💼 Work summary: Get incremental work notification summaries every 30 min
  • 🤖 Automation: Integrate with other tools via markdown output

Troubleshooting

"Permission denied" error

Grant Full Disk Access. See references/permission-setup.md.

"Cannot find notification database"

  • Ensure macOS 15.0 or later
  • Check: ls -la ~/Library/Group\ Containers/group.com.apple.usernoted/db2/

Notifications are empty

  • macOS may have deleted old notifications
  • Try reducing time window: --minutes 10

Author: OpenClaw Community
Version: 1.1.0
Platform: macOS 15.0+
License: MIT

Comments

Loading comments...