AI-powered cross-platform disk storage analyzer. Scans system/user/dev space usage, generates interactive HTML report with 3-tier cleanup tiers (立即清/确认后清/保留)...
Memory
StorageSaver
Try itWatch and explain Mac disk usage. Use when the user asks about Mac storage/disk space ("what's eating my disk?", "disk full", "free up space"), wants a visua...
What it does
Watch and explain Mac disk usage. Use when the user asks about Mac storage/disk space ("what's eating my disk?", "disk full", "free up space"), wants a visual map of what's on the disk, or wants scheduled storage watching with alerts. Read-only by design: it recommends copy-paste commands, it never deletes anything itself.
The skill document
StorageSaver watcher
StorageSaver is a read-only Mac disk scanner that produces an interactive HTML map (sunburst + tree) with plain-English explanations and safety badges (safe / review / never-touch), plus this watcher script for scheduled checks.
Install / one-off scan
npx storagesaver # scan → storagesaver.html in cwd → opens in browser
npx storagesaver --quick # home-folder-only fast pass
For a scheduled setup, clone or install the package once so watcher.js
and the CLI are on disk:
npm install -g storagesaver
# watcher lives at /skill/watcher.js
Answering "what's eating my disk?"
- Run
npx storagesaver scan --no-open --out /tmp/storagesaver.html(45–90s for a full disk walk). - Open or attach the HTML. The severity summary and top easy wins are in the map; green ⧉ buttons carry copy-paste reclaim commands.
- Never run the reclaim commands yourself unless the user explicitly asks; present them for the user to run.
Scheduled watching (weekly cron)
The watcher gathers, classifies, and only speaks when it matters:
- Severity tiers (% used on the data volume):
<70%silent,70–84%heads-up,85–94%getting tight,>=95%urgent. - Debounce: same severity bucket within 6 days of the last alert →
stays quiet (no weekly nagging about the same state).
--forceoverrides.
Plain cron example:
0 10 * * 1 NOTIFY_CMD='mail -s "Mac storage" you@example.com' node /path/to/skill/watcher.js
OpenClaw agent example — schedule it as a command cron so the agent delivers the result rather than re-planning the work:
openclaw cron add --name storage-watch --schedule "0 10 * * 1" \
--command "node /path/to/StorageSaver/skill/watcher.js" \
--deliver
Notification channel
NOTIFY_CMD is any shell command: the alert message is piped to stdin
and the freshly generated storagesaver.html path is passed as $1.
Attach that HTML to whatever channel you notify on (email attachment,
chat upload, etc.) — the one-line alert says what to do first; the map is
where the user digs. Without NOTIFY_CMD the message goes to stdout.
State, logs, and JSON reports live under ~/.config/storagesaver/.
Verify-before-flagging-apps playbook
Never tell the user an app is "unused" from file timestamps alone. Background utilities (window managers, launchers, clipboard managers) rarely rewrite their prefs while running 24/7. Before flagging any app:
- Is it running right now? Match by executable path, not name:
pgrep -f "/Applications/.app/Contents/MacOS" - Is it a login item? The user explicitly wants those auto-started:
osascript -e 'tell application "System Events" to get the name of every login item' - Last-used signals, best first: Spotlight's
mdls -name kMDItemLastUsedDate -raw .appbeats prefs-plist mtime when present (it records actual opens); fall back to~/Library/Preferences/.plistmtime, the app's~/Library/Containers/mtime, and Saved Application State. Take the MOST RECENT signal — the generous estimate. - Helper-style apps launched by other tools (diff viewers via
git difftool, etc.) leave almost no signals — always phrase these as "confirm before deleting", never as certain.
The watcher already implements all of this; the playbook is for when you investigate manually or the user questions a finding.
Safety rules the recommendations follow
- Docker's
Docker.rawis a grow-only sparse VM disk:docker system prunewill NOT shrink it — purge via Docker Desktop. - With Messages in iCloud ON, lowering "Keep messages" deletes history from iCloud on ALL devices — only the render cache is safe to clear.
~/Library/CloudStorageis live cloud data: a localrmthere is a cloud delete. Reclaim Google Drive space by reconnecting in Stream mode, never by deleting files.- Photos libraries are managed by Photos.app — never touch in Finder.
- Users can add their own rules in
~/.config/storagesaver/rules.json(see the project README).
Related skills
Mac 磁盘空间盘点与清理建议技能。当用户说「硬盘不够用」「空间不足」「磁盘快满了」「帮我清理 Mac」「扫描大文件」「哪些可以删」时触发。 自动扫描系统、用户目录、开发项目中的空间占用,生成三级清理建议(立即清 / 确认后清 / 保留),提供可直接复制执行的命令。 绝不自动删除任何文件,只出报告和命令,执行前必...
Intelligent disk space analysis and cleanup tool with safety grading, duplicate detection, and Chinese app cache recognition.
Create a privacy-first digital life inventory and cleanup plan from user-supplied information only. This skill does not scan devices, cloud accounts, passwor...
Private local app, project, and billable reports
Use the Health Data AI Analyzer Mac app read-only localhost API on macOS to generate a concise Apple Health daily brief and 3 practical suggestions. Only run...