tree++: A Much Better Windows tree Command

February 6, 2026 · View on GitHub

中文

The tree command on Windows has seen virtually no changes since it was released nearly 40 years ago. In today’s LLM era, as a tool that is very commonly used to describe project structure, the only two options—/f and /a—are clearly insufficient. It is also not particularly fast.

tree++ is a comprehensive upgrade to tree, bringing the following to the Windows tree command:

  • An expanded parameter set, covering common features such as displaying file sizes, limiting recursion depth, changing output style, writing results to a file, and excluding specified directories (including honoring .gitignore)
  • Better performance via a Rust implementation; additionally supports multithreading in batch mode, delivering a significant scanning speed improvement
  • Achieves diff-level, bit-for-bit compatibility with the original Windows tree command in both parameters and output format, while also supporting Unix-style options (such as -f and --files).

tree++ is implemented in Rust and is open-sourced on GitHub.

Performance comparison (using C:\Windows as an example):

TypeTime (ms)Multiplier
tree /f (Windows Native)20721.901.00x
treepp /f7467.992.77x
treepp /f /nb7392.342.80x
treepp /f /nb /b3226.386.42x
treepp /f /nb /b /t 19123.002.27x
treepp /f /nb /b /t 25767.713.59x
treepp /f /nb /b /t 43948.735.25x
treepp /f /nb /b /t 83166.816.54x
treepp /f /nb /b /t 162704.677.66x

Installation

Download tree++.zip from Release, extract it to a suitable directory, and add that directory to your environment variables.

Open Windows Terminal and run:

treepp /v

You should see output like:

tree++ version 0.4.0

A Much Better Windows tree Command.

author: WaterRun
link: https://github.com/Water-Run/treepp

Installation is now complete.

After that, you can use it the same way as the normal Windows tree command:

treepp /f

Quick Reference

Option Set (Equivalent Forms)Description
--help -h /?Show help information
--version -v /VShow version information
--ascii -a /ADraw the tree using ASCII characters
--files -f /FShow files
--full-path -p /FPShow full paths
--human-readable -H /HRShow file sizes in human-readable form
--no-indent -i /NIDo not show tree connector lines
--reverse -r /RSort in reverse order
--all -k /ALShow hidden files
--size -s /SShow file size (bytes)
--date -d /DTShow last modified date
--exclude -I /XExclude matching files
--level -L /LLimit recursion depth
--include -m /MShow only matching files
--disk-usage -u /DUShow cumulative directory size
--report -e /RPShow trailing summary statistics
--no-win-banner -N /NBHide the Windows-native tree banner output
--silent -l /SISilent terminal output (use with output)
--output -o /OOutput results to a file (.txt, .json, .yml, .toml)
--batch -b /BUse batch mode
--thread -t /TNumber of scan threads (batch mode, default is 8)
--gitignore -g /GHonor .gitignore

For the full option set, see: tree++ Options Documentation