mac-disk-cleanup/SKILL.md
Free disk space on macOS by cleaning dev caches (npm, pip, uv, Homebrew), removing stale node_modules from old projects, and optionally removing LM Studio or Ollama models after confirmation. Use this skill whenever the user mentions disk space, storage full, Mac running out of space, cleaning up node_modules, LM Studio models, Ollama models, or wants to free space on their Mac — even if they don't say "cleanup" explicitly.
npx skillsauth add gitstua/stu-skills mac-disk-cleanupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Two-part workflow: safe cache cleanup, then stale node_modules removal.
Run scripts/clean_caches.sh. This clears:
~/.npm)~/Library/Caches/pip)~/.cache/uv)Report MB freed per tool.
These models are large files that can't be re-downloaded automatically — always confirm before deleting.
List installed models with sizes:
find ~/.lmstudio/models -name "*.gguf" -o -name "*.safetensors" 2>/dev/null \
| xargs du -sh 2>/dev/null | sort -rh
Show the list to the user and ask which models to remove. Delete by removing the model's parent folder (e.g. ~/.lmstudio/models/publisher/model-name/) so stale metadata doesn't linger.
List installed models:
ollama list 2>/dev/null
For each model the user wants to remove:
ollama rm <model-name>
This is the correct removal method — do not delete ~/.ollama/models/blobs/ directly, as Ollama manages content-addressed storage there and manual deletion can corrupt the store.
Always show a summary of what will be deleted and its total size, then ask: "OK to delete these models?" before proceeding. Never delete models without an explicit yes.
Run scripts/find_node_modules.sh (optionally pass a root dir, defaults to $HOME).
Output is tab-separated: size_mb last_modified_date path
Use the parent directory's last-modified date to judge staleness:
| Age | Action |
|-----|--------|
| Last modified > 6 months ago | Safe to remove — offer to clean automatically |
| Last modified 1–6 months ago | Ask the user before removing |
| Last modified < 1 month ago | Leave alone (skip) |
| Path contains /Downloads/ | Always remove — these are stale copies |
| Path contains /old/ or /archive/ | Always remove |
| Path is the current working directory | Always skip |
These are already excluded by the script, but double-check you never delete from:
~/.nvm/ — node version manager (removing breaks node)~/.vscode/extensions/ — VS Code manages these~/.copilot/, ~/.cache/opencode/ — tool-managed~/.lmstudio/ outside of models/ — app config, not models~/.ollama/models/blobs/ — use ollama rm instead of direct deletionFor the stale candidates, show the user the list with sizes before deleting. Then:
rm -rf "/path/to/node_modules"
Report total MB freed. Remind the user that npm install restores any removed node_modules.
After cleanup, run:
df -h / | awk 'NR==2 {print "Free: "$4" / "$2" ("$5" used)"}'
Report the before/after free space.
~/Library/Application Support/ — app data, not cache.venv/, venv/) — don't delete these without askingtesting
Get the current public/outbound IP address of this machine using a reliable shell workflow with multiple fallback endpoints. Use when users ask for outbound IP, public IP, WAN IP, egress IP, or need IP checks before firewall/network allowlisting.
tools
Send push notifications via ntfy.sh with a lightweight shell workflow. Use when posting alerts, job status updates, reminders, or automation results to an ntfy topic using token auth or public topics.
development
Read, parse, and summarize iCalendar (.ics) files from Google Calendar, Apple Calendar, and similar providers. Use when extracting upcoming events, filtering by date range, converting ICS events to JSON/text, or debugging calendar fields like DTSTART/DTEND/TZID/RRULE.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.