An interactive disk-space scanner for macOS — see what's eating your drive before you clean it.
gomop scans the places where gigabytes quietly pile up on a Mac — dev caches, build artifacts, app leftovers, forgotten downloads, duplicate files — and presents them in a fast, keyboard-driven terminal UI. Every entry explains what it is, why it's reclaimable, and how safe it is to remove.
gomop is read-only (v1). It never deletes anything — it shows you exactly what could go, with full paths and safety ratings, and lets you jump straight to any item in Finder. Deletion is planned for v2.
gomop · candidates ≤ 23.4 GB
▾ Dev caches & artifacts 12.1 GB
Go module cache (use: go clean -modcache) 1.0 GB
npm cache 389.7 MB
▸ Project build artifacts (regenerable) 145.4 MB
▸ System & app caches 8.2 GB
▸ Large & old files 2.4 GB
▸ Duplicate files 0.7 GB
╭──────────────────────────────────────────────────────────────────╮
│ SAFE Go build cache │
│ Go's incremental build cache. Rebuilt automatically — the next │
│ build is just slower. │
╰──────────────────────────────────────────────────────────────────╯
~/Library/Caches/go-build
↑/↓ · ⏎ expand · o Finder · y copy · r refresh · ? help · q quit
Dev caches & artifacts — package caches (npm, pnpm, Yarn, pip, cargo, Go, Homebrew, pub, Gradle, Maven, CocoaPods, SwiftPM, Poetry, uv, Playwright/Puppeteer browsers), Xcode DerivedData & Archives, simulators, Android emulator images, Docker — plus build artifacts inside your own projects (node_modules, target, build, dist, .venv, …), detected only when the matching project file (package.json, Cargo.toml, pubspec.yaml, …) sits next to them, with an "untouched > 90 days" flag. It also spots version graveyards: per-version folders old JetBrains IDEs and iOS versions leave behind, keeping only the newest.
System & app caches — ~/Library/Caches with a per-app breakdown, logs, browser profile caches (web content only — bookmarks, passwords and history are never touched), local iOS device backups, and Application Support folders whose app appears to be uninstalled.
Large & old files — big files and installers in Downloads, Trash contents, forgotten macOS installer apps, iOS firmware images, and month-old screenshots on the Desktop. Local Time Machine snapshot count is shown in the header (not as a list row) — thin them with tmutil once a real backup exists.
Duplicate files — byte-identical copies in Downloads, Desktop and Documents, verified by checksum (size → 64 KB probe → full SHA-256), shown as sets with the wasted bytes counted.
Every entry carries one of three ratings, shown with its explanation in the panel at the bottom:
| Badge | Meaning |
|---|---|
SAFE |
Recreated automatically — caches, logs, build indexes. |
SAFE · REBUILD NEEDED |
Nothing is lost, but the next build or install re-downloads it. |
REVIEW FIRST |
Your call — backups, archives, your own files, Docker volumes. |
Missing tools are skipped silently, protected folders are never forced, and sizes that would be counted twice (a dev cache that also lives in ~/Library/Caches, for instance) are counted once.
Requires Go 1.24+ and macOS.
git clone https://github.com/YOUR_USER/gomop.git
cd gomop
go build -o gomop .
./gomopA Homebrew formula is planned.
gomop # interactive TUI
gomop -list # plain-text report (for piping, scripts, or a quick look)| Key | Action |
|---|---|
↑/↓ or k/j |
move selection |
pgup/pgdn (or ctrl+u/ctrl+d) |
page up / down |
g / G (or home/end) |
jump to top / bottom |
⏎ / space / h/l / ←/→ |
expand or collapse |
o |
reveal the selected item in Finder |
y or c |
copy the selected path to the clipboard |
r |
rescan (cancel in-flight scan and start over) |
? |
show key help in the status line |
q |
quit |
The four categories scan concurrently; sizes stream into the UI live as they're computed. A full scan typically takes a few seconds. Deletion is not available in v1 (d is a no-op stub until v2).
On first launch macOS may ask for permission to access your Desktop, Documents or Downloads folder — that's the duplicate scanner reading file sizes. gomop only ever reads.
- v2: actual deletion — per-item, with confirmation, Trash-first
- Homebrew formula