disktree Install

ShippingMIT or Apache-2.0Rust · NTFS MFT

disktree

Find what’s eating your drive and delete it without leaving the terminal.

cargo install disktree

Windows is the main target. The parallel scanner and the TUI also run on Linux and macOS. The fast MFT scan needs an NTFS drive and an elevated terminal on Windows.

Try it

Scan, mark, and see exactly what’s about to go.

Pick a scanner and watch it run. Then open a folder with Enter, mark things with Space (marks stay while you move around), and press d for the Recycle Bin or D to delete for good. The confirmation lists full paths, because two folders called target look the same otherwise.

C:\Users\you — 762.3 GB, 1,625,175 files (48 unreadable)

  1. 662.9 GB 87.0%████████▊ 1,004,904AppData\
  2. 39.2 GB 5.1%▌ 77,498Documents\
  3. 20.2 GB 2.6%▎ 59,412Dropbox\
  4. 18.7 GB 2.5%▎ 2,306Downloads\
  5. 9.6 GB 1.3%▏ 244,164.rustup\
  6. 7.9 GB 1.0%▏ 418Videos\
  7. 3.8 GB 0.5% 236,473.cargo\

Move to Recycle Bin

Move 2 item(s) (26.5 GB) to the Recycle Bin?

C:\Users\you\Documents\code\framewatch\target (15.1 GB) C:\Users\you\Documents\code\disktree\target (11.4 GB)

[Y]es [N]o

A simulation of disktree’s terminal screen, running in your browser. Nothing on your disk is read or deleted. The top level of C:\Users\you is the README’s screenshot; the folders under it and the rest of C:\ are made up. Scan times are the README’s measurements on the developer’s machine (a cold walk of a 1.6M-file folder took 41 s, a whole-volume MFT read 10–21 s), played back ten times faster.

Two scanners

It picks the fast one when it can.

The MFT read is used when the drive is NTFS, disktree can read the raw volume, and you asked for the volume root. Otherwise it walks, and the status bar says why in one line.

  1. Directory walk

    Any folder, any OS

    Reads directories in parallel, twice as many at once as you have cores by default (--threads changes it). Works on Windows, Linux and macOS. Folders it can’t read are counted and shown in the header, so treat the total as a floor.

  2. MFT read

    A whole NTFS drive

    Skips the directory tree and streams the volume’s master file table, the way WizTree does. It needs Administrator, so disktree relaunches itself elevated in a new window. --no-mft forces the walk, --no-elevate stops the relaunch.

Reading the numbers

Why it won’t match Explorer.

Sizes are apparent sizes (what dir shows), which can differ from the space a file takes on disk. Compressed, sparse and online-only cloud files all differ from what they occupy. The walk counts a hard-linked file once per name and the MFT read counts it once, so C:\Windows totals differ between them. Symlinks and junctions show as zero bytes and are never followed.

# check the two scanners against each other
cargo run --release --example crosscheck -- "C:\some\subtree"

# on the developer's machine, a 244,199-file subtree:
8,680 directories in both
8,680 byte-for-byte identical  100.00%

Capabilities

What it does.

People who live in a shell and want their disk space back.

  1. 01

    Parallel directory scanner, plus an NTFS MFT reader that scans a whole volume in one pass

  2. 02

    A size-sorted directory view that updates live while the scan runs

  3. 03

    Mark multiple items and send them to the Recycle Bin or delete them permanently

  4. 04

    Confirmation shows the full path of every item before anything is removed

Specification

What it’s built with, and when.

Pulled from the repository each time this site is built.

State
Shipping
Discipline
Developer tooling
Shape
Installed software
Started
Jul 2026
Last change
Jul 2026
Commits
16
  • Rust
  • NTFS MFT
  • TUI
  • Rust 100%

Next

Install disktree

It’s on crates.io. You’ll need Rust 1.88 or newer.

Any platform cargo install disktree

Windows is the main target. The parallel scanner and the TUI also run on Linux and macOS. The fast MFT scan needs an NTFS drive and an elevated terminal on Windows.

Questions, or something it doesn’t do yet? Email dmoore@dwmmholdings.com

This site isn't finished. Anything on it may still change, and none of it is binding until the site is live.