broot

A new way to see and navigate directory trees — fast, fuzzy, and interactive.

Screenshot of broot

broot is an interactive terminal tool for exploring directory trees. Unlike tree, which dumps an overwhelming flat list, broot lets you navigate, search, and act on files in real time — all without losing sight of the overall structure.

Features

  • Fuzzy search — type part of a filename anywhere in the tree and broot instantly filters down to matches
  • Never lost — the tree always stays visible, giving context even when deep in a search
  • Git integration — shows git status indicators next to each file
  • File preview — preview text files, images, and binary files in a split pane
  • Verbs — define custom commands (e.g. open in editor, diff two files) triggered by keyboard shortcuts
  • br shell function — the killer feature: cd into any directory by navigating in broot, then hitting <enter> to actually change your shell's working directory

Installation

cargo install broot

On first run, broot will ask to install the br shell function, which enables the directory-changing feature:

broot --install

Or via package manager:

# macOS
brew install broot

# Arch Linux
pacman -S broot

# Debian / Ubuntu
apt install broot

# Fedora
dnf install broot

Usage

# Open broot in the current directory
br

# Open broot in a specific directory
br ~/projects

# Show hidden files
br -h

# Show git status
br -g

# Show file sizes
br -s

# Open with a preview panel
br -p

Verbs

Broot's real power is its verb system. While browsing, you can type a colon followed by a verb to act on the selected file:

:e          # open in $EDITOR
:cp newname # copy the file
:mv dest    # move the file
:rm         # delete the file

Custom verbs can be added to ~/.config/broot/conf.hjson.