Filesystem explorer for macOS

ESSM

Explore disk usage with a treemap, sunburst, or node graph. Inspect your filesystem as the scan unfolds.

Download for macOS

v0.1.1 · Apple Silicon · macOS 13+
All releases & release notes

ESSM / ROOT FILESYSTEM SCANApp recording
A root scan, from discovery to inspection.Real-time recording · 2720 × 1720
01 / VIEWS

Three ways to explore

Switch between a treemap, sunburst, and node graph of the same filesystem. Select a directory to inspect its size, drill in, or reveal it in Finder.

02 / DISCOVERY

Results while it scans

The view fills in as directories are indexed. Diagnostics show progress, indexing rate, and any failures, so you can see how much of the tree was read.

03 / ENGINE

Built for macOS

A Rust desktop interface backed by the Findex engine in Elixir and C. Scans stay on the starting filesystem by default, with an option to cross mount boundaries.

FROM THE REPOSITORY

Build from source.

You’ll need macOS, Erlang/Elixir, a recent Rust toolchain, and the Xcode Command Line Tools.

Full build instructions
Terminalzsh / bash
# Get the source
git clone https://github.com/HyperRays/ESSM.git
cd ESSM

# Build and launch the desktop app
make run

USING ESSM

A few useful details.

How do I scan the whole Mac?

Set the scan root to /. For the most complete result, grant Full Disk Access to ESSM (or your terminal when launching from source) in System Settings → Privacy & Security → Full Disk Access.

By default, the scanner stays on the starting filesystem, avoiding network volumes, external disks, and duplicate traversal of the APFS Data volume.

What does the displayed size mean?

ESSM sums the allocated size of regular files. On APFS, clones, hard links, snapshots, compression, and purgeable storage can make the space macOS would reclaim differ from the displayed total.

Can I start a scan from the command line?

Yes. Passing a root starts the scan immediately. For a source build, run:

desktop/target/debug/essm /

Options include --dark, --anonymize, --concurrency N, and --cross-mounts. Run essm --help for the full list.