![](https://private-user-images.githubusercontent.com/6263626/283968256-e6829883-894e-49a1-bc75-2c4550593b98.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2NjQxODQsIm5iZiI6MTcyNDY2Mzg4NCwicGF0aCI6Ii82MjYzNjI2LzI4Mzk2ODI1Ni1lNjgyOTg4My04OTRlLTQ5YTEtYmM3NS0yYzQ1NTA1OTNiOTgucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjZUMDkxODA0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTVmNmRjYTllYmY1N2IzOTM3NjRmOWIyZmE3YjVlMjg3YTJkY2RiMWE3MDZjNTUxNTliZGNhNTk5NDEzOTY4YSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.tJPUCemCtZWcsJtfYRxH0FCpHTxKxx_g4Npv-5BdOHU)
Status: Maintained
Version: 2.2
Download
·
Commits
An open-source mac app cleaner inspired by Freemacsoft's AppCleaner and Sun Knudsen's Privacy Guides post on his app-cleaner script. This project was born out of wanting to learn more. There's probably parts of the code that could be done better as I'm fairly new to Swift, if you have suggestions I'm open to hearing them!
- 100% Swift/SwiftUI
- Super small app size (~2MB)
- Quick file search
- Optional Sentinel monitor helper that can be enabled to watch Trash folder for deleted apps
- Sentinel monitor is extremely small (210KB) and uses ~2mb of ram to run in the background and file watch. Communicates to app via custom url scheme instead of xpc to keep things even lighter
- Mini mode which can be enabled from Settings
- Can drop apps to uninstall directly on the Pearcleaner Dock icon itself or the drop target in the app window
- Will differentiate between regular apps and Safari web-apps with a "web" label next to each item in the list
- Will differentiate between regular apps and wrapped iOS apps with an "iOS" label next to each item in the list
- Has clean uninstall menu option for the Pearcleaner app itself if you want to stop using it and get rid of all files and launch items
- Requires Full Disk permission to search for files and also Accessibility to delete/restore files
- Built-in auto-updater that pulls latest release notes and binaries from GitHub Releases (Might not work well if app is not in /Applications folder because of permissions)
![](https://private-user-images.githubusercontent.com/6263626/286016909-db6aae06-be0d-42af-bcab-cdb8e5bda42a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2NjQxODQsIm5iZiI6MTcyNDY2Mzg4NCwicGF0aCI6Ii82MjYzNjI2LzI4NjAxNjkwOS1kYjZhYWUwNi1iZTBkLTQyYWYtYmNhYi1jZGI4ZTViZGE0MmEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjZUMDkxODA0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZGQ5NWQxMmEwODk0MDE4OTM0MGYxMzBiYWZjZmFhMmVjZGQ3YzNlZTllY2U0ZmI5YTIwYzZjMzg1YzQwMjgzOCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.HxKJfRrXExryIesdfeB0GFORPXQEvXSMGOfYEPR9Grw)
![](https://private-user-images.githubusercontent.com/6263626/286016905-70066a2a-fb33-40e5-b328-8fc2253e25ff.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2NjQxODQsIm5iZiI6MTcyNDY2Mzg4NCwicGF0aCI6Ii82MjYzNjI2LzI4NjAxNjkwNS03MDA2NmEyYS1mYjMzLTQwZTUtYjMyOC04ZmMyMjUzZTI1ZmYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjZUMDkxODA0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjFhNzgyNGY1NGEwZTVhNTY1YTJhOTg5ZGU4MzFhZDZjNmQ5ZWE5Zjc4NzI0ZGMwYmIxZDljZWU4NGE4NmY0MSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.KmHyzJLsSfFkff5RATFXRgAUFDAGnzkQ5NL9-7nxYKU)
![](https://private-user-images.githubusercontent.com/6263626/286016914-a9cec1e2-1a13-42aa-a3e5-3cb8c448dd3e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2NjQxODQsIm5iZiI6MTcyNDY2Mzg4NCwicGF0aCI6Ii82MjYzNjI2LzI4NjAxNjkxNC1hOWNlYzFlMi0xYTEzLTQyYWEtYTNlNS0zY2I4YzQ0OGRkM2UucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjZUMDkxODA0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NWFmODA4OTkzODc3Y2JlYjYxZTdlMmIzMGVmNTBlMTIzY2YwZDhkMTkwOWZlNWY3Nzk0ZGRjYjc2YmFiMzQyZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.CMdZPx6NBrQFrr-kzUCyb4owDY0NPBAbOYRFMuY5OdM)
![](https://private-user-images.githubusercontent.com/6263626/286016911-5249d735-f87b-41c7-83da-b84a21ac9552.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2NjQxODQsIm5iZiI6MTcyNDY2Mzg4NCwicGF0aCI6Ii82MjYzNjI2LzI4NjAxNjkxMS01MjQ5ZDczNS1mODdiLTQxYzctODNkYS1iODRhMjFhYzk1NTIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjZUMDkxODA0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YWU1ZmZlNzc0NzYzMjY5NWNiMzU2NTMzMmMzZGYyYzQwOTE5ZGQ3OGY2OWNjYWNjNmUzNzkwOGI2YzJkMzUzZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.qnRlTmULSb0T6ZClGKYqDAm9c6ixtfnnhMeE_opyOCE)
![](https://private-user-images.githubusercontent.com/6263626/286018545-62f72204-5f13-49a8-8956-cd56ef52acdf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2NjQxODQsIm5iZiI6MTcyNDY2Mzg4NCwicGF0aCI6Ii82MjYzNjI2LzI4NjAxODU0NS02MmY3MjIwNC01ZjEzLTQ5YTgtODk1Ni1jZDU2ZWY1MmFjZGYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjZUMDkxODA0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjEwMTU5MmM5YzIzZjllMmY5MjYxNTVkNzc1ZDJiZjBmYWVmMzk0NmY0MjAxOWM2YTFiYTIzMTM1OGRjNGYwYiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.2G6Pi3ULKFJhhWrdgYaUJ97W0QSkU7qlrPOhb0QNW6s)
![](https://private-user-images.githubusercontent.com/6263626/286018555-9cf8e848-1efe-4475-8f4b-cd89a51ec10e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2NjQxODQsIm5iZiI6MTcyNDY2Mzg4NCwicGF0aCI6Ii82MjYzNjI2LzI4NjAxODU1NS05Y2Y4ZTg0OC0xZWZlLTQ0NzUtOGY0Yi1jZDg5YTUxZWMxMGUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjZUMDkxODA0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzdiMmJhMTRmN2U0ODRiNGNjMjIzNjMyNDk3ODRmMmYwOTU4M2ViMDQ5NDhiNmI3YzYzNTNkMWIwZTkxMmRiNiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.IILky9V3weAgyqZkF1Cm8avsEZnu3PgsZ3EI2EmbWNk)
![](https://private-user-images.githubusercontent.com/6263626/286018549-238dfeb7-2841-4ada-bbbf-35cdda46fde1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2NjQxODQsIm5iZiI6MTcyNDY2Mzg4NCwicGF0aCI6Ii82MjYzNjI2LzI4NjAxODU0OS0yMzhkZmViNy0yODQxLTRhZGEtYmJiZi0zNWNkZGE0NmZkZTEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjZUMDkxODA0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NTkwZDBjMDU1NGQ1N2U5MGI0MTE3MDE5M2M3YWY4NGI0YWNjODg4MWY3MWJjOGFmY2E3MmIwN2MwM2FkZDkwMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.RmLv7dQnU_E6kB9Q2zPGEd7K8K8y4tEpQ7pOMbvguqk)
![](https://private-user-images.githubusercontent.com/6263626/286018559-b593564b-8c7e-42a2-a25b-124a0efb6a24.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2NjQxODQsIm5iZiI6MTcyNDY2Mzg4NCwicGF0aCI6Ii82MjYzNjI2LzI4NjAxODU1OS1iNTkzNTY0Yi04YzdlLTQyYTItYTI1Yi0xMjRhMGVmYjZhMjQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjZUMDkxODA0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NTVmNDg3YjY3ZjBlZDAyNTJjZjIzZjA2YTk2NDY1MTk2MmRlZDlkYjI3ZTkzOWFmNDMxMGFkMjgyZWQ1ZGY0NSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.HRrtM1huk05aEuu3s5h8wjpj8kk2v9IypaNXA-Xl5O0)
- MacOS 13.0+
- Using some newer SwiftUI code which requires 13.0+
- Releases
Pre-compiled, always up-to-date versions are available from my releases page. You might need to open this with right click-open since I don't have a paid developer account.
- Homebrew
Since I don't have a paid developer account, I can't submit to the main Homebrew cask repo. You can still add the app via Homebrew by tapping my repo:
brew tap alienator88/homebrew-cask
brew install --cask pearcleaner
Much appreciation to Freemacsoft's AppCleaner and Sun Knudsen's app-cleaner script