CleanMyDev vs Devpurge: which dev-focused Mac cleaner fits your stack?

CleanMyDev vs Devpurge compared on price, scope, safety, and which developer caches each cleaner actually scans. Two indie dev tools, two takes on the same disk pain.

8 min read · Published · Updated · Saad Belfqih

"My MacBook said low disk. System Data was 220 GB. After Devpurge I was at 176 GB." That receipt comes from a developer in the Devpurge launch thread on Hacker News, which spent a day on the front page and put indie dev-cleaners on the map. The thread also surfaced a more interesting question that the launch itself could not answer in the comments: how does Devpurge compare to other dev-focused cleaners, and which one actually fits your stack? This post is the side-by-side, written by the team behind one of them.

TL;DR
CleanMyDev vs Devpurge is a fight between two indie Mac cleaners that both target developers, both reject subscriptions, and both lean on the "show receipts before deletion" philosophy. CleanMyDev is $9.99 lifetime with 110+ developer-specific cleanup targets across Xcode, Claude Code, Cursor, Codex, Cline, Ollama, Hugging Face, Docker, and the JS toolchain. Devpurge is around $15 lifetime, narrower in scope, and ships with a tidy whitelist-only audit flow. If your stack is heavy on iOS plus AI tooling, CleanMyDev wins on breadth. If you only need the top ten dev caches in a single screen, Devpurge is the smaller surface area.

Why does a Devpurge vs CleanMyDev comparison even exist?

Until late 2025 there were two answers to "what should a developer use to clean a Mac": CleanMyMac for the consumer smart scan, or a personal shell script for the rest. Jonathan Spooner's "Reclaim 100+ GB from Xcode" is a multi-year-old artifact that still ranks because iOS devs keep writing the same script.

What changed in 2026 is that Apple's storage UI started folding more categories into "System Data," AI coding tools became disk hogs at scale, and one developer's Claude Code 472 GB blowup hit every Mac developer's timeline. Devpurge launched into that gap. CleanMyDev launched at the same time with a different scope.

How are CleanMyDev and Devpurge priced?

This is the easy part of the comparison. Neither product wants your card on file forever.

Item Devpurge CleanMyDev
Price model one-time lifetime one-time lifetime
Headline price ~$15 once $9.99 once
Yearly renewal none none
Free trial limited scan read-only audit mode
Subscription auto-renew no no
Bundled in Setapp no no
Account required no no
Telemetry minimal, opt-in none, no account

Over five years on a single Mac, Devpurge stays at around $15 and CleanMyDev stays at $9.99. The same five years on CleanMyMac costs about $200 at the current $39.95 yearly rate. Both indie cleaners are priced in the same psychological bucket. CleanMyDev is roughly 30% cheaper, but the price gap is small enough that it should not be the deciding factor. The scope gap below matters more.

What does each cleaner actually scan?

The product question is what paths each tool surfaces. Here is the side-by-side for the categories that matter on a modern developer Mac.

Category Specific paths Devpurge CleanMyDev
Xcode DerivedData ~/Library/Developer/Xcode/DerivedData/ yes yes
Xcode Archives ~/Library/Developer/Xcode/Archives/ partial yes
iOS DeviceSupport ~/Library/Developer/Xcode/iOS DeviceSupport/ no yes
CoreSimulator caches ~/Library/Developer/CoreSimulator/Caches/ yes yes
Orphaned sim runtimes /System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime/ no yes
xctestdevices ~/Library/Developer/XCTestDevices/ no yes
Claude debug logs ~/.claude/debug/, ~/.claude/projects/ yes yes
Claude CLI MCP logs ~/Library/Caches/claude-cli-nodejs/ partial yes
Codex CLI sessions ~/.codex/sessions/, rollouts, worktrees partial yes
Cursor workspaceStorage ~/Library/Application Support/Cursor/User/workspaceStorage/ (.pack) yes yes
Cline checkpoints ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/ no yes
Factory AI cache ~/.factory/, ~/Library/Caches/factory-ai/ no yes
Windsurf cache ~/.codeium/, ~/Library/Application Support/Windsurf/ no yes
Gemini CLI ~/.gemini/ no yes
Ollama models ~/.ollama/models/ (inspect, not nuke) partial yes
Hugging Face triple cache ~/.cache/huggingface/{hub,datasets,transformers}/ partial yes
LM Studio storage ~/.cache/lm-studio/, ~/.lmstudio/ no yes
Docker.raw ~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw partial yes
Docker images, volumes, build cache via Docker socket no yes
Colima / OrbStack data ~/.colima/, ~/.orbstack/ no yes
npm / pnpm / bun / yarn caches ~/.npm/_cacache/, ~/.pnpm-store/, ~/.bun/install/cache/, ~/.yarn/ partial yes
node_modules graveyard recursive scan across user folders no yes
Playwright browsers ~/Library/Caches/ms-playwright/ no yes

This is not a knock on Devpurge. The product picks a tight scope and ships it well. If your disk pain is Xcode plus the top three or four AI tools, Devpurge covers the loudest 80% in a calmer UI. If your disk pain is the long tail of "I have used six AI editors in the last 18 months and three still leak cache," CleanMyDev's 110+ targets is the closer match.

