plugins/utilities/skills/mac-cleanup/SKILL.md
Safely free up Mac storage by finding and cleaning storage hogs — Docker (images, containers, build cache, volumes), Xcode (simulators, DerivedData, DeviceSupport), app caches, Homebrew cache, unused app data, and logs. Interactive — always asks before deleting. Use when user says "cleanup", "free space", "disk full", "storage", "uvolni misto", "maz disk", "malo mista", "kolik mam mista", or when disk space is running low.
npx skillsauth add petrogurcak/skills mac-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.
Safely free Mac storage through interactive investigation and cleanup. Never delete without explicit user confirmation.
This skill treats disk cleanup as an investigation, not a script. Every Mac has different apps, projects, and workflows — blindly running cleanup commands is dangerous. Instead: find the hogs, present them, ask what's safe to remove, then clean.
Run these in parallel to build the full picture:
# Overall disk state
df -h /
# Top storage consumers in home directory
du -sh ~/Library/Caches ~/Library/Logs ~/Library/Developer \
~/Library/Application\ Support ~/.Trash ~/Downloads \
~/.docker ~/Library/Containers 2>/dev/null | sort -rh
# Projects folder
du -sh ~/Projects 2>/dev/null
Then drill into the biggest ones (run in parallel):
Docker (often 30-60GB):
# Container data
du -sh ~/Library/Containers/com.docker.docker/ 2>/dev/null
# Images by size
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}\t{{.CreatedSince}}" | sort -k3 -rh | head -30
# All containers with status
docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Size}}" | head -30
# Disk usage summary
docker system df
Xcode / iOS (often 20-40GB):
du -sh ~/Library/Developer/CoreSimulator/Devices/ \
~/Library/Developer/CoreSimulator/Caches/ \
~/Library/Developer/Xcode/DerivedData/ \
~/Library/Developer/Xcode/Archives/ \
~/Library/Developer/Xcode/iOS\ DeviceSupport/ 2>/dev/null | sort -rh
Application Support (often 10-30GB):
du -sh ~/Library/Application\ Support/*/ 2>/dev/null | sort -rh | head -15
Caches (often 5-20GB):
du -sh ~/Library/Caches/*/ 2>/dev/null | sort -rh | head -15
Present findings as a summary table, grouped by category. For each item show:
Example format:
| Co | Velikost | Poznamka |
|---|---|---|
| Docker build cache | 22 GB | Safe — rebuilds on next docker build |
| iOS Simulators | 23 GB | Safe — Xcode recreates on demand |
| MacWhisper models | 6 GB | Depends — re-download needed |
Classify each item:
Ask the user about unclear items:
Only after user confirms each category. Run cleanup commands for confirmed items.
Docker cleanup commands:
# Remove specific stopped containers
docker rm <container_names>
# Remove specific old/duplicate images
docker rmi <image:tag>
# Prune build cache (if confirmed)
docker builder prune -f
# Prune unused volumes (if confirmed)
docker volume prune -f
# Nuclear option (only if user explicitly asks):
# docker system prune -a --volumes -f
Xcode cleanup commands:
# Delete all simulators (recreated on next Xcode build)
xcrun simctl delete unavailable
xcrun simctl delete all
# DerivedData (rebuild on next project open)
rm -rf ~/Library/Developer/Xcode/DerivedData/
# Old iOS DeviceSupport (old iOS version symbols)
rm -rf ~/Library/Developer/Xcode/iOS\ DeviceSupport/
Other cleanup commands:
# Homebrew cache
brew cleanup --prune=all
# Specific app data (only after user confirms they don't use it)
rm -rf ~/Library/Application\ Support/<app_name>/
# Specific caches (safe but may slow initial page loads)
rm -rf ~/Library/Caches/<app_name>/
After cleanup, show before/after comparison:
df -h /
Report: "Pred: X GB volnych. Ted: Y GB volnych. Uvolneno ~Z GB."
List what was cleaned with sizes.
docker system prune -a unless user explicitly requests it — it kills everything including potentially needed images.~/Projects/ or active project directories..env files, credentials, or SSH keys.These are typical storage hogs on a developer Mac, ordered by usual size:
| Category | Typical Size | Safety | | ------------------------------------------ | ------------ | -------------------------------------- | | Docker (images + build cache) | 20-60 GB | Safe to prune old/unused | | iOS Simulators | 10-30 GB | Safe — recreated on demand | | Xcode DerivedData | 3-10 GB | Safe — rebuilt on next build | | Xcode iOS DeviceSupport | 3-8 GB | Safe — old iOS version symbols | | Homebrew cache | 1-5 GB | Safe — packages already installed | | npm/pip/CocoaPods cache | 1-5 GB | Safe — re-downloaded on install | | Xcode Archives | 1-10 GB | Ask — old app builds, may want to keep | | Application data (Whisper models, AI apps) | varies | Ask — depends on usage | | ~/.Trash | varies | Safe — already "deleted" | | ~/Downloads | varies | Ask — user files |
development
Builds a pre-launch social proof strategy through structured beta programs using D'Souza Brain Audit interviews. Use when launching new products/services and need compelling testimonials, planning a beta cohort, designing interview questions to harvest objection-busting social proof, improving video testimonials for landing pages, or designing case studies with metrics. Trigger phrases include "beta tester program for testimonials", "pre-launch social proof", "Brain Audit testimonial framework", "case study harvest", "reverse testimonial", "video testimonial mechanics", "social proof landing page", "sběr referencí", "beta tester program", "testimonial pro landing page", "social proof před launchem", "rozhovor s klientem", "case study sběr", "reference před spuštěním". NOT for ongoing case study production (use growth-hacking case-study approach), offer design (use offer-creation), or conversion optimization (use ux-optimization).
development
Use when planning a product launch and the product type is unclear or could be either generic (SaaS/app/physical) or info-product. Routes between marketing:launch-strategy (generic launches) and marketing:info-product-launch (courses, memberships, ebooks, cohorts, communities). Trigger phrases - "launch", "spuštění", "go-to-market", "product launch", "release strategy", "uvedení na trh", "launch plan", "spuštění produktu", "launch sequence", "launch strategy". Do NOT trigger when product type is already clear (use specific skill directly).
testing
Specialized 8-week launch cadence for info-products — online courses, cohort programs, memberships, communities, ebooks, masterminds. Combines Jeff Walker's Product Launch Formula (Seed/Internal/JV variants, PLC sequence, open-cart day-by-day) with Stu McLaren's membership mechanics (closed cart, Success Path) and Hormozi Grand Slam Offer stacking. Use when planning "launch online kurzu", "info-product launch", "PLF launch", "course launch", "membership launch", "cohort launch", "ebook launch", "open cart close cart", "8-week launch of online course", "beta cohort to launch sequence", "spuštění kurzu", "launch členské sekce", "open cart strategie". Differentiates from marketing:launch-strategy (generic SaaS/app launches) — info-product-specific. NOT for SaaS launches, physical products, or services.
development
Use when releasing an Expo/React Native mobile app to App Store and Google Play - covers eas submit, ASC "Submit for Review", Play promote Internal→Production, OTA update, and decoding common silent failures (Apple agreement expiry, missing English locale, Background Location declaration, web bundle failure on react-native-maps).