PureMac is a free, open-source macOS app manager and system cleaner. It provides complete app uninstallation, orphaned file detection, and system junk cleaning without subscriptions, telemetry, or data collection.
Features
App Uninstaller
- Discovers installed apps from
/Applicationsand~/Applications - Heuristic file discovery engine with 10-level matching (bundle ID, company name, entitlements, team identifier, Spotlight metadata, container discovery)
- 3 sensitivity levels: Strict (safe), Enhanced (balanced), Deep (thorough)
- Shows related files: caches, preferences, containers, logs, support files, launch agents
- System app protection (27 Apple apps excluded)
- Master-detail view: app table on left, discovered files on right
Orphaned File Finder
- Detects leftover files in
~/Libraryfrom uninstalled apps - Compares Library contents against installed app identifiers
- One-click cleanup of orphaned files
System Cleaner
- Smart Scan: one-click scan across all categories
- System Junk: system caches, logs, temporary files
- User Cache: dynamically discovers all app caches (no hardcoded list)
- Mail Attachments: downloaded mail attachments
- Trash Bins: empty all Trash
- Large & Old Files: files >100 MB or older than 1 year
- Purgeable Space: APFS purgeable disk space detection
- Xcode Junk: DerivedData, Archives, simulator caches
- Brew Cache: Homebrew download cache (detects custom HOMEBREW_CACHE)
- Scheduled Cleaning: automatic scans on configurable intervals
Native macOS Experience
- Built with SwiftUI using native macOS components
- NavigationSplitView, Toggle, ProgressView, Form, GroupBox, Table
- Respects system light/dark mode automatically
- No custom gradients, glows, or web-app styling
- First-launch onboarding with Full Disk Access setup
Safety
- Confirmation dialogs before destructive operations
- Symlink attack prevention (resolves and validates paths before deletion)
- System app protection (Apple apps cannot be uninstalled)
- Large & Old Files never auto-selected
- Structured logging via
os.log(visible in Console.app)
Installation
Homebrew (recommended)
brew update
brew install --cask puremacDirect Download
Download the latest .dmg from Releases, open it, and drag PureMac to /Applications.
Signed and notarized with Apple Developer ID - installs without Gatekeeper warnings.
Build from source
brew install xcodegen
git clone https://github.com/momenbasel/PureMac.git
cd PureMac
xcodegen generate
xcodebuild -project PureMac.xcodeproj -scheme PureMac -configuration Release -derivedDataPath build build
open build/Build/Products/Release/PureMac.appArchitecture
PureMac/
Logic/Scanning/ - Heuristic scan engine, locations database, conditions
Logic/Utilities/ - Structured logging
Models/ - Data models, typed errors
Services/ - Scan engine, cleaning engine, scheduler
ViewModels/ - Centralized app state
Views/ - Native SwiftUI views
Apps/ - App uninstaller views
Cleaning/ - Smart scan and category views
Orphans/ - Orphan finder
Settings/ - Native Form-based settings
Components/ - Shared components
Key components:
- AppPathFinder - 10-level heuristic matching engine for discovering app-related files
- Locations - 120+ macOS filesystem search paths
- Conditions - 25 per-app matching rules for edge cases (Xcode, Chrome, VS Code, etc.)
- AppInfoFetcher - Spotlight metadata + Info.plist fallback for app discovery
- Logger - Apple
os.logunified logging
Contributing
Contributions are welcome. See the upstream repository’s CONTRIBUTING guide for details.
Areas where help is especially welcome:
- Size/date filter presets in category views
- XCTest coverage for AppState and scan engine
- Localization (zh-Hans, zh-Hant, and other languages)
- App icon design
Acknowledgments
v2.0 was shaped by community feedback and contributions:
- @nguyenhuy158 - Search and filter feature request (#18) and implementation (#29)
- @edufalcao - Cleaning safety guards and confirmation dialogs