How do the safety models compare?

Both lean on the same language: dry run, whitelist, no sudo. Details differ.

Devpurge's safety pitch on the Hacker News launch thread was direct: every path is whitelisted, the app never asks for sudo, every operation has a dry-run preview, and the user explicitly opts in per category. That stance is the right one for a skeptical dev audience.

CleanMyDev runs the same defaults and adds a few:

The rule from the Move to Trash vs rm -rf post is "prefer Trash on a low-disk day." A Trash recovery costs zero. An rm -rf typo on ~/.claude/ has destroyed auth tokens for at least one developer in Issue #24207 on Claude Code. Both tools avoid that by construction. The difference is the default: Devpurge defaults to permanent delete on confirm, CleanMyDev defaults to Trash.

What does the cleanup workflow look like in practice?

Both tools start from a scan. Where they diverge is what the result page looks like and how you confirm.

Here is a typical CleanMyDev session run from a freshly opened MacBook, captured as a sequence of terminal-equivalent commands so you can see exactly what the GUI is wrapping.

# 1. Audit only. Walks every known dev cache path and prints a JSON report.
#    CleanMyDev runs this in-process; equivalent on the command line is roughly:
du -sh \
  ~/Library/Developer/Xcode/DerivedData \
  ~/Library/Developer/Xcode/Archives \
  ~/Library/Developer/Xcode/"iOS DeviceSupport" \
  ~/Library/Developer/CoreSimulator/Caches \
  ~/.claude/debug \
  ~/Library/Caches/claude-cli-nodejs \
  ~/.codex/sessions \
  ~/Library/Application\ Support/Cursor/User/workspaceStorage \
  ~/.ollama/models \
  ~/.cache/huggingface 2>/dev/null

# 2. Move to Trash, not rm. CleanMyDev wraps this via NSFileManager
#    trashItem(at:resultingItemURL:) so you can recover from Finder.
osascript -e 'tell application "Finder" to delete POSIX file "/Users/me/Library/Developer/Xcode/DerivedData"'

# 3. Cap future Claude growth. CleanMyDev offers a one-click toggle for this.
echo '{ "cleanupPeriodDays": 4 }' > ~/.claude/settings.json

Devpurge wraps a similar audit and confirm flow. The visible difference is the per-path breakdown. Devpurge collapses categories like "AI editor caches" into a single row with a total. CleanMyDev shows each tool's subpaths separately so you can keep, for example, your ~/.claude/projects/ directory but trash ~/.claude/debug/. Both are valid UX choices. The collapsed view is faster on a clean baseline. The per-subpath view is what you want when the screen says "your home folder contains 47 GB of Claude state and you have no idea which 47" and you need to dig.

Which one should you pick?

Use this decision matrix instead of guessing.

Your stack Pick
iOS only, modest AI usage Devpurge (smaller surface area, fine coverage)
iOS plus heavy AI tooling CleanMyDev (long-tail Xcode plus AI coverage)
AI tools across multiple editors (Claude, Cursor, Codex, Cline, Windsurf) CleanMyDev (per-tool subpaths)
Local LLM heavy (Ollama, LM Studio, Hugging Face) CleanMyDev (inspect-not-nuke for model weights)
JS toolchain plus Docker CleanMyDev (Docker socket plus node_modules graveyard)
Brand-new Mac, just want a quick sweep either, Devpurge ships fewer scary screens
You want a free read-only audit before paying CleanMyDev (audit mode is free)
You distrust everything and want a single source paste-able JSON report CleanMyDev (audit mode writes JSON)
You want the tightest dev cleaner with no extras Devpurge

The honest summary is that Devpurge and CleanMyDev are not really fighting for the same wallet. Devpurge is "CleanMyMac for devs who only need ten paths." CleanMyDev is "an audit tool for devs whose disk problem is the long tail of modern AI tooling." A 256 GB MacBook Air with one Xcode install is well served by Devpurge. A 512 GB MacBook Pro that has cycled through Cursor, Claude Code, Codex, Cline, Ollama, Hugging Face, and Docker is the CleanMyDev audience. The brtkwr writeup of reclaiming 200 GB by hand is exactly that second profile, with "Docker was the biggest culprit" at 108 GB plus another 75 GB found on a second pass.

Can you try both before paying?

Yes. Both tools let you run a scan before you commit. Devpurge's trial gives you the dry-run summary. CleanMyDev's free audit mode is the full per-path inventory with sizes and last-used dates. Pick the one that matches the depth of report you want. Then pay $9.99 or $15 and stop worrying about subscriptions.

If your disk pain is the modern AI-plus-iOS stack and you want the cleaner with the broadest coverage and the cheapest sticker price, the CleanMyDev pricing page is at /#pricing. It is a one-time $9.99 lifetime purchase, Move to Trash by default, no sudo, no account, no telemetry, no renewal, no upsell. The audit mode is free. If after the audit you decide Devpurge is the better fit for your stack, that is also a fine outcome. The category needs more than one good answer.

Related reading

Stop wondering what System Data is.

CleanMyDev opens the box. 110+ developer-specific cleanup targets. Move-to-Trash by default. $9.99 lifetime.

Get CleanMyDev — $9.99