Skip to content

Latest commit

 

History

History
161 lines (127 loc) · 7.16 KB

File metadata and controls

161 lines (127 loc) · 7.16 KB

PureMac

PureMac

Free, open-source macOS app manager and system cleaner.
Uninstall apps completely. Find orphaned files. Clean system junk.
No subscriptions. No telemetry. No data collection.

Latest Release Build Status macOS 13.0+ Swift 5.9 MIT License Stars Downloads

Install - Features - Screenshots - Contributing


Install

Homebrew (recommended)

brew tap momenbasel/tap
brew install --cask puremac

Direct 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.app

Features

App Uninstaller

  • Discovers all installed apps from /Applications and ~/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 all related files: caches, preferences, containers, logs, support files, launch agents
  • System app protection - 27 Apple apps are excluded from the uninstall list
  • Master-detail view: app table on left, discovered files on right

Orphaned File Finder

  • Detects leftover files in ~/Library from apps that have been uninstalled
  • Compares Library contents against all installed app identifiers
  • One-click cleanup of orphaned files

System Cleaner

  • Smart Scan - one-click scan across all categories
  • System Junk - system caches, logs, and temporary files
  • User Cache - dynamically discovers all app caches (no hardcoded app list)
  • Mail Attachments - downloaded mail attachments
  • Trash Bins - empty all Trash
  • Large & Old Files - files over 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 all destructive operations
  • Symlink attack prevention - resolves and validates paths before deletion
  • System app protection - Apple apps cannot be uninstalled
  • Large & Old Files are never auto-selected
  • Structured logging via os.log (visible in Console.app)

Screenshots

Onboarding App Uninstaller
Onboarding App Uninstaller
System Junk Xcode Junk
System Junk Xcode Junk
User Cache
User Cache

Architecture

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.log unified logging

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

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:

License

MIT License. See LICENSE for details.