Aller au contenu
Outils medium

broot : navigateur de fichiers interactif pour le terminal

23 min de lecture

broot

broot transforme la navigation en terminal. Écrit en Rust, broot affiche vos répertoires dans une vue arborescente intelligente, filtre en temps réel, prévisualise les fichiers, et s’intègre avec Git — le tout sans quitter le terminal. Fini les ls | grep en cascade ou les find interminables : tapez quelques lettres et broot vous montre exactement ce que vous cherchez.

  • Comprendre les avantages de broot vs tree/find/ls
  • Installer broot sur Linux, macOS et Windows
  • Naviguer efficacement dans vos répertoires
  • Rechercher des fichiers avec filtres et regex
  • Identifier les gros fichiers avec le mode whale-spotting
  • Utiliser l’intégration Git pour suivre vos modifications
  • Personnaliser broot avec des verbes et raccourcis
TâcheCommandes classiquesbroot
Voir l’arborescencetree -L 3 (limité)Vue adaptative qui tient à l’écran
Rechercher un fichierfind . -name "*.tsx"Tapez tsx en temps réel
Trouver les gros fichiersdu -sh * | sort -hbr -w (whale-spotting)
Fichiers modifiés Gitgit statusbr --git-status
Naviguer + changer de dossiercd $(find ... | fzf)Sélectionnez et appuyez sur Entrée

broot fonctionne avec une fonction shell (appelée br) qui permet de :

  • Changer de répertoire depuis broot (cd intégré)
  • Exécuter des commandes sur les fichiers sélectionnés
  • Revenir au shell avec le contexte approprié
~/.config/broot/
├── conf.hjson # Configuration principale
├── verbs.hjson # Commandes personnalisées
└── launcher/
└── bash/ # Fonction br pour Bash
└── 1
~/.local/share/broot/
└── launcher/
└── bash/
└── br # Lien vers la fonction
  1. Installer broot via Cargo

    Fenêtre de terminal
    cargo install broot

    La compilation prend environ 2 minutes. Le binaire est installé dans ~/.cargo/bin/broot.

  2. Installer la fonction shell br

    Fenêtre de terminal
    broot --install

    Cette commande :

    • Crée les fichiers de configuration dans ~/.config/broot/
    • Ajoute la fonction br à votre .bashrc ou .zshrc
    • Permet le cd depuis broot
  3. Recharger votre shell

    Fenêtre de terminal
    source ~/.bashrc # ou source ~/.zshrc
  4. Vérifier l’installation

    Fenêtre de terminal
    broot --version
    # broot 1.54.0

Une fois broot installé, vous interagissez avec lui via la commande br. Cette commande lance une interface interactive dans votre terminal : vous voyez immédiatement l’arborescence de fichiers et pouvez naviguer, filtrer, et agir sur les fichiers sans quitter cette interface.

Chaque option ajoute des informations à l’affichage. Vous pouvez les combiner selon vos besoins :

Fenêtre de terminal
# Navigation interactive (recommandé)
# Lance broot dans le répertoire courant avec l'affichage par défaut
br
# Avec affichage des tailles (-s = sizes)
# Utile pour repérer rapidement les fichiers/dossiers volumineux
br -s
# Avec tailles, dates et permissions (-s -d -p combinés)
# Affichage complet comme un "ls -la" mais en arborescence
br -sdp
# Mode whale-spotting (gros fichiers)
# Trie par taille ET affiche les fichiers cachés/ignorés
br -w
# Afficher les fichiers cachés (-h = hidden)
# Les fichiers commençant par un point (.gitignore, .env, etc.)
br -h
# Intégration Git (-g = git)
# Affiche le statut Git (M=modifié, A=ajouté, ?=non suivi)
br -g

Voici ce que vous voyez quand vous lancez br -sdp dans un projet :

$ br -sdp
21M /tmp/broot-demo
10M 2026/01/26 09:15 rw_rw_r__ bob bob ├──big-file.bin
8192 2026/01/26 09:15 rwxrwxr_x bob bob ├──config
3 2026/01/26 09:15 rw_rw_r__ bob bob │ └──settings.json
8192 2026/01/26 09:15 rwxrwxr_x bob bob ├──docs
16 2026/01/26 09:15 rw_rw_r__ bob bob │ └──guide.md
22 2026/01/26 09:15 rw_rw_r__ bob bob ├──README.md
20K 2026/01/26 09:15 rwxrwxr_x bob bob ├──src
8192 2026/01/26 09:15 rwxrwxr_x bob bob │ ├──components
19 2026/01/26 09:15 rw_rw_r__ bob bob │ │ └──Button.tsx
8192 2026/01/26 09:15 rwxrwxr_x bob bob │ └──utils
32 2026/01/26 09:15 rw_rw_r__ bob bob │ └──helpers.ts
4096 2026/01/26 09:15 rwxrwxr_x bob bob └──tests

