New: a Dynamic Island for your MacBook's notch

Get back the gigabytes
your dev tools leave behind.

SpaceSaver finds what macOS hides under “System Data”: stale node_modules, Xcode DerivedData, Docker build cache, package caches, local AI models and agent transcripts. It clears them safely, moving files to the Trash so you can undo.

v1.0.0 · 3.2 MB · Apple silicon · macOS 14 or later · Free and open source

An interactive mock-up built from the app's design with demo data. Hover over or tap the notch.

node_modulesXcodeSimulatorsDockerOrbStacknpmpnpmYarnBunpipuvCargoGoGradleMavenHomebrewCocoaPodsFlutterVS CodeCursorWindsurfZedJetBrainsHugging FaceOllamaLM StudioClaude CodeCodexCopilot
3.2MB download. Native Swift, no Electron
45build-artifact rules, each tied to its manifest
0accounts, licence keys or telemetry
6MCP tools for agents, all propose-only
What it finds

Knows where developer junk hides.

Generic cleaners clear browser caches. SpaceSaver knows your toolchain: which folders regenerate, which are expensive to rebuild, and which belong to a project you touched this morning.

Project Artifacts

45 rules, from node_modules, .next and target to .venv, Pods and .gradle. Each one only counts when its manifest sits next to it, and projects with recent commits are held back.

Xcode & Simulators

DerivedData, device support per iOS version, previews and archives. Simulators whose runtime is gone are marked safe.

Docker

Asks the engine directly for build cache, stopped containers, unused images and volumes. Works with Docker Desktop, OrbStack and colima.

Package Caches

npm, pnpm, Yarn, Bun, pip, uv, Poetry, Cargo, Go, Gradle, Maven, Homebrew, CocoaPods, SwiftPM, Playwright and more.

IDEs & Editors

Caches for VS Code, Cursor, Windsurf, Zed and JetBrains, plus workspace storage left behind by projects you've deleted.

AI Models

Hugging Face and Ollama sized per model, with shared blobs counted once. LM Studio, MLX, Whisper and llama.cpp are covered too.

AI Session Logs

Claude Code, Codex, Copilot, Cline and Cursor transcripts, audited for leaked API keys and archived before the Trash. Also the git worktrees Claude Code leaves in .claude/worktrees, with uncommitted changes flagged.

System Junk & Downloads

App caches (skipped while the app runs), logs, crash reports, installers for apps you already have, and archives you already extracted.

Large Files & Duplicates

Duplicates are checked by size, then a partial hash, then a full SHA-256. Hard links and iCloud placeholders are skipped.

Storage Map

See where it went, and what grew.

A treemap of your home folder, any folder or the whole disk, with firmlinks handled so nothing is counted twice. Each scan is saved, so you can see which folders grew since the last one.

Undo for every file

Every cleanup, whether from the app, the CLI, the scheduler or an approved agent, is logged. One click puts files back where they were.

Quick Clean · 42.2 GBRestore
Xcode DerivedData · 9.4 GBRestore

Cleans on a schedule

A small LaunchAgent runs daily or weekly, even with the app closed. It skips when you're on battery, only touches Safe items, and can wait until free space drops below a limit you set.

Lives in your menu bar

Free space at a glance, Quick Clean with a two-step confirm, and pending agent requests, without opening a window.

Uninstalls apps completely

See each app's size, when you last opened it, and the files it keeps in your Library. Uninstall removes the app and those files to the Trash, with undo. It also finds leftovers of apps you've already deleted.

Updates itself, safely

New versions install from inside the app. Every release is signed, and SpaceSaver refuses any download whose signature doesn't match. If an install fails, the old version comes back.

Keeps build machines lean

On a CI runner, spacesaver make-room 50GB --until-free --yes frees just enough space, safest items first, before a big build.

Dynamic Island

Your notch, put to work.

A black island grows out of the MacBook notch. On Macs without a notch, it sits at the top of the menu bar. It needs no Accessibility or Screen Recording permission.

Demo: pick a mode, or hover over or tap the island.

Make room for X GB

Need 20 GB for an Xcode update? Ask for exactly that.

Tell SpaceSaver how much you need. It picks the least risky items that cover it: Safe items first, then Review, and never anything marked Caution. Agents can ask the same question over MCP before a big download.

