A native macOS cleaner covering CCleaner for Mac's feature set: Clean Clutter (incl. Large Files), Browser Cleaner, Find Duplicates, Analyze Photos, Uninstall Apps, Manage Startup Items, scheduled browser cleaning and Trash emptying, bookmark import, System Monitor and Statistics.
Swift + SwiftUI, Swift Package Manager, macOS 14+. Builds with the Command Line Tools (no Xcode).
scripts/build-app.sh # release build -> build/ccleander.app (ad-hoc signed)
open build/ccleander.appSafe ways to try it without touching your data:
# Simulate every clean (nothing is removed)
open build/ccleander.app --args --dry-run
# Point the whole app at a fixture tree instead of your home folder
# (use the `=` form: a space-separated value as the last argument can leave the app with no window)
open build/ccleander.app --args --sandbox-root=/path/to/fixture --dry-run
# Open on a given screen, e.g. --module=clutter (any Module raw value)
open build/ccleander.app --args --sandbox-root=/path/to/fixture --dry-run --module=browser
# Render every screen (light + dark) to PNGs of the app's own window, then quit.
# Needs a sandbox or dry run; no Screen Recording permission required.
build/ccleander.app/Contents/MacOS/ccleander --sandbox-root=/path/to/fixture --dry-run --snapshot-dir=/tmp/shotsswift run ccleander-verify # all checks
swift run ccleander-verify clutter # one module
swift run ccleander-verify --keep # keep fixture trees for inspectionEach check builds a throwaway tree under $TMPDIR/ccleander-verify/ that mirrors the macOS layout
(home/Library/Caches, Applications, …), runs the module against it in dry-run and real modes,
and asserts on the result. Nothing outside the fixture is modified. (The Command Line Tools ship
neither XCTest nor swift-testing, hence the executable harness.)
Sources/CleanerCore/Core—SystemPaths(injectable locations),SafeDeleter(the only removal path: dry run / Trash / delete, allowed-roots guard, exclusions), settings, history, permissions.Sources/CleanerCore/Modules/<Module>— scanning and cleaning logic per feature.Sources/ccleander— SwiftUI app (sidebar | detail, Settings window).Sources/ccleander-verify— verification harness.
ccleander is not sandboxed: App Sandbox forbids reaching other apps' caches and containers, which a cleaner has to do, so it is distributed outside the Mac App Store. Grant Full Disk Access in System Settings › Privacy & Security to scan Safari data, other apps' containers and the Trash. macOS asks separately for Automation (Finder / System Events) and Photos when those features are used.
See TASKS.md for the feature checklist, what macOS does not allow, and why.