Skip to content

mythkiven/MacBroom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿงน MacBroom

Open-source macOS cleaner โ€” free up disk space safely
ๅผ€ๆบ macOS ๆธ…็†ๅทฅๅ…ท โ€” ๅฎ‰ๅ…จใ€ๅฏ่ง†ๅŒ–ๅœฐ้‡Šๆ”พ็ฃ็›˜็ฉบ้—ด

An open-source CleanMyMac alternative: scan reclaimable space โ†’ group it by app โ†’ tick and clean. Deletions go to the Trash by default and can be restored. Local-only, zero-dependency, no telemetry.

ไธ€ไธช ๅผ€ๆบ็š„ CleanMyMac ๆ›ฟไปฃๅ“๏ผšๆ‰ซๆๅฏ้‡Šๆ”พ็ฉบ้—ด โ†’ ๆŒ‰่ฝฏไปถๅˆ†็ป„ โ†’ ๅ‹พ้€‰ไธ€้”ฎๆธ…็†ใ€‚้ป˜่ฎค็งปๅ…ฅๅบŸ็บธ็ฏ“ใ€ๅฏ่ฟ˜ๅŽŸ๏ผ›็บฏๆœฌๅœฐใ€้›ถไพ่ต–ใ€ไธ่”็ฝ‘ใ€‚ๅฎŒๆ•ดไธญๆ–‡ๆ–‡ๆกฃ่ง README.zh.mdใ€‚

็ฎ€ไฝ“ไธญๆ–‡ ยท English

CI License: MIT Python 3.9+ Platform: macOS PRs Welcome

MacBroom main window


โœจ Features

  • Local only ยท zero dependencies: pure Python 3 standard library, no network calls, no telemetry.
  • Safety first: files go to the macOS Trash (not rm), restorable from Trash; system-critical paths (/System, Keychains, SSH keys, โ€ฆ) are hard-blocked.
  • Risk grading: every item is tagged safe / moderate / risky. Risky items (personal data, irreversible actions) are hidden by default until you tick "Show risky items".
  • Explainable leftovers: each suspected uninstall leftover shows why it was flagged (bundle id with no matching app) and can be expanded to inspect the actual files before you decide.
  • Confirm before delete (dry-run): the dialog lists every selected item with its path and reason, total count and reclaimable size; large totals (>10 GB) or risky selections get an extra warning.
  • Sort & drill-down: sort results by size or name, expand any group or item to see what is inside.
  • Audit log + in-app viewer: every scan and deletion is written to ~/Library/Logs/MacBroom/macbroom.log (override with MACBROOM_LOG_DIR), and you can review recent activity right inside the app (Settings โ†’ View activity log).
  • Grouped by app: caches and the like are grouped per app; your selection is preserved across rescans.
  • Customizable: toggle each scan category on/off; a persistent exclusion list for false positives; long scans are cancelable.
  • iCloud-aware: detects iCloud-synced folders to avoid breaking cross-device sync.
  • Respects CACHEDIR.TAG: standard cache markers are recognized so the right directories are treated as cache.
  • Covers popular apps: beyond browser/dev caches, also Slack, Discord, VS Code, Microsoft Teams, Spotify, Steam, Telegram, Minecraft.
  • Login items check: finds orphaned launch-at-login items pointing to deleted programs (the "background items" macOS warns about). User-level entries move to the Trash; system-level ones come with a sudo command for you to run yourself (never auto-elevated).
  • CLI / scripting friendly: macbroom scan --json prints a report right in the terminal for automation and CI.
  • macbroom doctor: pre-flight checks for Python, Full Disk Access, log directory, and port availability before you scan.
  • No forced deletion: items that can't be removed are listed with a copy-paste Terminal command for you to run.
  • Clean web UI: collapsible groups, group-level select-all, live reclaimable-space totals.

๐Ÿ” What it detects

Category Description
๐Ÿงน App Caches Rebuildable caches grouped by app (incl. npm/pip/Gradle/CocoaPods/Homebrew dev caches and Chrome/Edge/Brave/Arc/Firefox browser caches)
๐Ÿ‘ป App Leftovers Support files, containers, logs and preferences likely left by uninstalled apps (heuristic; review first)
๐Ÿ˜ Large Files Single files larger than 100 MB โ€” find space-hungry videos / images / archives
๐Ÿ› ๏ธ Dev Clutter Build products, caches, simulators and SDK temp dirs for iOS/Xcode, Android/Android Studio, HarmonyOS/DevEco Studio
๐Ÿงฌ Duplicate Files Byte-for-byte identical files (size โ†’ partial hash โ†’ full SHA-256), keeping the newest copy per group
๐Ÿš€ Login / Startup Items Launch-at-login LaunchAgents / LaunchDaemons, focusing on orphaned entries pointing to deleted programs
โœจ Other Cleanup Diagnostic reports, iOS device backups, Homebrew leftovers, Docker images, Time Machine local snapshots, scattered node_modules, mail attachment caches, old downloads

