The staging area is broot's solution to let you execute commands on several files in one go.

When the staging area is focused, commands apply to all the files it contains.

Stage and unstage files

You can change the bindings to the :stage, :unstage and :toggle_stage verbs. The standard bindings are below

verb default binding comment
:toggle_stage ctrlg the easiest solution when not using broot in modal
:stage + only in command mode
:unstage - only in command mode
:clear_stage shortcut: :cls

When staging a file, the staging area opens (but doesn't get focused) if it wasn't and there's not already the max number of panels open.

Execute a command

Focus the staging area (usually with ctrl) then type the verb in the input.

The verb will be executed, in order, to all files of the staging area.

staging mv

Computed groups which would have the same value for all files are shown in the status bar. For example here, when you type mv ../app-panels, broot can tell you that it will run mv {file} /home/dys/dev/broot/src/app-panels/ for each file of the staging area.

Some verbs aren't compatible with execution on the staging area:

Read the staging area

The staging area can be opened or closed with the :open_staging_area, :close_staging_area, and :toggle_staging_area verbs, which have shortcuts :osa, :csa, and :tsa. But you rarely need those verbs as the staging area opens when you add to it and closes when it goes empty.

You can filter, select, scroll, as in other panels. This may be convenient either to unstage a precise file from the staging area, or to check some files are present (or not) when there are many of them.

staging filter


The staging area is a new feature of broot. Some features (staging with globs for example) may be added, some may be changed, depending on your feedback.