Guide · Open source
How to use exa: install it and list files with colour and Git status
Updated · written with AI from the project's own documentation and checked against our catalogue data
exa is a command-line program that lists the files in a folder, as a replacement for the standard Unix and Linux ls command. It adds colours for file types and metadata, understands symlinks, extended attributes and Git, and aims for better defaults. This guide shows how to install it, run common listings and use the options that matter most. The project is unmaintained, so read the note on eza before you start a new setup.
Quick start
- 1Check the status of the project. Read the README note that exa is unmaintained and that eza is recommended for new setups.
- 2Install exa. Use your package manager, for example brew install exa on macOS or sudo apt install exa on Debian or Ubuntu.
- 3Run a basic listing. Type exa to see a grid view of the current folder, or exa -l for extended details.
- 4Show hidden files. Add -a to show hidden and dot files.
- 5Try a tree view. Run exa -T -L 2 to recurse into folders as a tree, limited to two levels.
- 6Add Git status. Run exa -l --git to see whether each file is tracked or ignored.
Check whether exa is still the right choice
The exa README says the project is unmaintained and recommends the fork eza instead. The repository is not archived because the only person with the rights to do so is unreachable.
exa is a good fit if you already use ls and want colour and Git status in a directory listing, or if you have an existing install on Linux or macOS. If you are starting a new setup, the README points you to eza.
- Choose exa if you already have it installed and want colour, tree views or Git status.
- Choose eza if you are setting up a new machine, since the README recommends it.
- Do not expect options to match ls exactly. The README says they are almost, but not quite, the same.
Install exa with a package manager
exa is available for macOS and Linux. Use your system's package manager where possible. The README lists packages for many distributions, including Alpine, Arch, Debian, Fedora, Gentoo, Homebrew, MacPorts, Nix, openSUSE, Ubuntu, Void Linux and Termux.
The README gives these commands for the most common systems.
- Homebrew on macOS: brew install exa
- Debian or Ubuntu: sudo apt install exa
- Arch Linux: pacman -S exa
brew install exa
sudo apt install exa
pacman -S exaBuild exa with Cargo if no package is available
If you already have a Rust environment set up, you can install exa with cargo. The README says exa needs Rust 1.66.1 or higher to build from source. Cargo builds the exa binary and places it in $HOME/.cargo.
The README also says Git support can be left out with --no-default-features if the required dependencies are not installed.
cargo install exaList files and folders
Run exa with no options to list the current folder. By default it uses a grid view. Use -1 for one entry per line, or -l for extended details and attributes.
Add -a to show hidden and dot files. The README says to pass --all twice to also show the . and .. directories.
- -1 or --oneline: one entry per line
- -G or --grid: grid view (default)
- -l or --long: extended details and attributes
- -a or --all: show hidden and dot files
- -F or --classify: add a type indicator to file names
exa
exa -l
exa -la
exa -a -aShow Git status and a tree view
Use --git with the long view to list each file's Git status, showing whether a file is tracked or ignored. Use -T or --tree to recurse into directories as a tree, and -L or --level to limit the depth.
Use --git-ignore to ignore files mentioned in .gitignore, and -I or --ignore-glob to ignore patterns separated by pipes.
- -T or --tree: recurse into directories as a tree
- -L or --level=(depth): limit the depth of recursion
- --git-ignore: ignore files mentioned in .gitignore
- -I or --ignore-glob=(globs): pipe-separated glob patterns to ignore
exa -l --git
exa -T -L 2
exa -T --git-ignoreSort, filter and set colour
Use -s or --sort to choose the field to sort by. Use -r to reverse the order and --group-directories-first to list directories before other files. Use -D to list only directories.
The --color option accepts always, automatic or never. Valid sort fields include name, size, extension, type and modified.
- -s or --sort=(field): for example name, size or modified
- -r or --reverse: reverse the sort order
- --group-directories-first: list directories first
- -D or --only-dirs: list only directories
- --color=always, automatic or never
exa -s size -r
exa --group-directories-first
exa --color=neverWhat people use it for
- Scanning a project folder with colour and Git status in a long listing.
- Viewing a folder's structure from the terminal with a tree view limited by depth.
- Listing only directories, sorted by size or modification time.
- Hiding files listed in .gitignore while browsing a repository.
Frequently asked questions
How do I install exa?
Use your package manager where possible. The README gives brew install exa for Homebrew on macOS, sudo apt install exa for Debian or Ubuntu, and pacman -S exa for Arch Linux. If none of these fit, you can use cargo install exa with a Rust environment set up.
Is exa free and open source?
Yes. The README lists the licence as MIT, and the source is on GitHub under ogham/exa.
What are the requirements for exa?
exa is available for macOS and Linux, according to the README. To build from source with Cargo, you need Rust 1.66.1 or higher.
Is exa still maintained?
No. The README says exa is unmaintained and recommends the fork eza instead.
What is the alternative to exa?
The README recommends eza, a fork of exa. Other comparable projects listed for this item are lsd and the standard ls command.
Does exa work on Windows?
The README says exa is available for macOS and Linux. It does not list Windows support.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
exa suits people who already use ls and want colour, Git status and tree views, and who can install it from a package manager on macOS or Linux. Because the README says exa is unmaintained, people starting a new setup should choose the fork eza instead. Anyone who needs options that match ls exactly should also look elsewhere.
Install options & downloads