One-command disk cleanup for macOS and Linux — trash, caches, temp files, old kernels, snap revisions, Homebrew, Docker, and Xcode artifacts. Use when user a...
--- name: storage-cleanup description: One-command disk cleanup for macOS and Linux — trash, caches, temp files, old kernels, snap revisions, Homebrew, Docker, and Xcode artifacts. Use when user asks to free storage, clean up disk, reclaim space, reduce disk usage, or encounters low disk / "disk full" warnings. Safe by default with dry-run mode. No dependencies beyond bash and awk. --- # Storage Cleanup Reclaim tens of gigabytes in one command. No config files, no dependencies, no damage. ## Why This Skill Systems accumulate junk silently — IDE caches, old snap revisions, stale pip builds, forgotten trash, outdated kernels. Manually hunting them down wastes time and risks deleting the wrong thing. This skill: - **Scans 12+ cleanup targets** across both macOS and Linux in a single pass - **Safe by default** — `--dry-run` shows exactly what would be cleaned before touching anything - **Zero dependencies** — pure bash + awk, works on any stock macOS or Linux install - **Cross-platform** — auto-detects OS and runs only what applies (no errors on missing tools) - **Selective** — skip any category with `--skip-kernels`, `--skip-docker`, `--skip-brew`, `--skip-snap` - **Reports savings** — shows before/after disk usage and exact bytes freed ## Quick Start ```bash # Preview what would be cleaned (safe, changes nothing) bash scripts/cleanup.sh --dry-run # Clean everything bash scripts/cleanup.sh --yes # Clean but keep Docker and old kernels bash scripts/cleanup.sh --yes --skip-docker --skip-kernels ``` ## What Gets Cleaned ### Both Platforms | Target | Typical Size | Notes | |--------|-------------|-------| | Trash | 1–50 GB | macOS `~/.Trash`, Linux `~/.local/share/Trash` | | Stale `/tmp` | 1–10 GB | pip/npm/rust build dirs older than 60 min | | pip cache | 50–500 MB | `pip cache purge` | | Go build cache | 100 MB–2 GB | `go clean -cache` | | pnpm / yarn / node caches | 50–500 MB | Safe to regenerate | | JetBrains IDE cache | 1–10 GB | IntelliJ, PyCharm, WebStorm, etc. | | Whisper model cache | 1–5 GB | Redownloads on demand | | Chrome / Firefox cache | 200 MB–2 GB | Browsing cache only | | Playwright browsers | 200 MB–1 GB | Redownloads on demand | | Docker dangling images | 0–10 GB | Only unreferenced images + build cache | ### Linux Only | Target | Typical Size | Notes | |--------|-------------|-------| | Apt cache | 200 MB–2 GB | `apt clean` | | Journal logs | 500 MB–4 GB | Vacuumed to 200 MB | | Disabled snap revisions | 500 MB–5 GB | Old versions kept by snapd | | Old kernels | 200–800 MB | Keeps current running kernel | ### macOS Only | Target | Typical Size | Notes | |--------|-------------|-------| | Homebrew old versions | 500 MB–5 GB | `brew cleanup --prune=7` | | Xcode DerivedData | 2–30 GB | Build artifacts, safe to clear | | Xcode Archives | 1–20 GB | Old build archives | | iOS DeviceSupport | 2–15 GB | Old device symbols | | CoreSimulator caches | 500 MB–5 GB | Simulator disk images | | Old user logs | 100 MB–1 GB | Logs older than 30 days | ## Options | Flag | Effect | |------|--------| | `--dry-run` | Preview cleanup without deleting anything | | `--yes` / `-y` | Run without confirmation prompts | | `--skip-kernels` | Don't remove old kernels (Linux) | | `--skip-snap` | Don't remove disabled snap revisions (Linux) | | `--skip-docker` | Don't prune Docker | | `--skip-brew` | Don't clean Homebrew | ## Manual Extras Targets the script doesn't touch (check manually if needed): - **Ollama models**: `ollama list` → `ollama rm <unused>` - **npm global cache**: `npm cache clean --force` - **Conda envs**: `conda env list` → `conda remove -n <env> --all` - **Compressed logs**: `sudo find /var/log -name "*.gz" -delete` - **Flatpak** (Linux): `flatpak uninstall --unused` - **Time Machine snapshots** (macOS): `tmutil listlocalsnapshots /` → `tmutil deletelocalsnapshots <date>`
don't have the plugin yet? install it then click "run inline in claude" again.