Old projects,
swept clean.

Maben Sweep finds the projects you stopped working on and removes what can be rebuilt: dependencies, build output and caches. Your code, and anything git tracks, is never touched.

It removes only what one command brings back.

Open any old project and most of its weight is folders a tool made and can make again. Those go. Everything you wrote stays exactly where it is, and isn't even listed.

webshop/idle for 212 days
  • ├─src/staysyour code
  • ├─public/stays
  • ├─.envstaysnot a folder Sweep knows
  • ├─package.jsonstaysproves what made node_modules
  • ├─pnpm-lock.yamlstaysmakes the reinstall identical
  • ├─node_modules/933 MBgoespnpm install
  • ├─.next/1.6 GBgoesnext build
  • └─.turbo/88 MBgoesrebuilt as you work
Stays: everything you wroteGoes: 2.6 GB

A folder is only removed when it passes five checks.

  1. Its name is known

    The folder is on Sweep's list, such as node_modules or target. Nothing else is ever a candidate.

  2. The right file is next to it

    The file that shows which tool made it sits next to it: package.json, Cargo.toml.

  3. Git ignores it

    Git ignores the folder and tracks nothing inside it. A committed dist is never touched.

  4. It rebuilds the same

    Dependencies have a lockfile, so the reinstall gives the same versions.

  5. It is a real folder

    It is a real folder inside the project. Links to other places are never followed.

SafePassed all five. Cleaned automatically, after the warning.
AsksNo lockfile, not in git, or a Python environment. Only removed when you click Remove.
NeverGit tracks a file inside it, or it isn't on the list. Not shown at all.

You are warned before anything is removed.

Automatic cleanup is off until you turn it on. Until then Sweep only shows what could go, and you clean with a click.

  1. Day 0

    Last work

    The newest of a commit on any branch, a changed file, or a Claude Code or Codex session in the folder.

  2. Day 60

    Idle

    No sign of work for 60 days, and no program running in it. You choose 30, 60, 90 or 180.

  3. Day 60

    Warning

    A notification names the day and the space, with a Keep button. Work on the project and it comes off the list.

  4. Day 63

    Cleaned

    Looked at once more, right before. Then the rebuildable folders go, and nothing else.

  5. Any day

    Back

    History keeps the command, such as npm install. Restore runs it in Terminal.

Every project in one window.

Every project with what it holds and when you last used it. Keep one for now, never clean another, or give a project its own idle time.

Works with 14 toolchains.

Each folder only counts next to the file that proves what made it, in single projects and inside monorepos.

Nodenode_modules.next.nuxt.svelte-kit.turbodistbuild
Rusttarget
Swift.build
CocoaPodsPods
Python.pytest_cache.mypy_cache.ruff_cache.venv asks
PHPvendor
Govendor
Gradlebuild.gradle
Maventarget
.NETbinobj
Flutter.dart_toolbuild
Elixirdeps_build
Zigzig-cachezig-out
Haskell.stack-work

Shared caches, only when you ask.

Xcode, npm, Homebrew and a dozen more, each with its size. They fill up again as you work, so they are only cleaned when you click.

  • Xcode DerivedData14.2 GB
  • npm cache3.9 GB
  • Homebrew downloads1.3 GB
  • Cargo registry870 MB
  • Playwright browsers640 MB

Example sizes. Sweep measures yours.

Get your disk back.

Free and open source, notarized by Apple, and it updates itself.

  1. Drag it to ApplicationsIt lives in the menu bar, as a small broom.
  2. Run the first scanYou see every project and what could go. Nothing is removed.
  3. Choose how it cleansBy hand with a click, or automatically after a warning.