A smarter cd command that learns your most-used directories and lets you jump to them with a few keystrokes, across all major shells.
Canop/broot
A terminal directory navigator that shows trees with unlisted content collapsed, with fuzzy search, file operations, previews and git status.
Open-source alternative to:tree
- Stars
- 13,083
- Forks
- 327
- Open issues
- 108
- Last commit
- yesterday
What is it?
Broot is a command-line tool for viewing, navigating and searching directory trees. Instead of dumping a full recursive listing like `tree`, it shows a large directory in a compact, navigable view and respects `.gitignore` so unwanted files stay out of the way. Hidden and gitignored files can be toggled on and off with keyboard shortcuts.
You type a few letters to fuzzy-match a directory, then press alt+enter to leave broot and land in the shell in that directory. Searches can use regular expressions, file contents (`c/` prefix), and logical combinations of patterns. Files can be opened, previewed, edited or moved, copied and deleted, with custom verbs and shortcuts configurable in a config file. A panel mode lets you work with two directories side by side.
Broot also offers size, date and permission columns, a whale-spotting mode for finding what takes disk space, a filesystem usage view, and git commands that show file statuses, branch ahead/behind counts and diffs for changed files.
Key features
- 01Collapses unlisted content in directory trees, respecting .gitignore.
- 02Fuzzy search with regex, file content and logical pattern operators.
- 03Alt+enter to leave broot and cd into the selected directory.
- 04Built-in move, copy, delete and mkdir, plus custom verbs and shortcuts.
- 05File previews, including images in Kitty and WezTerm terminals.
- 06Git status view and filtered git status listing.
Use cases
- Exploring a large project directory without scrolling through a full tree listing.
- Jumping to a deeply nested directory from the shell with a few keystrokes.
- Finding which files or folders consume the most disk space.
- Reviewing and staging changed files in a git repository before committing.
Quick start
- 1
Read the installation instructions on the project website
- 2
Launch broot with the overview option to see a directory
br -s
Things to know
- The README does not include install commands; installation details are only on the external website.
Topics
FAQ
- What is broot?
- A terminal directory navigator that shows trees with unlisted content collapsed, with fuzzy search, file operations, previews and git status. Broot is a command-line tool for viewing, navigating and searching directory trees. Instead of dumping a full recursive listing like `tree`, it shows a large directory in a compact, navigable view and respects `.gitignore` so unwanted files stay out of the way. Hidden and gitignored files can be toggled on and off with keyboard shortcuts.
- Is broot free to use? What license does it have?
- broot is open source under the MIT license. Check the license terms before using it in commercial products.
- Is broot still maintained?
- Actively maintained. The last commit to broot was on Oct 18, 2026.
- What can I use broot for?
- Exploring a large project directory without scrolling through a full tree listing. Jumping to a deeply nested directory from the shell with a few keystrokes. Finding which files or folders consume the most disk space. Reviewing and staging changed files in a git repository before committing.
- How do I install broot?
- Read the installation instructions on the project website Launch broot with the overview option to see a directory: br -s
- Where can I get broot?
- The source code and installation instructions are on GitHub: https://github.com/Canop/broot
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
CLI proxy that filters and compresses shell command output before it reaches an AI coding agent's context, cutting token use.
A cross-platform, GPU-accelerated OpenGL terminal emulator that relies on other tools like tmux for tabs and splits.
A minimal, customizable cross-shell prompt written in Rust that shows relevant project and environment info.
A user-friendly interactive command line shell for macOS, Linux and other Unix-like systems, with syntax highlighting and autosuggestions out of the box.
A terminal tool that replays Git commits as animated typing sessions with syntax highlighting and file tree transitions.