macOS · native · free

Reclaim the disk space your dev tools quietly eat.

Free My Disk finds the gigabytes developer tools leave behind: abandoned AI coding worktrees, package manager caches, Xcode DerivedData, stale node_modules. It tells you what is safe to clear, then moves only what you pick to the Trash.

Free · macOS 14 Sonoma or later

Free My Disk in dark mode: a sidebar of groups with sizes, a list of everything reclaimable sorted by size with safety tags, and a disk summary panel
// Home · everything reclaimable, largest first
Deletes to
Trash only
Telemetry
None
Background daemon
None
Requires
macOS 14+
01Features

Six places your free space disappears to.

Not a generic “system junk” sweeper. Free My Disk knows the specific folders developer tools fill up, and how each one is rebuilt.

02How it works

Scan. Review. Trash.

Three steps, and the second one is yours. Nothing leaves your disk until you say so.

  1. 01

    Scan

    Sizes every known location in your home folder, ~/Library and project roots in parallel. A scan reads; it never changes anything.

    // read-only pass
    ~/  ~/Library  ~/Documents/**
    → size · tier · owner · git status
  2. 02

    Review by safety tier

    Every item carries a tier. Safe items regenerate on their own, moderate items are opt-in, and review items can only be opened in Finder.

    • Safe Regenerated automatically. Ticked by “Select all safe” and Quick Clean.
    • Moderate Opt-in. Slow to rebuild, or may hold something you want. Never ticked for you.
    • Review Not selectable. Open it in Finder and decide yourself.
  3. 03

    Move to Trash

    What you select goes to the macOS Trash, where you can still put it back. Where a tool ships its own cleanup, Free My Disk can run that instead.

    // or prune with the tool’s own command
    pnpm store prune
    uv cache prune
    brew cleanup -s
    go clean -modcache
    xcrun simctl delete unavailable
    git worktree prune
03Safety

Built so a cleanup never costs you work.

A disk cleaner earns trust by what it refuses to do. These rules are enforced in code, not left to a confirmation dialog.

// protected: the Trash step refuses these
~/.claude/projects
~/.claude/settings.json   ~/.claude/history.jsonl
~/.claude/plugins         ~/.claude/skills
~/.codex/sessions         ~/.codex/auth.json
~/.ollama/models          ~/.lmstudio
~/.ssh  ~/.gnupg  ~/Library/Keychains  ~/Library/Mail

// automatic selection skips
modified within 7 days
worktrees with uncommitted or unpushed work

// the only destructive call
move to ~/.Trash
// excerpt of the protected list, compiled into the app
  1. Trash only, never rm

    Nothing is permanently deleted. Items go to the Trash and can be put back until you empty it.

  2. Worktrees with work in them stay unticked

    A worktree with uncommitted changes or unpushed commits is never selected automatically. Registered worktrees get git worktree prune afterwards, so the repository stays consistent.

  3. Recent files are left alone

    Anything modified in the last 7 days is skipped by automatic selection.

  4. Running apps are detected

    Before trashing, it checks for processes that could lock or recreate the files: Xcode, Simulator, Chrome, Cursor, node, pnpm, Docker. You are warned first.

  5. Your data is off limits

    Never touches ~/.claude/projects, settings, history, plugins or skills, Codex sessions and config, local model folders, keychains, mail or iOS backups.

  6. A fixed, published list of paths

    It looks only at known locations, the same ones listed on this page. No heuristics sweep your disk for “junk”.

04Catalog

What it finds

The exact locations, grouped the way the app groups them. Anything else shows up only if you add it as a custom path.

Group Example paths Tier
AI worktrees Dirty / unpushed status on every row
  • <repo>/.claude/worktrees/*
  • ~/.codex/worktrees/*
  • ~/.cursor/worktrees/*
  • ~/.grok/worktrees/*
Moderate
Projects Searched under Documents, Developer, Projects, code, src, repos, work
  • node_modules
  • target
  • .venv
  • .next
  • dist
  • build
  • __pycache__
Moderate
Package caches ~/.m2 is moderate; ML model caches are review
  • ~/.npm/_cacache
  • ~/Library/pnpm/store
  • ~/Library/Caches/Yarn
  • ~/.bun/install/cache
  • ~/Library/Caches/pip
  • ~/.cache/uv
  • ~/.cargo/registry
  • ~/go/pkg/mod/cache
  • ~/Library/Caches/Homebrew
  • ~/.gradle/caches
SafeModerateReview
Build & dev tools Caches only; sessions and config are never listed
  • ~/.claude/cache
  • ~/.claude/shell-snapshots
  • ~/.codex/log
  • ~/Library/Application Support/Code/Cache
  • ~/Library/Application Support/Cursor/Cache
  • ~/Library/Caches/JetBrains
  • ~/Library/Caches/ms-playwright
Safe
Xcode Archives and simulator devices are review
  • ~/Library/Developer/Xcode/DerivedData
  • ~/Library/Developer/Xcode/iOS DeviceSupport
  • ~/Library/Developer/Xcode/UserData/Previews
  • ~/Library/Developer/CoreSimulator/Caches
  • ~/Library/Developer/Xcode/Archives
  • ~/Library/Developer/CoreSimulator/Devices
SafeReview
System caches Each app’s cache folder is its own row
  • ~/Library/Caches/*
  • ~/Library/Logs/*
Safe
Large & backups Docker.raw is size-only; prune through Docker
  • ~/Library/Application Support/MobileSync/Backup
  • ~/Library/Containers/com.docker.docker/…/Docker.raw
ModerateReview
05Screenshots

Looks like it belongs on your Mac.

Free My Disk in dark mode showing 51 GB reclaimable across AI worktrees, package caches and Xcode
// Dark · follows the system appearance

Download

Get your gigabytes back.

Free, native, and done in a minute. Scan first; nothing moves until you choose.

Free · macOS 14 Sonoma or later

Updates arrive through Sparkle inside the app. Requires macOS 14 Sonoma or later. Signed and notarized by Apple.