For macOS · free and open source

Free space from build and tool caches, safely.

reclaim finds the Cargo target folders and package-manager caches that pile up across your projects, tells you which ones are in use right now and why, and cleans only what you pick, checking each one again just before it deletes.

macOS 13 or later. Apple silicon or Intel disk image.

Or install from Terminal

curl -fsSL https://reclaim.pawanpaudel.com.np/install.sh | bash

The script checks the download against the release’s SHA-256 sums and the app’s signing certificate against the one reclaim pins, puts reclaim in Applications and links the reclaim command into ~/.local/bin. Install guide

Illustration of reclaim’s menu-bar panel: 38.4 GiB in 7 items is safe to clean, at least 12.1 GiB more is in use or idle because a Claude Code session is working in one project, and the disk will have at least 99.6 GiB free after the clean.

Made for many worktrees and busy agents

If you run AI coding agents across many git worktrees, each worktree grows its own Cargo target folder, often tens of GB, and the package managers’ caches grow beside them. Deleting them by hand is guesswork: one of them may be in the middle of a build. reclaim shows how much space each would really free, with APFS clones counted once, and leaves anything in use alone.

What it cleans

Build output and caches that tools make again when they need them. Never your source, your documents or your settings.

Rust build folders
Cargo target and build-dir folders under your project folders. Light removes only incremental files, so the next build stays fast; Full removes the whole folder.
JavaScript caches
npm’s cache (and the older format an earlier npm left behind), npx entries unused for a week, the pnpm store and Yarn 1’s global cache.
Python and Go caches
uv’s cache, pip’s cache and the Go build cache. Never Go’s module cache.
Xcode DerivedData
Per-project DerivedData folders. Xcode rebuilds them on the next build, which is slower the first time.
Old agent CLI versions
Old Claude Code and Cursor CLI versions, kept after an update. The version in use stays.
Docker and Homebrew, when you ask
Docker’s build cache is cleaned only when you name it. Homebrew’s cleanup is off by default, because it also removes old installed formula versions.

Each tool’s cache is cleaned with that tool’s own command, with the cache named explicitly where the tool allows it and the network turned off. Folders are removed by reclaim itself.

Why it’s safe

  • You review before anything is deleted

    Scanning only reads. Nothing is cleaned until you choose items and confirm, and the app cleans exactly the scan you looked at. If the scan changed meanwhile, it asks you to review again.

  • It knows what is in use

    An item is left alone while a program runs from it or has files open in it, while its tool is running or holds its lock, for 15 minutes (by default) after it was last written, or while a Claude Code or cmux session works on the project. Every busy item says why.

  • It stays away from your work

    It cleans only build output and tool caches. It refuses folders that contain git-tracked files, paths on your protect list, your home folder, ~/Library and other shared folders, and Cargo folders outside your project folders. Deletes never follow symlinks or cross onto another disk.

  • It checks again just before it deletes

    Every clean takes a fresh look at running programs and the item’s files. An item that became busy is skipped, and every deletion gets a receipt in your history.

  • ~/code/api/target Safe No program uses it.
  • ~/code/api-wt-4/target In Use Claude Code session active
  • npm cache Safe npm is not running.
  • ~/code/web/target Idle 3 h A Claude Code session is open here, idle for 3 h.
  • Docker build cache Manual Cleaned only when you choose it
Example scan: each item gets a verdict and the reason for it.

No telemetry. Scanning and cleaning never use the network; reclaim checks for updates only when you ask, or once a day if you turn that on.

The same engine in Terminal

The menu-bar app runs the reclaim command and shows what it returns; it never decides on its own what is safe. Use the command directly in a terminal, a script or an agent’s session.

Add --json to scan, clean or history for machine-readable output. Every command and option

# a verdict and size per item
$ reclaim scan
# also busy items, and why
$ reclaim scan --all -v
# clean everything marked safe
$ reclaim clean --safe
# preview cleaning rows 1, 3
$ reclaim clean 1 3 --dry-run
# past cleans
$ reclaim history

Good to know

Opening it the first time

reclaim is signed with its own certificate, not an Apple Developer ID, so macOS does not recognize the developer. The Terminal install avoids this step. If you open the disk image yourself, macOS 15 or later blocks the first launch. Open System Settings › Privacy & Security, choose Open Anyway next to reclaim, and confirm. On macOS 13 and 14, Control-click reclaim in Applications and choose Open.

Command Line Tools

reclaim asks /usr/bin/git whether a folder holds tracked files. On a Mac without the Command Line Tools, a scan can show the “install developer tools” dialog, and items in git projects are not cleaned until they are installed.

Updates

Choose Check for Updates… in the menu bar, or Check Now in Settings › General. Automatic checks are off until you turn them on, and an update installs only when you click Install and Relaunch.

Uninstalling

Quit reclaim and turn off Open at login first. Then curl -fsSL https://reclaim.pawanpaudel.com.np/install.sh | bash -s -- --uninstall moves reclaim to the Trash and removes the command link in ~/.local/bin; a link in /usr/local/bin is only reported. --purge also removes reclaim’s state folder and its folders in ~/Library, but keeps reclaim.toml. For a complete removal, use Settings › Advanced › Remove reclaim Data… before uninstalling. Uninstall guide