177 lines
5.0 KiB
Markdown
177 lines
5.0 KiB
Markdown
---
|
|
allowed-tools: Bash(df:*), Bash(du:*), Bash(npm cache clean:*), Bash(brew cleanup:*), Bash(rm:*), Bash(find:*), Bash(docker system prune:*)
|
|
argument-hint: [--aggressive] | [--maximum]
|
|
description: Clean system caches (npm, Homebrew, Yarn, browsers, Python/ML) to free disk space
|
|
---
|
|
|
|
# System Cache Cleanup
|
|
|
|
Clean temporary files and caches to free disk space: $ARGUMENTS
|
|
|
|
## Current Disk Usage
|
|
|
|
- **Disk space**: !`df -h / | tail -1`
|
|
- **npm cache**: !`du -sh ~/.npm 2>/dev/null || echo "Not found"`
|
|
- **Yarn cache**: !`du -sh ~/Library/Caches/Yarn 2>/dev/null || echo "Not found"`
|
|
- **Homebrew cache**: !`brew cleanup -n 2>/dev/null | head -5 || echo "Homebrew not installed"`
|
|
|
|
## Cleanup Options
|
|
|
|
Based on the arguments provided, execute the appropriate cleanup level:
|
|
|
|
### Option 1: Conservative Cleanup (default)
|
|
|
|
Safe cleanup of package manager caches that can be easily rebuilt:
|
|
|
|
```bash
|
|
# Record starting disk space
|
|
echo "Starting cleanup..."
|
|
df -h / | tail -1 | awk '{print "Before: " $4 " free"}'
|
|
|
|
# Clean npm cache
|
|
echo "Cleaning npm cache..."
|
|
npm cache clean --force
|
|
|
|
# Clean Homebrew
|
|
echo "Cleaning Homebrew..."
|
|
brew cleanup
|
|
|
|
# Clean Yarn cache
|
|
echo "Cleaning Yarn cache..."
|
|
rm -rf ~/Library/Caches/Yarn
|
|
|
|
# Show results
|
|
df -h / | tail -1 | awk '{print "After: " $4 " free"}'
|
|
```
|
|
|
|
### Option 2: Aggressive Cleanup (--aggressive flag)
|
|
|
|
Includes all conservative cleanup plus browser and development tool caches:
|
|
|
|
```bash
|
|
# Run conservative cleanup first (from Option 1)
|
|
npm cache clean --force
|
|
brew cleanup
|
|
rm -rf ~/Library/Caches/Yarn
|
|
|
|
# Clean browser caches
|
|
echo "Cleaning browser caches..."
|
|
rm -rf ~/Library/Caches/Google
|
|
rm -rf ~/Library/Caches/com.operasoftware.Opera
|
|
rm -rf ~/Library/Caches/Firefox
|
|
rm -rf ~/Library/Caches/Mozilla
|
|
rm -rf ~/Library/Caches/zen
|
|
rm -rf ~/Library/Caches/Arc
|
|
|
|
# Clean development tool caches
|
|
echo "Cleaning development caches..."
|
|
rm -rf ~/Library/Caches/JetBrains
|
|
rm -rf ~/Library/Caches/pnpm
|
|
rm -rf ~/.cache/puppeteer
|
|
rm -rf ~/.cache/selenium
|
|
|
|
# Clean Python/ML caches
|
|
echo "Cleaning Python/ML caches..."
|
|
rm -rf ~/.cache/uv
|
|
rm -rf ~/.cache/huggingface
|
|
rm -rf ~/.cache/torch
|
|
rm -rf ~/.cache/whisper
|
|
|
|
# Show results
|
|
df -h / | tail -1 | awk '{print "After aggressive cleanup: " $4 " free"}'
|
|
```
|
|
|
|
### Option 3: Maximum Cleanup (--maximum flag)
|
|
|
|
Includes all aggressive cleanup plus Docker and old node_modules:
|
|
|
|
```bash
|
|
# Run aggressive cleanup first (from Option 2)
|
|
npm cache clean --force
|
|
brew cleanup
|
|
rm -rf ~/Library/Caches/Yarn
|
|
rm -rf ~/Library/Caches/{Google,com.operasoftware.Opera,Firefox,Mozilla,zen,Arc,JetBrains,pnpm}
|
|
rm -rf ~/.cache/{puppeteer,selenium,uv,huggingface,torch,whisper}
|
|
|
|
# Clean Docker (if installed)
|
|
echo "Cleaning Docker..."
|
|
docker system prune -af --volumes 2>/dev/null || echo "Docker not running or not installed"
|
|
|
|
# List node_modules directories for manual review
|
|
echo "Finding node_modules directories..."
|
|
echo "Note: Not auto-deleting. Review and delete manually if needed."
|
|
find ~ -name "node_modules" -type d -prune 2>/dev/null | head -20
|
|
|
|
# Show results
|
|
df -h / | tail -1 | awk '{print "After maximum cleanup: " $4 " free"}'
|
|
```
|
|
|
|
## Execution Steps
|
|
|
|
1. **Determine Cleanup Level**
|
|
- No arguments or empty: Run Conservative Cleanup (Option 1)
|
|
- `--aggressive`: Run Aggressive Cleanup (Option 2)
|
|
- `--maximum`: Run Maximum Cleanup (Option 3)
|
|
|
|
2. **Safety Checks**
|
|
- Verify sufficient permissions
|
|
- Ensure critical applications are closed (browsers for Option 2+)
|
|
- Warn about Docker containers being removed (Option 3)
|
|
|
|
3. **Execute Cleanup**
|
|
- Run appropriate commands based on the selected option
|
|
- Show progress for each cleanup step
|
|
- Handle errors gracefully (missing directories, permissions)
|
|
|
|
4. **Report Results**
|
|
- Display disk space before and after
|
|
- Show amount of space recovered
|
|
- List what was cleaned
|
|
- Provide recommendations if more space is needed
|
|
|
|
## Important Notes
|
|
|
|
**Conservative Cleanup** (default):
|
|
- ✅ Always safe to run
|
|
- ✅ Caches rebuild automatically when needed
|
|
- ✅ No application impact
|
|
|
|
**Aggressive Cleanup** (--aggressive):
|
|
- ⚠️ Close browsers before running
|
|
- ⚠️ Browser caches will rebuild on next use
|
|
- ⚠️ ML models will re-download if needed
|
|
|
|
**Maximum Cleanup** (--maximum):
|
|
- ⚠️ Stops and removes all Docker containers/images
|
|
- ⚠️ Only deletes node_modules after manual review
|
|
- ⚠️ Most impactful but recovers the most space
|
|
|
|
## Recovery
|
|
|
|
All cleaned caches are temporary and will rebuild automatically:
|
|
|
|
- **npm/Yarn**: Rebuilds on next `npm install`
|
|
- **Homebrew**: Downloaded on next `brew install`
|
|
- **Browsers**: Rebuilds on next browsing session
|
|
- **Python/ML**: Re-downloads models on next use
|
|
- **Docker**: Pull images again with `docker pull`
|
|
|
|
## Example Usage
|
|
|
|
```bash
|
|
# Conservative cleanup (default)
|
|
/cleanup-cache
|
|
|
|
# Aggressive cleanup
|
|
/cleanup-cache --aggressive
|
|
|
|
# Maximum cleanup
|
|
/cleanup-cache --maximum
|
|
```
|
|
|
|
After cleanup, verify the results and inform the user of:
|
|
1. Space freed
|
|
2. Current free space
|
|
3. What was cleaned
|
|
4. Whether additional cleanup is recommended
|