Back to Articles
Broot: The Ultimate Tree-Based File Navigator for Terminal Power Users

Broot: The Ultimate Tree-Based File Navigator for Terminal Power Users

fant0m

🚀 What is broot?

broot is a rust‑powered, interactive command-line tool that presents directory trees and enables fast navigation, search, and file manipulation—all with minimal keystrokes . It's designed as a next-gen alternative to tree, ls, and fuzzy-finder combos like fzf.

Key Features:

  • Interactive fuzzy search to jump into deep directories even if you don’t remember the full path .
  • Tree-view hierarchy that stays visible as you type a query, keeping your bearings in large folders.
  • Builtin verbs (:mv, :cp, :rm, :mkdir, etc.) to act directly on selected files without leaving the interface.
  • Panel support, like ncdu or Norton‑style split panes, for comparisons or transfers between directories .
  • Git integration: toggle .gitignore visibility, display statuses, branches, and more via :gf, :gs, or flags .

🔍 Efficient navigation & cleanup

1. Fuzzy & regex search

Typing within broot filters results instantly. Prepend / for regex, or c/ or cr/ for content searches .

2. Directory overview & size insights

Launch with flags like -sdp to show size, date, permissions, or use -w (whale-spotting) to highlight largest items .

3. Safe file ops

Execute file operations directly in the tree. Preview with Ctrl →, or open files with Enter (stay in broot) or Alt + Enter (cd out)

🎨 Customizable & cross-platform

  • Configurable colors, keybindings, and custom verbs via ~/.config/broot/ (in TOML/HJSON)
  • Supports Linux, macOS, and Windows (though performance is smoother on Unix-like systems) .

⚙️ Setup & installation

📥 Installation options:

sh
1# Ubuntu 
2sudo apt install build-essential libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev -y
3
4# RedHat, Fedora, CentOS
5sudo dnf install libxcb -y
6
7# openSuze
8sudo zypper --non-interactive install xorg-x11-util-devel libxcb-composite0 libxcb-render0 libxcb-shape0 libxcb-xfixes0
9
10# Arch Linux 
11sudo pacman -Syu --noconfirm libxcb
12
13# Broot installation
14cargo install --locked broot
15
16# or, for clipboard support:
17cargo install --locked --features clipboard broot
18

🧩 Shell integration:

On first launch, broot prompts to install the br shell function. That enables Alt + Enter to cd from broot directly into your shell .

💬 What users say

From Hacker News: broot offers "a clearer mix of tree, cd, and fuzzy searches" with two-pane support .

On Reddit, users praise regex search and integration with editors like Kakoune:

“Fellow console junkies, this is a fun product”.
“You can search in files with regexes: use cr/ (content regex)” .

🧭 Why choose broot?

  • Speed: real-time filtering in large trees.
  • Efficiency: fewer keystrokes vs toggling between CLI tools.
  • Versatility: file ops, previews, disk cleanup, git overlay—all integrated.
  • Customization: tune appearance, verbs, and shell behavior.

🔗 Getting started

Install with your preferred package manager or cargo.

Run broot or br in terminal.

Hit ? after a space to open interactive key/verb help.

Try fuzzy search, size sorting, git view, and panel navigation.

⌨️ Tips for power users

  • Use -w or flags -sdp for size, date, permission defaults.
  • Toggle views: Alt + h (hidden files), Alt + i (gitignored).
  • Panels: Ctrl → to spawn side tree. Use commands like :copy_to_panel.
  • Integrate with your editor: type :e or map Enter via config.
  • Content search: cr/regex_pattern searches file contents.

📝 Final thoughts

If you're annoyed by juggling ls, cd, tree, grep, and editor-to-shell workflows, broot integrates them into a single, fast, customizable CLI experience. Its combination of fuzzy navigation, visual directory awareness, direct operations, and git-aware features make it a standout among terminal file managers.

Let me know if you’d like a configuration walkthrough or shell integration guide!