- Clean rebuildable junk in active projects: Project Artifacts now finds
node_modules,.build,target, and related build folders inside the projects you still work on, grouped by project so you can review and clean one tree at a time. Running builds and Git-tracked files stay skipped. Cleaning these rows is a Pro feature. - Project Auto Clean: an opt-in Pro setting that can remove eligible project artifacts automatically after background scans when free space drops below your threshold (idle age, optional dependencies, and optional project allowlist).
- Trash on archive: hibernate/archive originals now follow Settings → Move to Trash, the same way Clean does for filesystem items.
- Excluded folders Add works again: choosing folders in Settings (Excluded, Project roots, Custom folders, and archive destination) no longer silently cancels in the Settings window.
- Clearer free-space after a clean: deletion records, clean confirm, the dashboard footer, and the menu bar briefly explain that free space can lag because of Trash, Time Machine local snapshots, and APFS purgeable space.
- Grok Bot cleanup: safe caches and updater leftovers for the Grok Bot desktop app.
- Clearer tool icons and rebuild estimates: branded icons for tools and categories, plus optional download-time estimates when rebuilding dependencies may take a while.
- SHA-256 (
DevCleaner-1.15.0.dmg):c7606154880874a0c7366ed48f37e7252d5089513ec165c27ded613692e77cc2- also published at/downloads/SHA256SUMS. Verify withshasum -a 256 ~/Downloads/DevCleaner-1.15.0.dmg.
FIG. 06 - Release history
Changelog
Every release, what it shipped, and when. Updates install themselves. This page is for the curious.
- Feedback without retyping your email: DevCleaner automatically uses the email from your license or trial and shows who the message is sent from. The email field appears only when no saved address is available.
- Connected support requests: feedback from a licensed installation is linked to its license so support has the account details needed to follow up.
- Remembered license email: your license email stays available after restarting the app, including while offline.
- SHA-256 (
DevCleaner-1.14.6.dmg/DevCleaner.dmg):781c00b98dd3c9a0e37989a5112807b89475faf710e7a1eac44aca69e0862464- also published at/downloads/SHA256SUMS. Verify withshasum -a 256 ~/Downloads/DevCleaner.dmg.
- Visible update reminders: the menu bar panel and main window show available updates, with a shortcut to the installer. Update windows remain reachable in the Dock and app switcher.
- Automatic updates by default: updates download in the background and install when DevCleaner quits. Existing update preferences are respected; automatic downloads can be changed in Settings.
- Faster update checks: DevCleaner checks for updates every four hours and reminds you after 24 hours if a downloaded update is still waiting for the app to quit.
- Finish your cleanup first: update restarts wait for an ongoing scan or cleanup to finish.
- SHA-256 (
DevCleaner-1.14.5.dmg/DevCleaner.dmg):0c5866e39afa75fecd780d47f8b5f133526ac69fdc9d494ad5af7cbe66791e37- also published at/downloads/SHA256SUMS. Verify withshasum -a 256 ~/Downloads/DevCleaner.dmg.
- 📎 Diagnostic log attachments: bug reports can now include a
.txtfile with up to 200 recent log lines (64 KB) to help investigate issues. Reports can still be sent when no log is available. - 👀 Preview before sending: review the exact attachment in the feedback form or turn it off before submitting your report.
- 🔒 Redacted diagnostics: paths, email addresses and common credentials are removed; verbose dumps and command arguments are omitted. Review the preview for any other sensitive details.
- SHA-256 (
DevCleaner-1.14.4.dmg/DevCleaner.dmg):3706e4a1f5b258a6614c8b259fa9ffb2e02daebdbf597fed813d145a9c2f64a3- also published at/downloads/SHA256SUMS. Verify withshasum -a 256 ~/Downloads/DevCleaner.dmg.
- ✉️ Better bug-report follow-up: bug reports now require a valid email address so support can ask for more details. Email remains optional for ideas and other feedback.
- 💬 Clearer feedback errors: the app explains when an email address is missing or invalid.
- 🛟 Help center: the Help window now opens the support center for documentation, troubleshooting, and account help.
- 💳 Updated Lifetime offer: removes the retired Early Bird offer and uses the regular $59 Lifetime checkout.
- SHA-256 (
DevCleaner-1.14.3.dmg/DevCleaner.dmg):3a45371ba7cbf9abd52d6b401525633e5045f9b7294c452ad3caa1f6a1696ddb- also published at/downloads/SHA256SUMS. Verify withshasum -a 256 ~/Downloads/DevCleaner.dmg.
- 🎯 Clearer Quick Clean estimate: the menu bar now shows the space Quick Clean can safely process, separately from the total space found. Overlapping Xcode DerivedData and Ghost Projects paths are counted once.
- 🗑 More accurate cleanup results: cleanup history distinguishes items moved to Trash from space permanently freed, and explains that Trash must be emptied to reclaim disk space.
- Minor reliability and security improvements inside the app.
- 🐳 Clearer Docker cleanup: reclaimable images, build cache, stopped containers and volumes stay separate from host-side Docker VM storage. VM storage is now informational only, it cannot be selected, does not inflate cleanup totals, and is never presented as a Docker image.
- 📊 Selected / all at a glance: every tool and cleanup category now shows the amount currently selected alongside its total size, so the Clean action is easy to verify before it runs.
- ⚡ Faster, steadier scans: dynamic discovery runs concurrently with a conservative limit, disk-heavy measurements share a controlled work queue, and rescans retain the previous value until the fresh measurement is ready.
- ✨ Best cleanup opportunities: the dashboard highlights the largest low-risk cleanup wins without changing your selection.
- 🤖 More developer-tool coverage: adds safe cleanup coverage for Codex desktop and CLI caches/logs, ChatGPT diagnostics, Zed, Kiro, Deno, old Cursor agent-cli runtimes, .NET / NuGet, and ML caches for Hugging Face and PyTorch.
- 📦 Safer version cleanup: keep-newest cleanup now covers Rustup, Android SDK components and emulator images, JetBrains Toolbox, Python version managers, FVM Flutter SDKs, Swift toolchains, Gradle wrappers, browser-test downloads and uv toolchains.
- Minor reliability and security improvements inside the app.
- 🖥 Cursor Old Agent CLI Versions: Safe cleanup of superseded agent-cli runtimes under globalStorage. Keeps the active/newest; chats and
state.vscdbare never touched. - 📦 Keep-newest version piles: reclaim old rustup toolchains; Android SDK platforms / build-tools / NDK / cmdline-tools and superseded emulator system images; JetBrains Toolbox IDE apps + download cache; orphaned older JetBrains / Android Studio App Support majors; pyenv / rbenv / SDKMAN; old FVM Flutter SDKs; old Swift toolchains; old Gradle wrapper dists; and keep-newest Playwright / Electron / Cypress / Puppeteer browsers and uv toolchains. Warning rows stay unselected by default; the newest / current install is kept.
- 🧠 ML Caches: Hugging Face and PyTorch caches as Warning categories, never pre-selected (re-download can be large and slow).
- 🟪 .NET / NuGet: regenerable NuGet package and HTTP caches as Safe cleanup.
- Minor reliability improvements inside the app.
- SHA-256 (
DevCleaner-1.14.0.dmg/DevCleaner.dmg):a635ea42cf5640f0629d8c8e61dcd6953f2d1d165d41fa5f15324d6a1f177220- also published at/downloads/SHA256SUMS. Verify withshasum -a 256 ~/Downloads/DevCleaner.dmg.
- ⚡ Faster, smoother rescans: DevCleaner now discovers tools concurrently and measures heavy cache categories through a controlled work queue. Your previous row values stay visible while each fresh, exact measurement finishes.
- ✨ Best cleanup opportunities: a new dashboard card highlights the three largest Safe / Warning cleanup wins without changing what you have selected.
- 🤖 Expanded AI developer-tool coverage: new cleanup coverage for Codex desktop + CLI caches/logs, ChatGPT diagnostics, Zed, Kiro, and Deno. Codex memories and archived transcripts remain opt-in Warning items; active sessions and sign-in data are never touched.
- 🐳 More reliable Docker Desktop: DevCleaner now finds Docker’s CLI when launched from Finder and retries Docker Desktop’s
desktop-linuxcontext when GUI apps do not inherit your Terminal environment. - 📏 More accurate totals: overlapping or symlinked cleanup paths are counted and planned once, preventing inflated disk-space estimates.
- ✉️ Your email choice: trial reminders stay separate from optional product updates and offers. The latter are opt-in and every optional email has one-click unsubscribe; Pulse shows estimated opens and unique clicks by CTA for release campaigns.
- Minor reliability and security improvements inside the app.
- SHA-256 (
DevCleaner-1.13.0.dmg/DevCleaner.dmg):8e01477e28e8816849461040966c6b943d67a3429561ea55c7c92c9f18074f24- also published at/downloads/SHA256SUMS. Verify withshasum -a 256 ~/Downloads/DevCleaner.dmg.
- 👋 Onboarding redesign: multi-slide first run, what DevCleaner does, risk levels (Safe / Warning / Danger / Dangerous+), Free vs Pro comparison, and Lifetime / Yearly checkout on the paywall slide.
- ✅ Trial without a duplicate prompt: starting or skipping the onboarding trial is enough, the post-clean soft trial no longer pops up again after first run.
- 🐳 Docker daemon down: one clear failure (“start Docker Desktop / OrbStack / Colima”) instead of a stack of raw CLI errors; Clean Failures no longer nudges Admin Clean or a locking-app footer for that case.
- Minor improvements and reliability fixes inside the app.
- SHA-256 (
DevCleaner-1.12.5.dmg/DevCleaner.dmg):d15571e512d088aee1c5737efaaaf8c620524906de2d3797ae08945fb447d0d2- also published at/downloads/SHA256SUMS. Verify withshasum -a 256 ~/Downloads/DevCleaner.dmg.
- 📂 Reveal in Finder + Copy Path: path rows in the evidence sheet, clean review, and deletion lists can open in Finder or copy the full path (buttons and context menu).
- 🍺 Homebrew Download Cache: measures and deletes only
downloads/andCask/under~/Library/Caches/Homebrew, not the whole cache folder (API JSON and bootsnap that brew rebuilds right away). - Minor improvements and reliability fixes inside the app.
- SHA-256 (
DevCleaner-1.12.4.dmg/DevCleaner.dmg):7b6fb91b64315f6c3f73b1dd229567a3fa652406a6134bb5a01d6698124b4303- also published at/downloads/SHA256SUMS. Verify withshasum -a 256 ~/Downloads/DevCleaner.dmg.
- 🍺 Homebrew scan no longer freezes: fixed a CommandRunner pipe deadlock that could hang scans on Intel Macs when reading Homebrew output.
- 📜 Rotating diagnostics logs: app logs rotate on disk; Settings → Diagnostics lets you open the log folder in Finder and turn on verbose logging when you need more detail.
- ⏱ Scan progress you can trust: the UI shows the current tool being scanned and elapsed time so long scans feel alive instead of stuck.
- 🔤 Text size: Settings → Text size (Default / Large / Extra Large), with a fix so macOS display scaling does not double-enlarge the UI.
- ✅ Clearer first clean: first-clean confirmation, short one-line category explanations, and an onboarding risk-level legend so Safe / Warning / Dangerous / Dangerous+ are obvious before you delete.
- 🛡 Clean reliability: Free/Pro clean no longer silently no-ops; cleaning progress state stays consistent; Admin Clean timeouts are handled more predictably.
- Minor improvements and reliability fixes inside the app.
- SHA-256 (
DevCleaner-1.12.3.dmg/DevCleaner.dmg):3cab19558d9fe5e59ab236bd66d09819f8562041f92d2fedf23c25268631165d- also published at/downloads/SHA256SUMS. Verify withshasum -a 256 ~/Downloads/DevCleaner.dmg.
- 🐳 Docker cleans while Desktop is running: Docker prune categories are no longer skipped just because Docker Desktop, OrbStack, or Colima is open, the engine must be running to prune, so DevCleaner keeps going instead of treating Docker like a quit-first IDE.
- 🐳 Build cache prune: Build Cache uses
docker builder prune -afso unused build cache is actually reclaimed (not only dangling layers). - 🐳 CLI categories in Clean: command-based rows (Docker, Homebrew, simctl, …) stay eligible for cleaning even when scan could not measure size (for example daemon was down during scan).
- 📋 Clearer clean results: Docker prunes show which command ran and how much was reclaimed; categories skipped because another app is still running are listed in failures instead of disappearing silently.
- Minor improvements and reliability fixes inside the app.
- ☠️ Dangerous+ (uninstall only): new top risk tier for complete app removal, full Application Support and CLI data for Cursor, VS Code forks (Windsurf, Antigravity, …), Xcode, Android Studio, and other supported tools. Never pre-selected, excluded from Quick Clean / Select All, and Pro only.
- 🔐 Double confirmation: Dangerous+ cleans require a dedicated warning sheet, then Touch ID or typing DELETE before anything is removed. Uninstall rows delete permanently (not Trash) so the tool is actually gone.
- 📊 Cleanable vs on-disk totals: Dangerous+ “full folder” sizes exclude paths already counted in regular cache rows, so Cursor/VS Code-style totals are not inflated. The dashboard and each tool show cleanable space separately from uninstall space.
- ⚙️ Settings → Risk Levels: new Dangerous+ legend with the DANGER+ badge, when to use it and why it is not for routine cleaning.
- Minor improvements and reliability fixes inside the app.
- 🤖 AI coding tools: new cleaners for OpenCode, Freebuff / Codebuff, Aider, Continue, Goose, and GitHub Copilot CLI, caches, logs, and reclaimable leftovers (credentials and secrets stay protected).
- 🔨 Xcode DerivedData breakdown: DerivedData is split into Compilation Cache, Module Cache, Symbol Cache, SDK Stat Caches, and per-project folders so you can clean selectively instead of wiping everything.
- 📐 Honest allocated sizes: sizes show space actually claimed on disk. Sparse Compilation Cache files often look huge in Finder while only a fraction is reclaimable, DevCleaner reports the real amount.
- ☑️ Tri-state checkboxes: parent tool and group rows show a mixed (−) state when only some categories are selected.
- Minor improvements and reliability fixes inside the app.
- 🗂 Project Artifacts v2: finds more reclaimable build junk in your project roots,
.next,.turbo,.nuxt,.gradle,__pycache__,dist,coverage, and related caches, alongside the existingnode_modules/ Pods /.build/target/ Gradlebuild/.venvscan. - 🐍 Conda / Miniconda / Mamba: new cleaner for package caches under Miniconda, Anaconda, Miniforge, Mambaforge, Micromamba, and
~/.conda/pkgs, reclaim downloads without wiping active environments. - 📱 Device Support keep-last-N: Xcode Device Support is broken down per device folder; Settings → Scanning keeps the newest N and recommends the rest (same idea as Simulator keep-last-N).
- 🧹 System Temp: only proposes your files under
/tmpand/private/var/tmp(skips root/daemon items like CleverFiles pid files and Software Update temps). Admin Clean / Touch ID only appears for allowlisted failures, protected paths show as skipped, not as a dead-end elevate prompt. - Minor improvements and reliability fixes inside the app.
- 🔐 Privileged helper (SMAppService): one-time install of an elevated helper for Admin Clean, Touch ID in the app, then XPC delete of allowlisted paths. After install + Login Items approval, Admin Clean does not use a password dialog. See
DevCleaner/HELPER-SIGNING.mdfor signing / notarize notes. - 🔐 Admin Clean: Touch ID only after helper install: fixed a bug where Touch ID succeeded and macOS still asked for the Mac password every time. Touch ID no longer falls through to
sudo/osascript. Classic password is only used if you explicitly choose “use password this time” or the helper is missing from the build. - 👋 First-launch helper setup sheet: after onboarding (or on first open when upgrading), explains the one-time password for the secure helper and offers Install / Skip for later.
- 👋 Helper setup re-offer: after an app update, setup is offered again when the helper is not enabled (or the running helper reports an old build). Skip/install flags are no longer permanent for a half-broken helper.
- ⚙️ Settings → Admin Clean Helper: status (installed / needs approval / missing), Install / Repair, Unregister, and Show setup again. Repair unregisters then re-registers so launchd loads the helper from the current app. Also: System Settings → Login Items → remove DevCleaner Helper, then Repair.
- 🛠 Admin Clean allowlist (root helper): the privileged helper runs as root, so it no longer uses
NSHomeDirectory()(/var/root) when checking paths. User folders under/Users/<you>/Library/Developer/…are allowlisted correctly. Seeing the old error “No allowlisted paths to delete” after Touch ID means an outdated helper binary is still registered, repair it (above). - 👆 Touch ID fail-closed: if you deny Touch ID / authentication during Admin Clean, DevCleaner stops instead of continuing without confirmation (passes through only when LocalAuthentication is unavailable).
- 👆 Touch ID only for allowlisted paths: Admin Clean / Retry with Touch ID is hidden when failures are command-based or outside the privileged allowlist, with a clearer footer instead of an empty delete list.
- 📋 Menu bar popover: Today / Last freed / All-time stats, Pro/Free badge, clearer Categories & Hibernate sections, last-clean line, Hibernate empty state (Open… / Unlock), Scan now + Open next to Quick Clean, Admin Clean when failures remain, clicking it opens the main window and the Clean Failures / Admin Clean confirmation sheet (Retry with Touch ID / helper install), not just the dashboard.
- ⏭ Skip locked files: Quick Clean (and Clean Now) keep going when a path is busy / in use, delete everything else nearby, skip only the locked leaves, then summarize (“Skipped N locked by Xcode; freed Y around them”). Admin Clean stays available for permission leftovers, not for busy files.
- 🛡 Skip running-app categories: categories whose app is still running (Cursor, Xcode, JetBrains, etc.) are skipped silently before deletion, no more pre-clean “Clean Anyway” warning. Only the remaining categories are cleaned; end summaries say what was skipped (e.g. “Skipped Cursor (app is running)”).
- ☁️ Dashboard: yearly subscribers can Manage billing (Stripe Customer Portal). Delete synced cloud data clears dashboard aggregates (Mac history stays local).
- ⏰ Trial ending reminders: Notification Center + inbox when your Pro trial has ~3 days left, ~1 day left, and once after it expires (win-back), each threshold fires at most once.
- 🌙 Hibernate offers: unused projects can surface as a system notification and bell-inbox message with Hibernate / Later, not silent auto-archive. Completion notifies after a successful hibernate. Pro-gated like hibernation.
- 🐳 Docker VM disk awareness: shows allocated size of Docker.raw / Colima / OrbStack disk images on the host, a Daemon Status row when the engine is down, and a guided prune that runs
docker system prune -af(volumes untouched). - 📦 Version managers: nvm / fnm / asdf / mise stale runtimes (Node and siblings) as Warning rows, keeps newest + current/default aliases.
- 🧶 pnpm / Yarn Berry prune: first-class Warning categories for
pnpm store pruneandyarn cache clean --all, plus Yarn Berry cache paths. - 📱 Simulators keep last N: Settings → Scanning policy recommends devices beyond the newest N by last boot and older runtimes per platform (default 2).
- ✅ Onboarding trial CTA: _Start free trial_ actually starts the Pro trial; _Continue with Free_ keeps you on Free, Skip and Close stay Free too.
- 💬 Soft trial prompt: after your first successful clean, a one-time Pro trial sheet may appear (before the rating prompt).
- 🔔 Trial reminder: Notification Center alert plus bringing the main window forward so the trial sheet is hard to miss after a menu-bar clean.
- ✨ What's New redesign: release notes match the onboarding look, with dates in d.m.Y format.
- ☁️ Pro web dashboard (beta): sign in with a magic link at dashboard.devcleaner.app to see synced cleaning totals, a usage heatmap, and your referral code. The Mac app syncs aggregate cleans (bytes + category names, never paths) when you have an active paid license. Magic-link login checks the licenses database first and shows a clear error if the email has no Pro purchase.
- 🎁 Referral rewards: when someone buys Pro through your link, yearly referrers get +1 month (app + Stripe renewal delayed), trial path gets +14 days, lifetime referrers get a $5-off friend promo code. Settings → License explains each reward; Lifetime codes also show on the web Referral page.
- 📬 In-app Messages: notification center delivers text updates and polls from Pulse admin, version-targeted, with read and delivered stats.
- 🔔 Menu bar bell: unread badge on the wand menu; open the inbox without leaving the popover.
- 🗳 Polls in the inbox: vote from the message list with stable selection UX.
- 🧹 New cleanup targets: SwiftPM Source Packages, Xcode Build Logs, Browser Testing Caches (Playwright / Electron / Cypress / Puppeteer), Android Emulator Snapshots, and System Temp older than 7 days.
- 📱 Full simulator list: shows all CoreSimulator devices; installed app names appear as device captions (info only).
- 🗑 Per-device Erase vs Delete: choose
simctl eraseor full delete per device, plus bulk Erase/Delete on each iOS runtime group (with Mixed when devices disagree). - 🛠 Fixed: deleting an iOS simulator runtime no longer fails silently.
- 📊 Stats fix: clean reports are no longer blocked by the launch run rate-limit (separate buckets + one retry on 429).
- Prepared the same day as 1.9.0 but not shipped on the public appcast (DMG never published). Feature notes live under 1.9.0.
- ⭐ In-app rating: after a successful clean, DevCleaner may gently ask for a rating, cadence is non-annoying by design.
- ⚙️ Rate in Settings: open Settings → Support and tap Rate DevCleaner whenever you want to leave feedback.
- 🪟 Foreground prompt: the rating sheet always comes to the front after menu bar Quick Clean or smart-trigger cleans, not only when the dashboard is already open.
- 🛠 Fixed: Smart Triggers auto-clean on app quit, cancels in-flight scans before quit cleanup, skips empty categories, migrates the legacy 7-day age default to Any age, and clarifies the age filter in Settings.
- 👆 Unselect All: clear every category selection in one click so you can start from zero and pick only what you want to clean.
- 🔗 Trial attribution: Stripe checkout passes
client_reference_idso purchases link back to the trial that converted. - 💿 DMG installer polish: Retina-sharp branded background plus a custom volume icon on the disk image.
- 🏠 Scanner expansion, home dot folders: npm npx cache (
~/.npm/_npx) as Safe; Claude Code **telemetry, backups, and memory logs (~/.claude/telemetry,~/.claude/backups,~/.claude-mem/logs); Cursor CLI browser logs, AI tracking, project metadata, and saved plans** (~/.cursor/browser-logs,~/.cursor/ai-tracking,~/.cursor/projects,~/.cursor/plans); new Codex CLI scanner for temp files and session memories (~/.codex); new Cline scanner for per-workspace state (~/.cline/data/workspaces). - 📚 Scanner expansion, Library & tooling: JetBrains IDEs now cover Application Support caches, logs, and optional search indexes; Android Studio adds App Support caches, logs, indexes, SDK download staging, and emulator/system-image categories; new Developer Logs scanner for safe log folders across Simulator, Xcode, Docker, Colima/OrbStack, VS Code, Cursor, Homebrew, and Node.js under
~/Library/Logs. - 🔧 Xcode & Android cache depth: Xcode adds internal dt.Xcode caches, component download staging (
DVTDownloads), and simulator caches; Android adds Gradle daemon logs, App Support caches, and **SDK download intermediates**. - 🦀 Rust, Go & Flutter: Rust adds registry sources, rustup temp, and optional git checkouts; Go adds tool caches (golangci-lint, goimports); Flutter adds Dart SDK cache and Dart analysis server cache (
~/.dartServer). - 💿 Branded DMG installer: download disk image now uses a custom DevCleaner-branded background (site colors, drag-to-Applications layout) instead of a plain Finder window.
- 🛠 Fixed: onboarding welcome screen no longer clips on smaller displays (macOS 15), content scrolls with Skip / Get Started always visible, plus a Close button in the header.
- 📍 Menu bar clarity: first-launch callout explains DevCleaner lives in the menu bar (wand icon near the clock).
- 🗑 Move to Trash: optional setting to move filesystem items to Trash instead of permanent delete, grouped per clean session under
DevCleaner YYYY-MM-DD HH-mmin Trash. Docker and Homebrew still use their own CLI cleanup. Deletion records note the mode used. - 🔍 Evidence before delete: review screen lists every path, size, and date before you confirm a clean, expand categories to verify, export a JSON preview.
- 📋 Deletion manifest: each clean saves a JSON record of what was removed (paths, categories, command actions, failures). View from History or the dashboard footer.
- 📂 Xcode per-app archives: Xcode Archives broken down by app with expandable groups instead of one opaque blob.
- 📁 Custom folder evidence: custom folders show dev artifacts, file-type buckets, large files, and individual paths you can pick.
- 📦 Swift Package Manager cache: new Safe category in the Xcode scanner for
~/Library/Caches/org.swift.swiftpm- reclaimable without touching your checkouts. - 🍺 Homebrew deep clean: Homebrew cleanup now runs
brew cleanup --prune=allso old formula versions and download cache go away in one pass. - 🥖 Bun cache:
~/.bun/install/cacheshows up as Safe in the Node.js scanner alongside npm, Yarn and pnpm. - 🐍 Stale Python venvs: Project Artifacts now surfaces forgotten
.venv/venvfolders under stale Python project roots (pyproject.toml, requirements.txt, Pipfile, poetry.lock markers). - 📦 Batch Archive All (Pro): archive every unused project at once from Unused Projects, confirmation with count + total GB, progress row, skip on error.
- ⚡ Smart Triggers Pro-only: auto-clean on app quit is now a Pro feature (trial included); manual Quick Clean stays free.
- 👻 Free discovery, Pro automation: Ghost Projects and Project Artifacts stay free so you can see what's eating disk; archiving inactive projects and batch hibernate require Pro. Restore is always free.
- 📂 Custom Folders breakdown: each custom folder is an expandable group (like iOS Simulators), dev artifacts, file-type buckets, large files, and individual files you can pick instead of wiping the whole folder.
- 👆 Row-click selection: click a category row to toggle its checkbox, not just the box itself.
- ❓ Help & About: DevCleaner → About and Help → DevCleaner Help (⌘?) open in-app version info and a docs hub with links to devcleaner.app/docs.
- ⚙️ Settings redesign: card-based layout with clearer typography and spacing, matching the dashboard.
- 🧹 Dashboard toolbar: Rescan, History, Settings, and a prominent Clean button, less clutter, faster to act.
- 🛠 Archive filename deduplication: hibernation archives no longer collide when two projects share the same folder name.
- 🛠 Smarter totals: when Ghost Projects and Xcode DerivedData overlap, the header no longer double-counts the same bytes in selected totals.
- 🛠 Fixed: auto-clean on app quit (Smart Triggers) now cleans only that app's safe caches and actually frees space. Removed the overly strict 7-day age filter default; categories are resolved fresh on each quit instead of stale scan results. Shows a per-app notification when cleanup finishes.
- 👁 Restore preview: Before restoring a hibernated project, preview exactly what will happen, archive integrity check, the destination path (including a "(restored)" sibling when the original folder still exists), file count, and a listing of top-level contents. Available from the eye button in Archived Projects or "Preview restore" in the confirmation window. Won't download an iCloud-parked archive just to peek.
- 🐳 Docker project hibernation: Archiving a Docker Compose project now captures the full runtime, not just source files. Named compose volumes (databases, persistent data) are snapshotted into the archive. Light archive rebuilds images via
docker compose buildon restore; full archive saves images withdocker savefor offline restore. Docker-only projects (docker-compose.yml/Dockerfilewithout a git repo) are now detected as archivable projects.
🎉 Monetization + Project Intelligence + Legal Docs
- 💳 DevCleaner Pro: Yearly $9.99 or Lifetime for $59. 14-day free trial. Activate on up to 3 of your Macs. License validation + offline grace period (14 days).
- 📦 Project Hibernation: Archive inactive projects off your local disk into zip/tar with a breadcrumb sidecar. Restore with one click + optional dependency reinstall (npm install, pod install, etc.). Light archive (no node_modules) or full archive (everything). iCloud-aware restore with preflight checks. Free to restore, requires Pro to archive.
- 👻 Ghost Projects detector: Per-project breakdown of old DerivedData entries. See which Xcode projects have stale build artifacts eating your disk.
- 🔍 Project Artifacts finder: Walk your chosen project roots and surface node_modules / Pods / build folders by staleness. Detect when a project hasn't been touched (git/mtime check).
- 📋 Legal docs: Terms of Service, License Agreement (EULA), Refund Policy, and updated Privacy Policy. All live on
/terms,/eula,/refund-policy,/privacy. - 🎯 Onboarding updated: 14-day Pro trial info + Pro feature highlights.
- 🛠 Fixed: automatic clean-on-quit no longer deletes an app's pending update. When Claude Desktop (or any self-updating app) has just downloaded an update, DevCleaner now leaves its updater staging folder alone when the app quits, so the update installs correctly instead of vanishing. You can still clear updater leftovers manually.
- 🐳 Docker cleanup: reclaim space from Docker, OrbStack and Colima. DevCleaner reads the sizes straight from Docker and clears the build cache, dangling images, unused images and stopped containers, and unused volumes. Safe items are selected by default. Volumes can hold databases, so they are never touched unless you say so.
- 📱 Simulator Slimmer: a per-device and per-runtime breakdown of old iOS simulators under Xcode, plus one-click removal of unavailable simulators. See exactly which simulator versions are eating your disk before you delete anything.
- Fixed: the "Clean Anyway" button in the menu bar did nothing when an app was still running. The running-app warning now confirms correctly and the clean proceeds.
- 🖥️ Desktop widget: see what's _selected to clean_ right on your desktop or in Notification Center, with a Quick Clean button and a 30-day cleanup chart on the medium size. One click frees the space.
- ⚡ Smart Triggers: optionally clean a dev app's safe caches automatically right after you quit it (Xcode, Cursor, Android Studio…), with an age filter so fresh work is never touched. Off by default, enable in Settings → Scanning.
- Storage Hall of Shame: the dashboard ranks your top three disk hogs with gold, silver and bronze medals, and you can share the leaderboard as an image. Can be hidden in Settings → General.
- Share your stats: History can render a brand-styled image of your last-30-days cleanup stats, copy it to the clipboard or save as PNG.
- Interactive history chart: hover any day to see exactly how much was freed.
- Running-app protection: cleaning caches of an app that is currently running (Xcode mid-build, for example) now warns first, no more vanished SPM checkouts.
- Credential safety net: files holding logins, sessions or app state (Cookies, Local Storage, credential files, SSH keys…) are never deleted, regardless of category. Your logins are untouchable by design.
- Visible results: the menu bar panel now shows cleaning progress and a "Freed X GB" banner right after a cleanup finishes.
- Send Feedback: one click in Settings → Support opens a pre-filled email with your app and macOS version.
- The main window behaves like a real app: while it's open, DevCleaner appears in ⌘Tab and the Dock and gets a menu bar, and there's a gear button (plus ⌘,) to reach Settings directly.
- Redesigned History: hero card with the last-30-days total and a proper fixed-axis chart, all-time stats (total freed, biggest single cleanup) and a friendlier session log with relative dates.
- Smarter menu bar panel: big reclaimable-space number, tools sorted by size with proportional bars, "+ N more tools" rollup, and Quick Clean now shows how much it will free.
- Dashboard: category rows show a proportional size bar colored by risk level; header shows selected vs. total found; footer shows free disk space.
- Onboarding mentions the AI tool scanners.
- 8 new scanners for AI tools: Claude (desktop app + Claude Code CLI), ChatGPT, Gemini CLI, Cursor, Windsurf, Antigravity, Ollama and LM Studio. Editor and app caches are rated Safe; downloaded LLM models (Ollama, LM Studio) are rated Warning and never pre-selected.
- Beyond caches, the AI scanners also cover crash dumps & diagnostics, auto-updater leftovers (Claude ShipIt), Ollama logs, Claude Code shell snapshots and – as opt-in Warning categories – editor workspace storage, local file history and Claude Code session transcripts.
- VS Code scanner now covers the same extended categories as the VS Code–based AI editors (crash reports, workspace storage, file history).
- Categories can now aggregate multiple folders (e.g. one "Caches" entry spanning Application Support and ~/Library/Caches).
- Global "space freed" counter, after each cleanup, the app contributes one anonymous number (bytes freed) to the public counter on devcleaner.app. No paths, no identifiers, no IP stored. Can be turned off in Settings → General → Privacy (new section).
- Website shows the global counter in the download section once the community total passes 1 TB.
Initial release.
- 14 toolchain scanners: Xcode, Android Studio, JetBrains IDEs, CocoaPods, Homebrew, npm/Yarn/pnpm, Python, Flutter, Rust, Go, Maven, Composer, Unity, VS Code, plus custom folders.
- Safe / Warning / Danger risk levels; dangerous items never pre-selected.
- Quick Clean from the menu bar, live disk-usage badge.
- Background rescans, threshold notifications, optional Auto Clean with age filter.
- 30-day cleanup history with charts.
- Automatic permission fixing + administrator retry for protected files.
- Sparkle automatic updates.
FAQ
- How do I update DevCleaner?
- DevCleaner updates itself via Sparkle. Enable automatic checks in Settings → Updates or check manually any time.
- Where can I download older versions?
- Each release on this page links to its .dmg. The latest is always at devcleaner.app/DevCleaner.dmg.
- What if the changelog will not load?
- Release notes also ship inside every in-app update. Check Settings → Updates.