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)
- 662.9 GB 87.0%████████▊ 1,004,904AppData\
- 39.2 GB 5.1%▌ 77,498Documents\
- 20.2 GB 2.6%▎ 59,412Dropbox\
- 18.7 GB 2.5%▎ 2,306Downloads\
- 9.6 GB 1.3%▏ 244,164.rustup\
- 7.9 GB 1.0%▏ 418Videos\
- 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
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.
Directory walkAny folder, any OS
Reads directories in parallel, twice as many at once as you have cores by default (
--threadschanges 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.MFT readA 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-mftforces the walk,--no-elevatestops 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.
- 01
Parallel directory scanner, plus an NTFS MFT reader that scans a whole volume in one pass
- 02
A size-sorted directory view that updates live while the scan runs
- 03
Mark multiple items and send them to the Recycle Bin or delete them permanently
- 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%
Related work
Built alongside disktree
Next
Install disktree
It’s on crates.io. You’ll need Rust 1.88 or newer.
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@