DEV Community

Tyooughtul
Tyooughtul

Posted on • Edited on

I Built a Mac Cleaner That Never Deletes Files Permanently

The Problem with "Cleaners"

Last month, I almost lost a week of work. I was using a popular Mac cleaning tool (you know the one) to free up some disk space, clicked "Clean System Cache," and watched as my entire Docker development environment vanished into thin air.

The tool had used rm -rf. No confirmation. No Trash. Just... gone.

Sure, I should have had backups. But here's the thing: why do cleaning apps treat user files like they're disposable? macOS has a perfectly good Trash system. Why not use it?

Introducing Lume

So I built Lume — a macOS cleanup tool with one simple rule: Move, don't remove.

Every file Lume "deletes" actually gets moved to your Trash first. You can open Trash, verify what was removed, and restore anything you need. If Lume's cleanup fails for any reason, your files stay exactly where they are. We never, ever fall back to rm -rf.

Here's what that looks like in practice:

System Junk Cleanup

Scanning for junk files, selecting targets, and cleaning — all with the safety net of Trash.

Built for Developers

Most Mac cleaners are designed for "general users," which means they miss the caches that actually eat up developers' disk space. Lume recognizes 55+ scan targets, including:

  • IDEs: JetBrains family (IntelliJ, PyCharm, GoLand, etc.), VS Code, Android Studio — auto-discovered
  • Build tools: Gradle, Maven, npm, yarn, pnpm, Cargo, Go modules
  • Containers: Docker, Kubernetes
  • Virtual environments: Conda, virtualenv
  • Browsers: Safari, Chrome, Firefox, Edge, plus dynamic detection of Brave, Arc, Opera
  • Electron apps: Spotify, Discord, Slack, Teams, Zoom, Notion, Postman, and more

And it scans concurrently using NumCPU workers (max 8), so it finishes in seconds, not minutes.

It Looks Good, Too

I spend a lot of time in the terminal. Why shouldn't my tools look nice?

Lume uses Bubble Tea for its TUI and supports 8 color themes out of the box:

Theme Switching

  • modern (default) — Neon cyberpunk vibes
  • retro — Matrix terminal green
  • amber — Vintage CRT warmth
  • ocean — Deep sea blue
  • dracula, solarized, monokai, highcontrast

Press t to cycle through them instantly.

Diagnose Mode for Automation

Sometimes you just want a quick report without the interactive UI — maybe for CI/CD, or a daily cron job:

lume -diagnose
Enter fullscreen mode Exit fullscreen mode

This gives you a terminal report of disk usage and reclaimable space, no interaction required.

Diagnose Mode

How the Safety Mechanism Works

I want to emphasize this because it's the whole reason Lume exists. When you delete something:

Delete request
  ├─ Tier 1: osascript → Finder moves to Trash     ← Native macOS
  ├─ Tier 2: os.Rename → ~/.Trash/                 ← Same filesystem
  ├─ Tier 3: Copy to ~/.Trash/ → remove source     ← Cross filesystem
  └─ All tiers fail? → ERROR. File untouched.
                        ↑
                We NEVER fall back to rm.
Enter fullscreen mode Exit fullscreen mode

Three tiers of safety. And if all three somehow fail, we report an error and leave your file alone. There's no "force delete" button. There's no hidden preference to bypass Trash.

Duplicate Detection That Doesn't Lie

Lume uses a 3-stage SHA-256 pipeline to find actual duplicates (not just files with the same name):

100,000 files
  → Stage 1: Group by size              [instant]         → 5,000
  → Stage 2: Quick hash (16KB samples)  [parallel]        → 200
  → Stage 3: Full SHA-256               [parallel]        → 50 true duplicates
Enter fullscreen mode Exit fullscreen mode

100GB scanned in ~10 seconds on Apple Silicon. Zero false positives.

Get Started

One binary, zero dependencies, no sudo required:

curl -fsSL https://raw.githubusercontent.com/Tyooughtul/lume/main/install.sh | bash

lume              # Interactive TUI
lume -diagnose    # Quick report
Enter fullscreen mode Exit fullscreen mode

Or grab a release from GitHub.

Why Not Just Use CleanMyMac?

Feature Lume CleanMyMac
Price Free, MIT licensed $35+/year
Deletion method Moves to Trash (undoable) rm (permanent)
Scan targets 55+ (developer-focused) ~10-20
Duplicate detection SHA-256, 3-stage Single-pass
Source code Open Closed

The Bottom Line

Disk cleaners shouldn't make you anxious. You shouldn't have to triple-check what you're about to delete, or maintain a manual backup "just in case" the cleaner makes a mistake.

Lume treats your files with respect. If you remove something by accident, it's in Trash. Go get it back.

If Lume saves you from one "oh no" moment, I've done my job.

Star Lume on GitHub →


Have you had a close call with a cleaning tool? Horror stories welcome in the comments.

Top comments (2)

Collapse
 
gesslar profile image
gesslar

Nice one!

Collapse
 
tyooughtul profile image
Tyooughtul

Thanks!😊