Crumbs app icon

Free & open-source Mac app

Find what your AI agents left behind.

Claude Code, Codex and friends leave a worktree, a node_modules and a tmp folder behind every task. Crumbs finds them and tells you, for each one, whether it is safe to throw away, and why.

v0.1.2 · 1.4 MB · macOS 14+ · Apple silicon & Intel · Notarized · MIT

Crumbs listing agent worktrees, node_modules and build output, each with a Safe, Check or Keep verdict and the reason

The first scan on my own Mac found 312 GB. 212 GB of it was safe to clear, including 58 forgotten Claude Code worktrees at about 3 GB each.

Deleting is easy. Knowing what to delete is the product.

Every crumb gets a verdict, and every verdict shows its evidence. The worst reason wins.

Safe

Throw it away

  • Clean checkout, already merged or pushed
  • Untouched for 21 days
  • Regenerable: pnpm install brings it back
Check

Look first

  • Holds an .env.local that differs from the main checkout
  • Orphaned worktree: git can't vouch for it
  • Changed 2 days ago; this kind waits 3
Keep

Hands off

  • In use right now by node (48213)
  • 2 uncommitted files would be lost
  • Commits that exist only in this detached checkout

What it checks before calling anything safe

Running processes
A shell, dev server or agent working inside the folder keeps it.
Uncommitted work
Modified and untracked files in a worktree keep it.
Orphaned commits
A detached checkout with commits no branch or remote has keeps it.
Recent changes
Anything touched in the last 24 hours keeps it.
Secrets
Untracked .env and key files that differ from the main checkout get flagged.
Idle time
Each kind waits its own number of days before it counts as safe.

And if it is still wrong

Trash, never delete

Everything goes to the Trash, so you can put it back.

Re-checked at the last second

Right before trashing, Crumbs checks again and skips anything that changed.

Git stays honest

After a worktree goes, Crumbs runs git worktree prune. Branches stay in the repo.

Never in the way

It never takes git locks, so it cannot collide with an agent mid-commit.

Your patience, your numbers

Clear agent worktrees after 3 days but keep node_modules for 60? Set how long each kind waits, or switch a kind off. The list re-judges instantly, no rescan.

Some things are not negotiable: anything in use, holding uncommitted work, or changed in the last day is always kept.

Crumbs rule settings with a waiting period and on/off switch for each kind of leftover

What it finds

Claude Code worktreesCodex worktreesAny linked git worktreenode_modules.next · dist · .astro · .turboRust targetSwiftPM .buildPython .venvIgnored tmp foldersPlaywright reportsXcode DerivedData

Build and scratch folders only count when git says they are ignored, so a committed build/ is never touched. Rules are small JSON files: adding a new kind is a data-only pull request.

Install

brew install --cask nilveryboring/tap/crumbs

Or download the zip from GitHub Releases, unzip it and drag Crumbs to Applications. It is signed and notarized by Apple.

No account, no network requests, no analytics. Everything stays on your Mac.

Also a CLI

The same engine, read-only, with JSON output for scripts and agents.

swift run -c release crumbs scan
crumbs scan --days node-modules=60 --json