20 GB

    Safety model

    Built not to break your Mac.

    Cleaners earn trust slowly and lose it quickly, so every removal from every entry point goes through the same checks.

    1

    Scans only read

    Nothing changes until you confirm in a review sheet that separates undoable moves from permanent actions.

    2

    Three risk levels

    Safe regenerates by itself, Review is costly to rebuild, and Caution may be personal. Automatic cleaning only ever touches Safe.

    3

    Live guards

    Caches of running apps are skipped, and projects with recent commits or edits are held back.

    4

    Hard limits

    It refuses system folders, your home's top-level folders, ~/.ssh, ~/.aws, keychains, Mail, iCloud Drive, anything inside .git, and symlink tricks.

    5

    Trash first

    Files go to the Trash and can be restored from Activity for 7 days (configurable). SpaceSaver only ever purges what it put there.

    6

    Honest numbers

    It reports allocated size (it matches du), counts hard links once, and tells you moved-to-Trash bytes aren't free until you empty it.

    For your terminal and your agents

    A CLI and an MCP server, built in.

    The spacesaver command ships inside the app and shares its settings, history and undo log.

    zsh
    $ spacesaver status
    Macintosh HD (APFS)
      Used       475.80 GB of 494.38 GB
      Free       18.58 GB
      Purgeable  2.31 GB  (macOS frees this on demand)
    
      Last scan  2 minutes ago: 42.15 GB safe to clean
    
    $ spacesaver scan -c packageCaches
    
    Package Caches  24.80 GB
      ●    6.80 GB  safe     npm cache          ~/.npm/_cacache
      ●    4.20 GB  safe     pnpm store         ~/Library/pnpm/store
      ●    3.10 GB  safe     Homebrew downloads ~/Library/Caches/Homebrew
    
    $ spacesaver preflight 20 # exit code 2 if it won't fit
    $ spacesaver clean # dry run unless --yes

    Let Claude Code, Codex or Cursor ask before they fill your disk

    The MCP server lets agents check free space, run a preflight before big downloads, and propose a cleanup. Agents can't delete anything. Proposals wait in Agent Requests until you approve them, and expire after 24 hours.

    claude mcp add spacesaver -- /Applications/SpaceSaver.app/Contents/Helpers/spacesaver mcp
    get_disk_statuspreflight_checklist_reclaim_candidatesexplain_pathpropose_cleanupget_plan_status
    Install

    Up and running in a minute.

    1. 1

      Download

      Get SpaceSaver.dmg (3.2 MB) and open it.

      Download
    2. 2

      Drag to Applications

      Drag the SpaceSaver icon onto the Applications folder in the window that opens.

    3. 3

      Allow the first launch

      SpaceSaver isn't notarized by Apple yet, so macOS blocks the first launch. Open it once, then go to System Settings › Privacy & Security and click Open Anyway.

      Prefer Terminal?
      xattr -dr com.apple.quarantine /Applications/SpaceSaver.app
    4. 4

      Grant Full Disk Access

      Optional, for a complete scan. SpaceSaver prompts you and links to Privacy & Security › Full Disk Access.

    FAQ

    Questions, answered.

    Is it really free?

    Yes, and it's open source under the MIT licence. Every feature is included, with no account, licence key, cleanup cap or telemetry. On its own, it only checks GitHub once a day for a new version (you can turn that off), and it talks to a local Ollama model only if you turn on AI explanations.

    Could it delete something I need?

    Scans only read. Files go to the Trash, and you can restore them from Activity until the retention window ends. Docker prunes can't be undone, so the review sheet lists them separately before you confirm. Folders that hold personal data or credentials, anything inside a Git repository's .git, and caches of apps that are running are refused outright.

    Why does macOS say it can't check the app for malware?

    Apps distributed outside the App Store need Apple notarization to skip that warning, and SpaceSaver isn't notarized yet. Step 3 of the install shows how to allow it once. You can also read the source and build it yourself with scripts/build-app.sh.

    How do updates work?

    From version 1.1, SpaceSaver checks for new versions once a day and offers to install them. Every release is signed with a private key, and the app installs an update only if the signature matches, so a tampered download is refused. If anything goes wrong, the previous version is put back. Version 1.0 has no updater, so download 1.1 once by hand.

    Does it run on Intel Macs?

    Not yet. The download is built for Apple silicon (M1 or later) running macOS 14 Sonoma or newer.

    What does the Dynamic Island need?

    Nothing extra. It works best on a MacBook with a notch; on other Macs it sits at the top of the menu bar. You can turn it off, or stop it expanding on hover, in Settings › General.

    How do I uninstall it?

    If you turned on scheduled cleaning, turn it off in Settings › Schedule first. Then drag SpaceSaver to the Trash and delete the ~/.spacesaver folder, which holds its settings and history.

    Your disk has room. It's just full of caches.

    Scan once and see how much of it can go safely. Nothing changes until you say so.

    Download SpaceSaver

    v1.0.0 · 3.2 MB · Apple silicon · macOS 14+