Comment lire cette sortie ?

ColonneExempleSignification
Taille10M, 8192Taille du fichier (M=Mo, K=Ko, sinon octets)
Date2026/01/26 09:15Dernière modification
Permissionsrw_rw_r__Lecture/écriture pour propriétaire, groupe, autres
Propriétairebob bobUtilisateur et groupe propriétaires
Nom├──big-file.binNom du fichier avec sa position dans l’arborescence

Dans broot, vous naviguez entièrement au clavier. Pas besoin de la souris. Voici les raccourcis essentiels à mémoriser :

ToucheActionQuand l’utiliser
/ Naviguer dans la listeSélectionner un fichier ou dossier
EntréeEntrer dans le dossier / ouvrir le fichierExplorer ou éditer
Alt + EntréeEntrer dans le dossier et fermer brootPour faire cd vers ce dossier
Ctrl + ←Remonter au dossier parentRevenir en arrière dans l’arborescence
Ctrl + →Prévisualiser le fichierVoir le contenu sans l’ouvrir
EscEffacer le filtre / quitterAnnuler une recherche ou fermer
?Afficher l’aide complèteDécouvrir toutes les commandes

La grande force de broot est sa recherche en temps réel. Contrairement à find qui nécessite d’attendre la fin de la commande, broot filtre l’affichage pendant que vous tapez. Chaque caractère réduit les résultats instantanément.

La recherche par défaut est une recherche floue (fuzzy) : vous n’avez pas besoin de taper le nom exact du fichier. broot trouve les correspondances même partielles.

Exemple concret :

  1. Lancez broot dans votre projet

    Fenêtre de terminal
    br
  2. Tapez directement “tsx” au clavier (pas besoin de commande)

  3. Observez : seuls les fichiers contenant “tsx” restent visibles

Résultat :

/tmp/broot-demo
└──src
└──src/components
└──src/components/Button.tsx

Le chemin complet s’affiche pour que vous sachiez exactement où se trouve le fichier. Vous pouvez maintenant appuyer sur Entrée pour l’ouvrir ou Alt + Entrée pour aller dans son dossier.

Pour des recherches plus précises, préfixez par / pour activer les expressions régulières :

Fenêtre de terminal
# Dans broot, tapez : /\.md$
# Le / active le mode regex
# \.md$ signifie "se termine par .md"

Résultat :

/tmp/broot-demo
├──docs
│ └──guide.md
└──README.md

broot propose des préfixes de filtre pour des recherches spécifiques. Ces préfixes sont plus simples que les regex pour les cas courants :

FiltreDescriptionCas d’usage
f/Fichiers uniquementIgnorer les dossiers dans les résultats
d/Dossiers uniquementTrouver un dossier spécifique
e/jsonExtension jsonTous les fichiers .json
c/TODOContenu contenant “TODO”Trouver les TODO dans le code
/\.test\.Regex : fichiers de testFichiers *.test.js, *.test.ts

Exemple : trouver tous les fichiers contenant “TODO”

Fenêtre de terminal
# Dans broot, tapez :
c/TODO

broot va scanner le contenu de chaque fichier et n’afficher que ceux qui contiennent le mot “TODO”. C’est comme un grep -r "TODO" . mais interactif.

Votre disque est plein et vous ne savez pas pourquoi ? Le mode whale-spotting (littéralement “repérage de baleines”) vous aide à trouver les fichiers et dossiers qui occupent le plus d’espace.

Imaginons votre disque dur comme un océan. La plupart des fichiers sont des petits poissons (quelques Ko). Mais parfois, une baleine (un fichier de plusieurs Go) se cache dans les profondeurs. Le mode -w fait remonter ces baleines à la surface.

Fenêtre de terminal
br -w

Cette commande active trois comportements en même temps :

  1. Tri par taille : les plus gros fichiers en premier
  2. Fichiers cachés visibles : inclut .git, node_modules, etc.
  3. Fichiers Git-ignorés visibles : inclut ce que .gitignore masque

Résultat :

21M /tmp/broot-demo
11M █████ ├──.git …
10M ████▉ ├──big-file.bin
20K ├──src …
8192 ├──docs …
8192 ├──config …
4096 ├──tests
22 ├──README.md
0 ├──.env
0 └──.gitignore