๐Ÿ“Š How MacBroom compares

A focused comparison on what MacBroom is built for: safe, open-source, scriptable everyday cleanup.

MacBroom CleanMyMac Pearcleaner Mole
Price Free $39.95/yr Free Free
Open source โœ… MIT โŒ โœ… Fair-code โœ… MIT
Runtime deps โœ… Python 3 stdlib ยท zero deps Closed Native Native
Interface Local web UI + CLI Native app Native app Command line
CLI / scriptable (--json) โœ… โŒ โŒ โœ…
Trash by default โœ… โœ… โœ… โž–
Risk grading + risky hidden โœ… โž– โž– โŒ
Dry-run per-item confirm โœ… โž– โœ… โž–
Audit log โœ… โŒ โž– โŒ
In-app activity log viewer โœ… โž– โŒ โŒ
iCloud-sync aware โœ… โž– โŒ โŒ
Persistent exclusion list โœ… โž– โœ… โŒ
App cache cleanup โœ… โœ… โž– โœ…
Uninstall leftovers (explainable) โœ… exact bundle-id โœ… โœ… focused โœ…
Large / duplicate files โœ… / โœ… โœ… / โœ… โŒ โŒ
Dev clutter (Xcode/iOS/Android/HarmonyOS) โœ… incl. HarmonyOS โž– Xcode โŒ โž–
Login / orphaned startup items โœ… โœ… โŒ โž–

โœ… yes ยท โž– partial/limited ยท โŒ no. MacBroom is for people who want an open-source, zero-dependency cleaner that is safe by default and can be scripted into CI.

๐Ÿ’ก Why MacBroom? โ€” built from real cleaner failures

We collected a large amount of user feedback on pain points with rival cleaners and designed MacBroom to not repeat their most painful, real, reported accidents:

Real-world failure reported in other cleaners How MacBroom avoids it by design
A cleaner deleted a user's entire Chrome profile โ€” logins and bookmarks gone We only target precise Default/Cache & Code Cache dirs โ€” never the profile directory
Apple Notes / Claude Code CLI deleted as "leftovers" (matched by name, not identity) Leftover detection matches bundle id exactly; each flagged item shows why, with an expandable file list to review before deleting
Shell history wiped (~/.zsh_history) as "junk" We never scan or touch shell history
Cleanup broke iCloud sync (Desktop/Documents) We detect iCloud-synced paths, mark them risky and hide them by default
Uninstall misidentified unrelated files (~/Public, printer configs, another app's data) Bundle-id matching + risk grading + a persistent exclusion list to permanently skip false positives
Wrong / negative free-space numbers (sparse images counted by logical size) Real on-disk usage via st_blocks, so sparse VM/disk images are not over-counted
Untranslated or mistranslated UI Native-quality English and Chinese from day one, not machine-translated strings
Simulator cleanup throwing errors iOS/Xcode simulators are cleaned through the official xcrun simctl interface, not by blindly deleting paths
Long scans froze the app with no way to stop Every scan is cancelable mid-run
Orphaned login items left erroring in System Settings after uninstalls Dedicated Login Items scanner flags startup entries pointing to deleted programs

In short: other cleaners delete first and apologize later. MacBroom is designed to be un-dangerous โ€” Trash-by-default, risky items hidden, dry-run confirmation that lists exactly what goes, and an audit log of everything it does.

๐Ÿ›ก๏ธ Security

See SECURITY.md for the full security model and how to report vulnerabilities. In short: local-only, Trash-by-default, protected-path hard blocks, risk grading, audit log, loopback-only with Host validation + per-session CSRF token on the delete endpoint.

๐Ÿ–ฅ๏ธ Compatibility

  • Python 3.9+ (standard library only).
  • macOS 12 (Monterey) through 15 (Sequoia) / 26 (Tahoe). On older systems, any missing path or command (e.g. simctl runtime, tmutil thinlocalsnapshots) is skipped automatically without affecting other categories.

๐Ÿค Contributing

See CONTRIBUTING.md. MacBroom needs no third-party packages; run tests with:

MACBROOM_LOG_DIR=/tmp/macbroom-test python -m unittest discover -s tests -v

๐Ÿ“„ License

MIT

About

๐Ÿงน Open-source macOS cleaner โ€” free up disk space safely. Caches, app leftovers, large & duplicate files, dev junk. Local-only, Trash-by-default. A CleanMyMac alternative.

Topics

Resources

Stars

8 stars

Watchers

4 watching

Forks

Packages

 
 
 

Contributors