Skip to content

Repository files navigation

tree++: A Much Better Windows tree Command

中文

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
  • Retains the familiar parameters and output layout of the original Windows tree command, 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 deterministic directory fixtures):

Type Baseline (ms) treepp (ms) Multiplier
Streaming 47.38 47.39 1.00x
Batch /T 1 66.42 48.61 1.37x
Batch /T 2 49.56 38.42 1.29x
Batch /T 4 41.48 36.33 1.14x
Batch /T 8 37.97 29.96 1.27x
Batch /T 16 39.43 29.97 1.32x
Batch /T 32 24.17 23.35 1.04x
Disk usage 23.74 24.83 0.96x
Disk usage /L 98.33 67.14 1.46x
.gitignore 81.41 38.70 2.10x
Wide tree 274.41 277.12 0.99x
Deep tree 25.20 26.54 0.95x
Many small files 32.83 38.44 0.85x

Installation

Download the Windows x64 package 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:

treepp 1.0.0

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 /V Show version information
--ascii -a /A Draw the tree using ASCII characters
--files -f /F Show files
--full-path -p /FP Show full paths
--human-readable -H /HR Show file sizes in human-readable form
--no-indent -i /NI Do not show tree connector lines
--reverse -r /R Sort in reverse order
--all -k /AL Show hidden files
--size -s /S Show file size (bytes)
--date -d /DT Show last modified date
--exclude -I /X Exclude matching files or directories
--level -L /L Limit recursion depth
--include -m /M Show only matching files
--disk-usage -u /DU Show cumulative directory size
--report -e /RP Show trailing summary statistics
--no-win-banner -N /NB Hide the Windows-native tree banner output
--silent -l /SI Silent terminal output (use with output)
--output -o /O Write output to a file or stdout
--format /FMT Select text, JSON, YAML, or TOML output
--errors -E /ERR Select warn, strict, or ignore error handling
--batch -b /B Use batch mode
--thread -t /T Number of scan threads in batch mode
--gitignore -g /G Honor .gitignore
--auto-exclude /AE Enable generated/cache directory exclusions
--no-auto-exclude /NAE Keep generated/cache directory exclusions disabled

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

About

tree++: A much better Windows `tree` command—more features, faster performance, and diff-level compatibility with the original `tree`. Implemented in Rust.

Topics

Resources

Stars

88 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages