Cachesweep

The menu-bar disk cleaner that shows you what’s eating your space — live.

Free & open source · MIT · macOS 15+ · 13 languages

macOS 15+ Swift 6 · SwiftUI native 13 languages MIT licensed Sparkle auto-updates Safe by default
Live Activity — FSEvents
Live tracking

Watch your disk refill — live.

You upgrade macOS, 70 GB frees up, and a week later it’s gone. Cachesweep watches the file system in real time, so you can finally see what is being written where.

  • Per-folder growth deltas (▲) and recency, streamed from FSEvents
  • Persistent growth history with sparklines — across restarts
  • A nudge when something balloons: “DerivedData grew ▲4 GB this week”
LIVE ACTIVITY writing now
Xcode DerivedData2.31 GB ▲ 128 MB · just now
npm Cache612 MB ▲ 48.2 MB · 4s
~/Library/Caches/ms-playwrightnew1.02 GB ▲ 212 MB · 11s
Ollama Models9.4 GB ▲ 1.7 GB · 26s
Smart Discovery — Spotlight + classifier
Smart discovery

Finds caches you never listed.

Most cleaners ship a hardcoded list. Cachesweep hunts: Spotlight surfaces project manifests and CACHEDIR.TAG markers anywhere on disk, and a signal-based classifier decides what’s genuinely regenerable.

  • Leftovers of uninstalled apps get flagged too
  • Everything discovered lands opt-in, marked new
  • True on-disk allocation — a sparse Docker.raw is measured honestly
▸ sweeping ~/dev
✦ found turbo/cache — CACHEDIR.TAG
✦ found target/debug/incremental — cargo manifest
✦ found node_modules/.cache — 14 projects
✦ found ~/Library/Caches/Arc — app removed leftover
✓ classifier: regenerable · idle 21d · safe to remove
Learning Loop
Learning loop

It learns what you clean.

Clean something once and Cachesweep remembers. When a cache grows back, it notices. Kinds you keep cleaning get promoted to trusted — the curated seed list is just a starting point.

  • Grow-back detection per location
  • Trusted kinds auto-promote over time
  • Your habits stay on your Mac — nothing leaves the device
ms-playwright new ~/Library/Caches/ms-playwright 1.02 GB
· cleaned by you — remembering
· grew back ▲ 890 MB in 6 days
· cleaned again — promoting to trusted
Safety Model
Safe by default

Green means regenerable.
Orange means think twice.

Only clearly-safe, idle caches are ever pre-selected. Real data — models you’d re-download, anything in active use — is opt-in, never auto-picked. Destructive steps sit behind a confirmation, exactly as the HIG asks.

  • In-use detection: hot folders are never pre-selected
  • Idle-age badges tell you how stale a cache is
  • One-click, one confirmation, fully reversible by regeneration
Gradle Cache 21d ~/.gradle/caches 4.2 GB
Ollama Models in use ~/.ollama/models — re-downloads on demand 12.4 GB
Docker.raw sparse 60 GB apparent → 18.2 GB real allocation 18.2 GB
System Areas — admin-gated
System data

Even “System Data”, explained.

The mystery bar in Storage settings, decoded: root-owned caches, pending update files, old package caches, Time Machine snapshots. Scanned only when you ask — behind a single administrator prompt.

  • Nothing root-owned is touched without explicit intent
  • Local Time Machine snapshots, thinned via tmutil
SYSTEM AREAS
System Caches admin /Library/Caches 3.1 GB
Time Machine Snapshots tmutil · 3
Pending Update Files admin /Library/Updates 1.8 GB
Cachesweep — Install
Install

Drag. Drop. Sweep.

  1. Download Cachesweep-x.y.z.dmg from the latest release.
  2. Drag Cachesweep onto Applications and launch it from the ✨ menu-bar icon.
  3. First launch: right-click → Open (ad-hoc signed build — one time only). Updates arrive signed, via Sparkle.

Your disk. Explained.

Stop wondering where 70 GB went. Put a sweeper in the menu bar and watch it work — live.

Download for macOS Star on GitHub