Most of what CleanMyMac does is look in known folders and measure them: caches, logs, old downloads, large files, duplicates, and an app's leftovers in ~/Library. An agent can build that as a command-line tool with a dry run in one sitting, and moving files to the Trash instead of deleting keeps mistakes recoverable. What it can't copy is the malware database, the permission handling across macOS versions and years of knowing which folders are safe to clear. Mole and Pearcleaner already cover the free version, so build your own only if you want to control exactly what it touches.
Before you buildMole and Pearcleaner are free and do most of this today. Try them before you ask an agent to write another one.
Build me a Mac cleanup tool to replace CleanMyMac. Requirements: - Python 3.12 command-line tool called `tidy` (typer for commands, rich for tables), installed with `pip install -e .`. Targets macOS 13 or later; it refuses to run on any other system. - Rules live in ./rules/*.yaml, one file per category: caches (~/Library/Caches), logs, Xcode DerivedData, package-manager caches, browser caches and old iOS backups. Each rule has a path glob, a minimum age in days, a safety note and a flag for whether it needs Full Disk Access. - `tidy scan` prints each rule with the size it would free (a parallel `os.scandir` walk) and never deletes. `tidy big --over 500MB --older 180d` lists large, untouched files by size, and `tidy dupes <folder>` groups identical files by size, then a partial hash, then a full SHA-256. - `tidy uninstall <App.app>` finds leftovers in ~/Library (Application Support, Caches, Preferences, Containers, LaunchAgents) from the bundle ID, lists them with sizes, and asks per group. - `tidy clean` is a dry run unless I pass `--yes`; deletions go to the Trash with `send2trash`, nothing is removed with rm, and every run appends what it moved to ./data/log.jsonl so a move can be undone with `tidy undo <run-id>`. - Never touch /System, /Library, other users' folders, ~/Documents, ~/Desktop or anything in ./data/protect.txt; a unit test checks each rule's expanded path against these. - `tidy startup` lists login items and LaunchAgents with their signing status from `codesign -dv`. - No accounts, no telemetry, local-first: no network calls at all. - Out of scope: malware scanning, menu bar monitoring, system maintenance scripts, Photos library cleanup. - README: granting Full Disk Access to the terminal, how the Trash undo works and why the rules skip the folders above.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own CleanMyMac.
Add a weekly report to the cleanup tool in this folder. Requirements: - A launchd agent installed by `tidy report install` runs `tidy scan --json` every Sunday at 10:00 and writes the result to ./data/reports/<date>.json. - A small menu bar item (`rumps`) shows the reclaimable total from the latest report and the change since last week; clicking it opens the report in the terminal. - Nothing is ever deleted by the agent: it only scans and notifies once a week through macOS notifications, and only when the total is over a threshold in tidy.toml. - `tidy report uninstall` removes the agent and its plist. - Update the README with where launchd keeps the plist.
Extend `tidy startup` in this folder. Requirements: - Keep a known-good list in ./data/known.json (bundle ID and team ID). After the first run, mark it all as known, and flag anything new on later runs. - For each item show who signed it (`codesign -dv --verbose=4`), whether it is notarized (`spctl -a -vv`), the path of the plist and when it was first seen. - `tidy startup disable <label>` runs `launchctl bootout` and moves the plist to the Trash, and records it so `tidy undo` can put it back. - Do not claim anything is malware: label the results "unrecognised" or "unsigned" only. - Update the README with the limits of these checks.
Extend `tidy big` in this folder. Requirements: - Accept several roots (including /Volumes/*) and group results by top-level folder with the total size, the oldest and newest access time, and the number of files. - Add file-type groups (video, disk image, archive, virtual machine, node_modules, build output) using extensions in rules/types.yaml. - Cache the scan in ./data/scan.db with Python's `sqlite3` so a second run only re-reads directories whose modified time changed. - Output a treemap as a single local HTML file using plain SVG, with sizes in the tooltips. - Update the README with scan times on a large disk.
People want one button that is safe to press. The rules inside encode what can go on each macOS version, and a polished app that handles permissions, previews and undo takes away the fear of deleting the wrong thing.
Estimate · No running cost: it is a local command-line tool. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Monthly, 1 Mac | $9.99 | — | All cleanup, performance, uninstaller, duplicate-finder and malware-scan features on one Mac. |
| Yearly, 1 Mac | — | $3.33 | Same features, billed once a year. |
| Plus yearly (App Store) | — | $5.50 | Listed at $65.99 a year; the listing doesn't say what Plus adds. |
| 2 and 5 Macs (MacPaw Store) | custom | — | The MacPaw Store also sells plans for 2 and 5 Macs at a lower price per Mac. |
| One-time purchase | custom | — | The App Store lists CleanMyMac X one-time for $89.99. MacPaw's help says a one-time purchase includes updates but not major version upgrades. |
A free trial is offered (7 days in the App Store listing); the pages we read don't spell out the trial's limits.
Yes. An AI coding agent such as Claude Code, Codex or Cursor can build a usable personal version in one session with the prompt on this page, running on your own machine.
About $9.99 a month on the CleanMyMac Monthly, one Mac plan, $119.88 a year (checked 2026-10-20).
Malware scanning against a maintained threat database; A menu bar app with memory and disk monitoring; Cleanup rules that MacPaw updates as macOS and apps change; Duplicate and similar-photo matching for Photos libraries; Support when a cleanup breaks something. If any of those matter to you, keep paying.
Yes: Mole (open source), Pearcleaner (free), Czkawka (open source).