Skip to main content
Mole
Overview Features Testimonials Pricing FAQ Blog
EnglishEN 简体中文中 繁體中文繁 日本語日 한국어한 FrançaisFR DeutschDE ItalianoIT EspañolES
Buy now Download
Home/Blog

Choosing a Mac Disk Analyzer Beyond DaisyDisk

Storage · July 21, 2026 · 9 min read

A disk analyzer answers one narrow question: which directories hold the weight. The interesting part is that two correct analyzers pointed at the same volume report different totals, and neither one is broken. APFS clones, hard links, sparse files, local snapshots, and directories the scanner is not allowed to read each move the number in a predictable direction. So the choice is really two choices: which map shape you read fastest, and whether you understand what the total in front of you counts.

The map shape is the real difference

Every analyzer here measures the same thing and draws it differently. DaisyDisk uses concentric sunburst rings. GrandPerspective and Mole use treemaps, where each folder is a rectangle scaled to its size. OmniDiskSweeper prints a sorted list, largest first. ncdu draws that list in a terminal. macOS itself shows a stacked bar of categories with no paths at all.

What a tool does after you find the item matters just as much. Revealing in Finder keeps the decision with you and costs an app switch. Deleting in place puts the whole burden on the recovery path, so a tool that deletes without going through the Trash should only be pointed at data you can rebuild.

The choices

The built-in Storage view, which is often enough

Apple menu, System Settings, General, Storage. Apple's Storage settings documentation describes what you get: a bar chart of used and available space by category, per-volume detail, and three recommendations (Store in iCloud, Optimize Storage, Empty Trash automatically). The info button beside a category opens the files inside it, and Documents is sortable by name, kind, last accessed, and size.

That is a real analyzer for one case: a single heavy category, mostly documents and media. Its boundary is System Data, and Apple's own storage article states that macOS manages that category and you cannot. When the weight lands there, the built-in view has told you everything it can, and a path-level map starts earning its place.

DaisyDisk for a polished sunburst

DaisyDisk is the reference implementation of the visual analyzer on macOS and is actively maintained. Its current feature set covers the sunburst map, spacebar preview, a collector you drag items into before deleting them as a batch, an administrator scan mode for files a normal user cannot read, cloud disk scanning, snapshot management, and hard-link detection. It requires macOS 10.13 or newer.

Licensing is a one-time purchase covering several personal Macs, with a money-back window; check the pricing page for current terms. The boundary is scope by design: it maps and deletes, and it does not know that a folder belongs to an app you uninstalled or that a cache rebuilds on next launch. Attribution stays your job.

GrandPerspective for an open-source treemap

GrandPerspective has drawn macOS treemaps for close to two decades and still ships, with version 3.7.2 released in May 2026 under the GNU General Public License. Beyond the map it offers several color-mapping schemes (by name, extension, size, modification time), filtering, hard-link support, cloud storage analysis, scan compression with quick refresh, export as image or text, and eleven localizations. It requires macOS 11 or higher.

It is free from SourceForge and also sold on the App Store, and the project states you get the same app either way, so the paid listing is a way to support the developer. The interface shows its age next to a commercial app. If that does not bother you, this is where most people can stop.

OmniDiskSweeper for a plain sorted list

The Omni Group still offers OmniDiskSweeper as free software, described on its own page as showing the files on a drive largest to smallest and letting you trash or open them. There is no map at all, which is the appeal: a column of sizes has no learning curve.

Its maintenance status deserves an honest note. It sits on Omni's side-project page rather than in the main product line, and the public download index still lists builds against old macOS releases. Omni's blog records an updated OmniDiskSweeper in September 2025, and the test-build channel published 1.16 builds that month requiring macOS 14 or later. Treat it as maintained slowly, and check that the build you get runs on your macOS version.

ncdu for terminals and remote disks

ncdu is an MIT-licensed disk usage analyzer with a text-mode interface, and the only tool here that works identically over SSH. Two lines are current: the Zig rewrite (2.9.2, October 2025) and a C LTS release (1.22, March 2025). It installs on macOS through Homebrew or MacPorts. It supports parallel scanning, JSON export and import plus a compressed binary format, deletion from inside the interface, and it distinguishes apparent size from disk usage, which is exactly the distinction the next section is about.

Reach for it for scriptability and remote access, not comfort. Deleting from a terminal browser is unforgiving; use it to locate, then remove through Finder unless you are certain.

Mole's Analyze tab for a map inside a wider toolkit

