Skip to content

Build log · macOS app

How I built MacSweep.

Built, not released yetmacOS 14+Oct 2026 to Nov 2026

In short

MacSweep is a native macOS app that frees up storage and shows a developer what is running on their Mac. It finds the build folders, caches, old toolchains and AI agent sessions that fill a developer’s disk, and the dev servers and git worktrees left behind. It’s built, and not released yet.

The problem

A developer’s disk fills up with things a normal cleaner doesn’t understand: node_modules and .next folders in every project, unused Node and Python versions, Homebrew leftovers, Claude Code and Codex sessions for folders that no longer exist. Dev servers keep running on ports nobody remembers starting. Cleaning it by hand means knowing which of it still belongs to a project you’re working on.

What I built

  • A dashboard with free space, what the used space is made of, live CPU, GPU and memory, and a Developer row for servers, repos, Homebrew, agents and toolchains.
  • Developer sections: every listening port with the project that started it, every git repo with uncommitted or unpushed work, worktrees that are safe to remove, build folders grouped by repo, toolchains, Homebrew and local databases.
  • An AI Agents section for Claude Code and Codex sessions by project, including transcripts of deleted folders and servers the agents left running.
  • Storage sections: about 45 cache locations, old downloads, a folder browser sorted by size, large files, duplicates by SHA-256 and a weekly view of which folders grew.
  • A ⌘K command palette, and a sweep command for the terminal (sweep ports, sweep kill 3000, sweep junk --clean).

Key decisions

  1. Nothing is deleted without a confirmation that shows what goes and how much.

    A cleaner earns trust by being boring. Moves to the Trash can be undone with ⌘Z, and “freed” only counts space that was actually released.

  2. Caches and build folders are deleted directly, but your own files go to the Trash.

    Trashing a cache frees nothing until the Trash is emptied. A personal file, though, should always be recoverable.

  3. Cloud-only iCloud files are never read.

    Reading one makes macOS download it, so a scan would fill the disk it is meant to clear.

  4. Active projects are never preselected, and every path is checked again just before deletion.

    System folders, ~/.ssh, keychains, iCloud Drive and your own Protected list are always refused. Every removal is logged.

More of how I build.

Every product here has a build log: the problem, the decisions and the stack.