Skip to main content

broot — Interactive Tree File Manager for the Terminal

broot is an interactive, full-screen directory explorer for the terminal.

It combines:

  • Tree-style visualization (like tree)
  • Fuzzy search (like fzf)
  • File actions (like a minimal file manager)
  • Shell integration (cd, open editor, delete, move, run commands)

Unlike ls or tree, broot is not just for viewing — it is for navigating and acting.

For WordPress VPS workflows, broot is extremely powerful when managing:

  • /var/www/html
  • wp-content/plugins
  • wp-content/uploads
  • /home/backups
  • /var/log

1. Installation & Setup

broot is not installed by default.

Install (Ubuntu/Debian)​

sudo apt install broot

Install (Latest via Cargo)​

cargo install --locked broot

Install the br Shell Function (Important)​

broot --install

This installs the br shell function.

You should use:

br

instead of:

broot

Why?

Because br allows :cd inside broot to change your shell directory after exit.

Verify Installation​

broot --version
command -v br

2. What Makes broot Different

ToolPurpose
----
lsFlat listing
treeStatic hierarchy
rangerFull TUI file manager
brootInteractive filtered tree with actions

Key strengths:

  • Filter-as-you-type search
  • Built-in actions called “verbs”
  • Git-aware (respects .gitignore)
  • Toggle file info instantly
  • Customizable via conf.toml

3. Core Usage Model

Launch​

br [PATH]

Example:

br /var/www/html

If no path is given, it starts in the current directory.

Inside broot​

1. Filter​

Start typing immediately:

wp-config
plugins
error.log

The tree narrows in real time.

2. Use Verbs​

Verbs start with :.

Examples:

:cd
:edit
:rm
:mv
:size
:perm

Press ? for help inside broot.

4. Essential Verbs & Toggles

Change Directory (:cd)​

Moves your shell into the selected directory.

Works only when launched with br.

Edit File (:edit)​

Opens the selected file in $EDITOR.

Example use case:

Edit wp-config.php quickly.

Remove File (:rm)​

Deletes the selected file or directory.

Use carefully.

Move File (:mv DEST)​

Move selected item.

Example:

:mv 2025/11/

Toggle File Size (:size)​

Displays file sizes.

Useful in:

wp-content/uploads

to detect large folders.

Toggle Permissions (:perm)​

Shows Unix permission bits.

Useful for WordPress permission audits.

Toggle Hidden Files​

Press:

alt+h

Shows .htaccess, .env, hidden files.

Toggle Ignored Files​

Press:

alt+i

Shows files normally hidden by .gitignore.

5. Useful Launch Flags

Summarized View (-s)​

br -s /var/www/html

Shows condensed overview.

Very useful for large directories.

6. Configuration (conf.toml)

Config file location:

~/.config/broot/conf.toml

Open from inside broot:

:os

Set Default Flags​

default_flags = "-ps"

Always show:

  • permissions
  • sizes

Create Custom Verbs​

Example: open with Neovim

[[verbs]]
key = "E"
execution = "nvim {file}"

Example: tail logs

[[verbs]]
key = "t"
execution = "tail -n 100 -f {file}"

Example: open with less

[[verbs]]
key = "L"
execution = "less {file}"

7. WordPress VPS Workflows

Inspect WordPress Root​

br -s /var/www/html

Quick structural overview.

Jump to Plugin Directory​

br /var/www/html/wp-content/plugins

Type plugin name → :cd.

Audit Upload Size​

br /var/www/html/wp-content/uploads

Then type:

:size

Permission Audit​

br /var/www/html

Then:

:perm

Edit wp-config.php​

br /var/www/html

Type wp-config.php → :edit.

Inspect Nginx Logs​

br /var/log/nginx

Select error.log → custom verb (less or tail).

Clean Old Backups​

br /home/backups

Filter year → :rm.

8. Benefits

  • Faster than repeated cd + ls
  • Visual structure without overwhelming output
  • Fuzzy filtering reduces typing
  • Custom actions eliminate repetitive commands
  • Git-aware by default
  • Integrates cleanly with shell

9. Best Practices

  • Always use br, not raw broot.
  • Keep default view minimal for speed.
  • Use toggles only when needed.
  • Define WordPress-specific verbs in config.
  • Be careful with destructive verbs (:rm).

10. Troubleshooting

ProblemCauseFix
---
:cd doesn’t persistUsed broot instead of brRun broot --install
Hidden files missingNot toggledPress alt+h
Ignored files missingGit ignore activePress alt+i
Slow performanceLarge tree expandedUse -s
Custom verb not workingWrong syntaxCheck conf.toml

11. Cheat Sheet

br # Launch broot
br -s # Summarized mode
br /var/www/html # Start at path

# Inside broot:
? # Help
:cd # Change directory
:edit # Open file in editor
:rm # Remove file
:mv dest/ # Move file
:size # Toggle sizes
:perm # Toggle permissions
alt+h # Toggle hidden files
alt+i # Toggle ignored files
:os # Open config

12. Summary

broot is an interactive file navigation and execution tool.

It replaces repetitive patterns like:

cd
ls
cd
ls
grep
cd ..

with:

  • One screen
  • Instant filtering
  • Direct action execution

In WordPress VPS management, it becomes a powerful navigation and audit companion.

Mini Knowledge Check​

  1. Why should you use br instead of broot?
  2. Which toggle shows hidden files?
  3. Where are custom verbs defined?
  4. What does -s change?
  5. Which verb shows file sizes?