Disk Cleaner - AI-Assisted Disk Space Management
You have access to diskclean.sh, a disk scanning and cleaning tool. Install it by copying diskclean.sh to a location on your PATH, or run it directly from this skill's directory.
Setup
# Make executable (if not already)
chmod +x diskclean.sh
# Optional: symlink to PATH
ln -sf "$(pwd)/diskclean.sh" /usr/local/bin/diskclean
Commands
# Full scan:returns JSON with all reclaimable items
./diskclean.sh scan
# Preview safe-tier auto-deletions (dry run, default)
./diskclean.sh clean --dry
# Execute safe-tier deletions
./diskclean.sh clean --confirm
# Show last scan results
./diskclean.sh report
# Show scan history over time
./diskclean.sh history
How to Use This Skill
When the user asks to scan or clean disk space:
- Run a scan first: Always start with
diskclean.sh scan - Summarize findings conversationally: Group items by category, show top offenders by size, report total reclaimable space
- Explain the tiers clearly:
- Safe tier (auto-deletable): Items matching a strict whitelist AND older than the age gate (7-14 days). These are regenerable artifacts like
node_modules,__pycache__, build caches, package manager caches. - Suggest tier (needs approval): Everything else:Docker, downloads, venvs, trash. Present these as recommendations and ask the user what they want to do.
- Safe tier (auto-deletable): Items matching a strict whitelist AND older than the age gate (7-14 days). These are regenerable artifacts like
- For safe-tier cleanup: Run
diskclean.sh clean --dryfirst to show what would be deleted, thendiskclean.sh clean --confirmonly after user approves - For suggest-tier items: Present them individually or grouped by category. If the user approves specific items, delete them manually with
rm -rf(after confirming the path is under $HOME)
Presentation Format
When presenting scan results, use this structure:
## Disk Scan Results
**Total reclaimable: X.X GB**
- Safe tier (auto-cleanable): X.X GB
- Needs your review: X.X GB
### Safe to Auto-Clean
| Category | Size | Age | Path |
|----------|------|-----|------|
| ... | ... | ... | ... |
### Needs Your Review
| Category | Size | Age | Path |
|----------|------|-----|------|
| ... | ... | ... | ... |
Safety Rules
- Never delete anything outside $HOME
- Never delete .git directories
- Never delete source code, documents, photos, or config files
- Never run
clean --confirmwithout showing the userclean --dryoutput first - Never delete suggest-tier items without explicit user approval per item or category
- Always verify a path exists before attempting deletion
How It Works
Tiered Safety Model
Safe tier = whitelisted category + age gate met. Auto-deletable with --confirm.
Suggest tier = everything else. Requires explicit user approval.
Categories Scanned
| Category | What | Safe Tier | Age Gate |
|---|---|---|---|
| node_modules | Node.js dependencies (with package.json sibling) | Yes | 7 days |
| python_cache | __pycache__, .pytest_cache | Yes | 7 days |
| python_venv | .venv/, venv/ | No | : |
| build_output | build/, dist/, .next/, target/ | Yes | 7 days |
| go_cache | Go module + build cache | Yes | 14 days |
| homebrew_cache | Homebrew download cache | Yes | 14 days |
| npm_yarn_pnpm_cache | npm/yarn/pnpm caches | Yes | 14 days |
| pip_cache | pip download cache | Yes | 14 days |
| xcode_derived | Xcode DerivedData | Yes | 7 days |
| docker | Docker images, volumes, build cache | No | : |
| large_download | Files >100MB in Downloads | No | : |
| installer_archive | .dmg/.pkg/.zip/.iso in Downloads | No | : |
| logs | macOS logs (>50MB) | Yes | 30 days |
| crash_reports | Diagnostic reports (>10MB) | Yes | 30 days |
| ds_store | .DS_Store files | Yes | 0 days |
| trash | ~/.Trash contents | No | : |
Guardrails
- Only scans under
$HOME(plus/tmpuser files) node_modulesonly deleted if apackage.jsonexists alongside (proof it's regenerable)- Dry-run is the default:must pass
--confirmto actually delete - Every deletion is logged to
~/.openclaw/diskclean/deletion-log.jsonl - All scan reports stored in
~/.openclaw/diskclean/scans/
Data Storage
- Scan reports:
~/.openclaw/diskclean/scans/scan-YYYYMMDD-HHMMSS.json - Latest scan:
~/.openclaw/diskclean/latest-scan.json - Deletion log:
~/.openclaw/diskclean/deletion-log.jsonl