Dev Cache Clean

Find the developer caches silently eating your Mac's disk, and clean them safely

Dev Cache Clean is a free, open source macOS app with a fast Zig core that shows exactly what each cache is, what you lose if you remove it, and moves it to the Trash.

Build from source View on GitHub

Early: macOS 15+ app (Apple silicon), not notarized. Experimental command line for Linux and Windows. MIT licensed.

Dev Cache Clean window on the Dev caches tab, listing node_modules, target and other project caches with size and idle days, plus Select stale and Move to Trash buttons
Example data, not a real machine.

What it finds

Project caches

Found by walking a folder you choose (default ~/development). Each shows how many days its project has been idle.

  • node_modules, .next (next to package.json)
  • target (next to Cargo.toml)
  • .zig-cache (next to build.zig)
  • Pods (next to Podfile)
  • .venv, __pycache__

Global tool data

40 known locations, each labelled with what it is, what you lose and a risk level.

  • AI coding agents: Claude Code, Codex CLI, opencode
  • Editors: VS Code, Cursor
  • npm, Yarn, pnpm, Bun, Cargo, Gradle, Maven, Homebrew, pip, uv, Go, CocoaPods, Playwright, Puppeteer
  • Xcode: DerivedData, iOS DeviceSupport, simulator caches, archives

Docker

Images, stopped containers, volumes and build cache, with the reclaimable size from docker system df. Works with Docker Desktop and OrbStack.

The app has three tabs: Dev caches, System and Docker. Every global entry is documented in the full catalog. Credentials, settings and source code are never listed.

Screenshots

System tab listing global tool locations such as the Bun, pnpm and Go caches and AI-agent conversation history, each with a category chip, a safe or careful chip and an 'If removed' line
System tab. Example data.
Docker tab showing images, containers, volumes and build cache with reclaimable sizes and a Clean button for each
Docker tab. Example data.

Safety

How each action behaves
ActionWhereReversible?
Move to TrashDev caches and System tabsYes. Restore from the Trash. Space is freed when you empty it.
Delete now…Dev caches and System tabsNo. Permanent, nothing goes to the Trash. Always asks for confirmation.
Docker cleanDocker tabNo. Permanent, always asks first and explains what is lost.
  • Only items returned by a scan can be acted on; symbolic links are refused.
  • Credentials, tool settings and source code are never part of the catalog.
  • Items marked careful (conversation history and anything you may want back) are never pre-selected.
  • The app makes no network requests.

Speed

Measured on the author's ~/development (about 550 caches, 34 GB, Apple silicon):

VersionTime
One stat per file, one thread4 min 23 s
Parallel sizing1 min 30 s
Parallel discovery and sizing with getattrlistbulkabout 20 s

Results were compared with find (same set of caches) and du (sizes within rounding). Sizes are allocated bytes on disk; hard-linked stores such as pnpm's may free less than they show. Your numbers will differ.

Install, or build it yourself

With Homebrew (Apple silicon, macOS 15+), use the full name: Homebrew 7 only loads casks from taps you trust, and naming the cask is how you trust it.

brew install --cask developerfred/tap/dev-cache-clean

The app is not notarized, so macOS blocks the first launch: allow it in System Settings, Privacy & Security, Open Anyway. To build from source you need macOS 15+, the Xcode command line tools and Zig 0.17:

git clone https://github.com/developerfred/dev-limpeza.git
cd dev-limpeza
./make-app.sh && open app/DevCacheClean.app   # window, Dock icon and menu bar item
./build.sh                                     # CLI only
zig-out/bin/dev-cache-clean scan ~/development --days 30
zig-out/bin/dev-cache-clean global
zig-out/bin/dev-cache-clean docker

Set ZIG=/path/to/zig to use a specific Zig binary.

FAQ

Is Dev Cache Clean safe?

Dev caches are moved to the Trash so you can restore them. Only items returned by a scan can be acted on, symbolic links are refused, and credentials, tool settings and source code are never listed. The Delete now button and Docker cleanups are permanent and always ask for confirmation first.

Does it phone home?

No. The app makes no network requests and has no telemetry.

What does "careful" mean?

Careful marks data you may want back, such as conversation history, Xcode archives or Maven's local repository. Careful items are never pre-selected and the confirmation warns you when your selection includes them. Safe items are regenerated on demand and cost only time or bandwidth.

Why did I free less space than the app showed?

Sizes are allocated bytes on disk. Stores such as pnpm's and Bun's are hard-linked or cloned into projects, so removing them can free less than shown. Space from the Trash is only freed when you empty it.

What do I need to run it?

An Apple silicon Mac with macOS 15 or later. Install with Homebrew (brew install --cask developerfred/tap/dev-cache-clean) or download the DMG from the releases page. It is not notarized, so macOS blocks the first launch: allow it in System Settings, Privacy and Security, Open Anyway. To build from source you also need the Xcode command line tools and Zig 0.17.