Repository navigation
First tagged release. 0.2.0 was published to crates.io without a tag.
⚠️ Breaking change: cleanups go to the trash by default
clean, apply and the TUI now move targets into Dev Cleaner's trash instead of deleting them. Space is freed when you run dev-cleaner trash purge / trash gc; dev-cleaner undo restores a batch. Pass --permanent to delete directly (--trash still works and is now the default).
CLI
- New
--yes/-y(skip the confirmation only) andclean --include-in-use(allow in-use targets only);--forcekeeps its meaning. - Scan roots are made absolute, so
undofrom another directory restores to the right place andkeep_pathsmatch relative scans. scanprints its results when piped (progress goes to stderr) and lists each profile root; JSON only with--json.- The TUI no longer deletes permanently on Enter: it moves to the trash and writes audit records.
- Audit records hold each item's real result; read-only
trash list/showandgc --dry-runno longer write audit records.
Detection
- No descent into hidden directories or
node_moduleswhen looking for projects, so tool caches and dependency internals are no longer reported (home scan in testing: 79 → 12 candidates, 13.7 s → 2.9 s). - Folders containing git-tracked files are never cleanup targets.
- Sizes are allocated disk blocks; hard links count only when every link is inside the target.
- More in-use lock files:
uv.lock,bun.lock(b),pdm.lock,npm-shrinkwrap.json,Package.resolved,mix.lock,packages.lock.json.
Trash
- Items on another volume are trashed on that volume (
<mount>/.dev-cleaner-trash) instead of being copied to the system disk. - Restored items leave the trash log, so they no longer count toward trash size.
macOS app (build from source with script/build_and_run_mac.sh)
- Confirmation before every cleanup, permanent delete and Empty Trash; dry run, trash and permanent delete are reported separately.
- Real data on every page, working settings, automatic trash gc by retention days, bulk selection, matched rules, per-run history details.
Project
dev-cleaner-coreis now published as its own crate.- CI runs fmt, clippy and tests on Ubuntu and macOS, plus the macOS app tests.
- Minimum Rust version: 1.85.