Latest Release • Open Source • Safe by Default

Control, not magic.

The open-source system auditor for macOS. No black boxes. No silent deletions. No compiled binaries.
Just Bash.

$
curl -fsSL https://github.com/Yvancg/mc-leaner/releases/latest/download/mc-leaner.sh -o mc-leaner.sh && bash mc-leaner.sh

No Deletions

Files are backed up, never deleted. Revert anytime.

Inspection First

Dry-run by default. See exactly what will happen.

Boring Bash

Auditable source code. No hidden binaries.

Maintenance should be boring.

Most "Mac Cleaner" tools are dangerous. They hide what they do behind shiny buttons and "Rocket" animations. They act too quickly, deleting caches and files that might be critical, often without a way back.

McLeaner is for people who don't trust cleaners. We believe you shouldn't have to trust a black box with your filesystem.

  • Inspection-first, always
  • Explicit user confirmation for every change
  • Everything explainable
  • Everything reversible

The Anti-Magic Manifesto

What we DON'T do

No silent deletions. No app uninstallation. No background agents. No "optimization" voodoo.

What we DO

Identify startup items, orphans, large caches, leftovers, and permission boundaries. Then ask you what to do.

Complete System Visibility

Designed to identify what is running, lingering, or consuming space.

Startup & Login Items

Inspect LaunchAgents and Daemons. See exactly how many seconds they add to boot time. Disable nothing without consent.

Orphaned Plists

Find launchd configuration files that refer to binaries that no longer exist on your system.

Leftover Data

Find config files and caches from apps you deleted months ago. We don't uninstall apps; we bury the dead.

Backup Management

Nothing is deleted. Everything is moved to a timestamped backup folder. Restore with a single command.

Apple Silicon Hygiene

Find Intel-only (x86_64) binaries running on Rosetta that are draining battery on your Apple Silicon Mac.

Audit-Ready Logs

Generate versioned JSON outputs to track system drift. Perfect for diffing state over time.

Safety Model

How we ensure you never break your system.

Dry-run by default

Running bash mc-leaner.sh changes nothing. It only inspects and reports. You must explicitly add --apply to move any files.

Non-destructive Backup

We do not use rm -rf. Files are moved to a timestamped safe folder. If something breaks, simply restore using --restore-backup or move them back manually.

Hard Protection Rules

Critical system paths and Enterprise Security tools (EDR, MDM) are hard-coded to be skipped. We don't touch what we shouldn't.

Quick Start

Install from the latest release. No installation wizards.

user@macbook:~
~ curl -fsSL https://github.com/Yvancg/mc-leaner/releases/latest/download/mc-leaner.sh -o mc-leaner.sh
Downloading latest release script...
done.
~ chmod +x mc-leaner.sh
~ bash mc-leaner.sh --explain
[INFO] Starting safe inspection (dry-run mode)...
----------------------------------------
[SCAN] Checking LaunchAgents...
[FLAG] Found orphan plist: com.bad.app.plist
[SCAN] Checking Cache > 500MB...
[FLAG] Large cache: ~/Library/Caches/com.spotify.client (1.2 GB)
[SCAN] Checking Architecture...
[FLAG] Found Intel-only binary: /Applications/OldApp.app (Running via Rosetta)
----------------------------------------
SUMMARY:
Items flagged: 3
Actions taken: 0 (Dry-run active)

To apply changes, run with --apply
~

Understand why

bash mc-leaner.sh --explain

Every flag comes with a reason. We don't just say 'Clean this.' We tell you 'This plist points to a binary that doesn't exist.'

Surgical Precision

bash mc-leaner.sh --mode startup-only

Don't need a full audit? Check just your startups or disk usage in milliseconds.

Frequently Asked Questions

Practical answers before you run your first audit.

Your terminal is waiting.

Stop guessing what's running on your machine. Start auditing.

Get Latest Release