Native disk-space explorer

See where your disk went.

Disktree scans as soon as it opens and draws your disk as a nested treemap, colored by size. Move through it with a pinch, a drag or the keyboard, mark what you no longer need, and review every path before it goes.

macOS · Linux · Open source

Install

curl -fsSL https://huacnlee.github.io/disktree/install.sh | sh

The installer selects your platform and verifies the release checksum. No sudo required.

Read the installer ↗

Apple silicon on macOS 14 or later, or x86_64 Linux with GTK 4.14 or later. macOS builds are not notarized, so first launch may need approval in Privacy & Security. Installation guide ↗

Disktree showing a home directory as a nested treemap, with a contents list and free disk space in the sidebar

Find it. Check it. Clear it.

One pass from a full disk to a reviewed list of what to remove.

  1. Open it.

    Disktree scans immediately and remembers the last directory. Point it at another folder any time.

  2. Move through the map.

    Pinch on a MacBook, drag with the mouse, or zoom from the keyboard. Click a tile to select it, click it again to enter. Breadcrumbs take you back in one click.

  3. Mark and review.

    Point at a tile and press Space. Marked items turn amber, and nothing is removed until you have read the full paths and confirmed.

A map you can trust with your files.

Color by size
Tiles run from slate through blue, teal and green to amber and red as they grow, so what takes the most space stands out first. Details name what each item is: code, Git data, caches, builds and more.
Three ways to measure
Disk size counts allocated blocks, Apparent counts logical bytes, and Files weights the map by file count.
Deleting takes a decision
Marking deletes nothing. Items move to the system Trash after review; permanent deletion and emptying the Trash each ask for separate confirmation.
Follow the removal
Progress shows what has been removed and the current path while items move to Trash or are deleted. The map and free space refresh when it finishes.
Totals that say what they mean
Hard-linked bytes are counted once. Symbolic links, other devices and cloud-only folders are not traversed, and unreadable paths are reported.
Native, and self-contained
Rust from scanner to interface, built with Native Shell. Large scan indexes stay in Rust, and Python, Node and nsh are not needed to run it.