Les barres █████ représentent la proportion d’espace occupé par rapport au total du dossier parent :

  • .git (11M) occupe environ 52% des 21M totaux → barre à moitié pleine
  • big-file.bin (10M) occupe environ 48% → barre presque aussi longue
  • Les autres fichiers sont négligeables → pas de barre visible
Fenêtre de terminal
# Tri par taille (whale-spotting simplifié)
br --sort-by-size
# Tri par date de modification
br --sort-by-date
# Tri par type (dossiers en premier)
br --sort-by-type-dirs-first

Exemple tri par date :

/tmp/broot-demo
2026/01/26 09:15 ├──big-file.bin
2026/01/26 09:15 ├──README.md
2026/01/26 09:15 ├──tests
2026/01/26 09:15 ├──src …
2026/01/26 09:15 ├──docs …
2026/01/26 09:15 └──config …

Si vous travaillez dans un dépôt Git (ce qui est le cas de la plupart des projets), broot peut afficher le statut Git directement dans l’arborescence. Plus besoin de jongler entre git status et votre explorateur de fichiers.

L’option -g (pour git) ajoute une colonne de statut à gauche de chaque fichier :

Fenêtre de terminal
br -g

Résultat :

/tmp/broot-demo
├──big-file.bin
├──config
│ └──settings.json
├──docs
│ └──guide.md
M├──README.md # ← M = modifié
├──src
│ ├──components
│ │ └──Button.tsx
│ └──utils
│ └──helpers.ts
└──tests

Le M devant README.md indique que ce fichier a été modifié depuis le dernier commit. Les fichiers sans lettre sont à jour avec le dépôt.

Pour ne voir que les fichiers modifiés (comme un git status amélioré) :

Fenêtre de terminal
br --git-status

Résultat :

/tmp/broot-demo
M└──README.md

C’est particulièrement utile dans les gros projets pour identifier rapidement ce que vous avez changé, sans être noyé dans les centaines de fichiers non modifiés.

Voici ce que signifie chaque lettre affichée par broot :

CodeSignificationCe que ça veut dire concrètement
MModifié (modified)Fichier existant que vous avez édité
AAjouté (staged)Nouveau fichier ajouté avec git add
?Non suivi (untracked)Fichier pas encore dans Git
DSupprimé (deleted)Fichier supprimé (mais encore dans Git)
RRenommé (renamed)Fichier déplacé ou renommé
CCopié (copied)Fichier copié (détecté par Git)

broot n’est pas qu’un explorateur : c’est aussi un gestionnaire de fichiers. Vous pouvez copier, déplacer, supprimer et créer des fichiers directement depuis l’interface, sans retourner au shell.

Dans broot, un verbe est une action que vous déclenchez en tapant : suivi du nom de la commande. C’est similaire aux commandes Vim (:w, :q, etc.).

Comment utiliser un verbe :

  1. Sélectionnez un fichier avec les flèches
  2. Tapez : pour entrer en mode commande
  3. Tapez le nom du verbe (ex: rm pour supprimer)
  4. Appuyez sur Entrée pour exécuter
VerbeRaccourciActionExemple
:editeOuvrir dans l’éditeurÉditer un fichier de config
:copy_to_panel:cpCopier vers le panneauDupliquer un fichier
:move_to_panel:mvDéplacer vers le panneauRéorganiser un projet
:rm-SupprimerNettoyer des fichiers inutiles
:mkdirmdCréer un dossierCréer un nouveau dossier
:create-Créer un fichierCréer un fichier vide

Imaginons que vous voulez copier config.json vers un dossier backup/ :

  1. Lancer broot

    Fenêtre de terminal
    br
  2. Rechercher le fichier source en tapant config.json

  3. Sélectionnez-le avec les flèches si nécessaire

  4. Ouvrir le dossier destination dans un second panneau

    Appuyez sur Ctrl + → en ayant sélectionné le dossier backup/. L’écran se divise en deux panneaux.

  5. Copier le fichier

    Tapez :cp puis Entrée. Le fichier est copié vers le panneau de droite.

broot intègre des verbes pour les opérations Git courantes. Vous pouvez les utiliser sur le fichier actuellement sélectionné :

VerbeActionÉquivalent shell
:gfGit fetchgit fetch
:gsAfficher les fichiers modifiésgit status
:gdGit diff sur le fichiergit diff <fichier>
:gaGit add (stage)git add <fichier>