Mole draws a treemap of the whole disk with single-click drill-down and a breadcrumb trail; right-click gives Move to Trash (through the system Trash, so it is recoverable) or Reveal in Finder, and navigational roots such as /, /Users, and /Applications cannot be trashed. Entries it cannot size are surfaced with a badge and a retry instead of vanishing from the total, which answers a failure mode described below. The boundaries are worth stating plainly: the license is a one-time purchase for two Macs on macOS 14 or later, results are cached for 24 hours so a stale total is possible, and the Mac app has no JSON export, which the free open-source CLI provides through mo analyze --json.

Under the hood: why two analyzers disagree about the same disk

Every difference below is a legitimate choice by the scanner author, not an error.

APFS clones. Copying a file in Finder on APFS does not duplicate its blocks; the copy shares them until one side is modified. An analyzer that sums logical file sizes counts both copies in full and reports more than the volume holds.

Hard links. One inode can carry many names. A walker that counts every name inflates the total; a walker that records each (device, inode) pair and skips repeats matches what the file system charges you. This is why Homebrew, pnpm, and uv trees look enormous in some tools and ordinary in others.

Sparse files. A file's apparent size can vastly exceed its allocated blocks. The classic case is Docker.raw, which reports a large virtual size while occupying much less. Reading size and reading allocated blocks give different answers.

Snapshots and purgeable space. Local Time Machine snapshots and purgeable data occupy the volume but belong to no directory a walker can visit. No sum over the directory tree will ever include them, so the gap between an analyzer's total and Finder's figure is often exactly this.

What the scanner cannot read. Directories requiring Full Disk Access or root cannot be stat'ed by an unprivileged process. The danger is not the failure, it is the silence: an unreadable subtree contributing zero looks identical to an empty one. Administrator scan modes and explicit unsized-entry badges exist for this reason.

Symlinks. Following them counts the target's bytes somewhere they do not live and risks counting the same data twice. Resolving without descending is the safer default, and the difference shows up most in developer trees.

Then there is the scan method. A userland walk with fts(3) or getattrlistbulk keeps everything in one process, which makes cancellation, progress, and hard-link dedup straightforward, at the cost of writing the traversal yourself. Shelling out to du(1) inherits a battle-tested walker but returns one number at the end, with no progress, awkward cancellation, and a subprocess per directory. Tools that do both, using du as a fallback when a directory exceeds a timeout, inherit both accounting models at once, which is another reason two totals can differ by a few percent.

One volume scanned into five accounting branches, APFS clones, hard links, sparse files, snapshots, and directories the scanner cannot read, feeding two different totals.
Every branch here is a legitimate choice by the scanner author, which is why two correct analyzers disagree about the same volume.

Quick comparison

Tool Map shape After it finds the item Licensing model
Storage settings Category bar, no paths Delete from category browser Included with macOS
DaisyDisk Sunburst rings Collector, then batch delete One-time purchase
GrandPerspective Treemap Reveal or delete, plus export Open source, GPL
OmniDiskSweeper Sorted size list Trash or open Free
ncdu Terminal list Delete in place, JSON export Open source, MIT
Mole Treemap with drill-down Reveal or Trash, roots protected One-time purchase
An in-process directory walk using fts or getattrlistbulk, giving live progress, clean cancellation, and hard-link deduplication, beside shelling out to du, which returns one number at the end and inherits du's own accounting.
Neither method is wrong, and a tool that falls back from one to the other inherits both accounting models, which is another reason two totals differ by a few percent.

A repeatable way to find the weight

Read the container first. Compare what df reports with the APFS capacity view and the Storage pane, so you know whether you face real physical pressure or a classification artifact such as snapshots and purgeable space. Only then run an analyzer, and give it whatever access it needs so nothing goes missing quietly.

Drill into the largest branch until you reach a directory whose owner you can name. Compare its total against one other measurement before acting: du -sh on the same path, or Get Info in Finder. When those disagree, the reason is almost always on the list above, and knowing which one tells you whether the space is recoverable at all.

Delete replaceable data first and keep it in the Trash until the affected app still works. For the manual version of this workflow, see how to find and remove large files; when the weight lands in a category with no path at all, see what System Data really is.

Mole brings disk analysis, app maintenance, and review-first cleanup into one native app, while leaving system-owned data to macOS and the apps that own it.

Buy Mole Try it free

Keep reading

  • StorageFree Up Photos Storage on Mac Safely4 min read
  • StorageClear Mac Caches Without Losing Data5 min read
  • StorageDelete Old iPhone Backups Safely3 min read

Mole · 鼴

Cleanup, software, and status for your Mac.

v1.11.1 (98) · Release notes

Support

Help Documentation Releases

Legal

Terms of Service Privacy Policy Refund Policy

Resources

Blog CLI Tool Affiliates Program

Connect

Twitter hi@mole.fit

Only official site mole.fit · Fake sites may ship unsafe downloads

For your Mac, or a friend's. The CLI stays free for terminal workflows. May your time be your own.