Exemple : ajouter un fichier modifié au staging

  1. Lancez br -g pour voir les fichiers modifiés
  2. Naviguez jusqu’au fichier avec le statut M
  3. Tapez :ga puis Entrée
  4. Le fichier passe de M (modifié) à A (staged, prêt à commit)

broot est hautement configurable. Tous les paramètres sont stockés dans des fichiers au format Hjson — une version de JSON qui accepte les commentaires et les virgules finales, plus agréable à éditer à la main.

~/.config/broot/
├── conf.hjson # Paramètres généraux (affichage, thème, etc.)
└── verbs.hjson # Vos commandes personnalisées

Voici les options les plus utiles à personnaliser :

~/.config/broot/conf.hjson
{
// Afficher les fichiers cachés par défaut ?
// false = comme un ls normal (sans -a)
// true = toujours voir .gitignore, .env, etc.
show_hidden: false
// Format de date pour l'option -d
// %Y = année, %m = mois, %d = jour, %H:%M = heure:minute
date_time_format: "%Y/%m/%d %H:%M"
// Thème d'icônes (nécessite une police Nerd Font)
// Options : "nerdfont", "vscode", null (pas d'icônes)
icon_theme: "nerdfont"
// Désactiver les couleurs RGB si votre terminal ne les supporte pas
// true_colors: false
// Couleurs personnalisées (voir documentation)
skin: {
// ...
}
}

Vous pouvez définir vos propres raccourcis pour exécuter n’importe quelle commande shell sur le fichier sélectionné. C’est l’une des fonctionnalités les plus puissantes de broot.

~/.config/broot/verbs.hjson
{
verbs: [
// Ouvrir le fichier dans VS Code avec Ctrl+E
{
key: "ctrl-e" // Raccourci clavier
execution: "code {file}" // {file} = chemin du fichier sélectionné
}
// Rechercher un texte dans le fichier avec ripgrep
// Usage : sélectionnez un fichier, tapez :rg puis le texte à chercher
{
name: "ripgrep" // Nom affiché dans l'aide
shortcut: "rg" // Raccourci de verbe (:rg)
execution: "rg -i {other_panel_arg} {file}"
// {other_panel_arg} = texte tapé après le verbe
}
// Ouvrir le dossier parent dans le gestionnaire de fichiers
{
name: "open_folder"
shortcut: "of"
execution: "xdg-open {directory}" // Linux
// execution: "open {directory}" // macOS
}
]
}

Variables disponibles dans les verbes :

VariableDescription
{file}Chemin complet du fichier sélectionné
{directory}Dossier contenant le fichier sélectionné
{parent}Dossier parent
{other_panel_arg}Texte tapé après le verbe

Symptôme : Le terminal affiche des caractères comme 11;rgb:1818/1818/1818n au lieu des couleurs.

Cause : Votre terminal ne supporte pas les codes couleurs RGB étendus (truecolor) que broot utilise par défaut.

Solutions :

Fenêtre de terminal
# Solution 1 : Désactiver les couleurs
br --color no
# Solution 2 : Forcer un terminal basique
TERM=dumb br
# Solution 3 : Ajouter dans conf.hjson
# true_colors: false

Symptôme : Quand vous sélectionnez un dossier et appuyez sur Entrée, vous restez dans le même répertoire.

Cause : Vous utilisez broot au lieu de br.

Solution :

Fenêtre de terminal
# Installer la fonction shell
broot --install
source ~/.bashrc # ou ~/.zshrc
# Toujours utiliser br
br

Symptôme : broot met du temps à démarrer dans / ou node_modules.

Solutions :

Fenêtre de terminal
# Limiter la profondeur
br --max-depth 3
# Ignorer certains dossiers dans conf.hjson
# max_panels_count: 2
OptionCourtDescription
--dates-dAfficher les dates de modification
--sizes-sAfficher les tailles
--permissions-pAfficher les permissions
--hidden-hAfficher les fichiers cachés
--show-git-info-gAfficher le statut Git
--git-status-Filtrer par statut Git
--only-folders-fDossiers uniquement
--whale-spotting-wMode gros fichiers
--sort-by-size-Trier par taille
--sort-by-date-Trier par date
--max-depth-Limiter la profondeur
--color-Contrôle des couleurs (auto/yes/no)
  • Utilisez br (pas broot) pour avoir le cd intégré
  • Tapez pour filtrer : la recherche est instantanée
  • br -w pour trouver les gros fichiers rapidement
  • br -g pour voir le statut Git de vos fichiers
  • ? pour l’aide, Esc pour annuler
  • Préfixez par / pour les regex

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.