
exa
A modern replacement for the ls command, with colours, Git awareness, and tree views. Unmaintained.
- Stars
- 24.4k
- Forks
- 651
- Licence
- MIT
- Language
- Rust
- Last update
- 2.1 years ago
- Type
- CLI
No commits in over a year — check for forks or alternatives before adopting.
What it is
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 status, and aims to have better defaults. The README says it is small, fast, and a single binary. The README also says exa is unmaintained and points users to the fork eza instead.
- List a folder with one entry per line or as a grid using -1 or -G
- Show a recursive tree of a directory with -T and limit depth with -L
- Show long details, Git status and extended attributes with -l, --git and -@
- Hide ignored files using --git-ignore or a glob with -I
Great for
- People who already use ls and want colour and Git status in a directory listing
- Users who want a tree view of folders from the terminal
- Those who want a single small binary with no runtime dependencies beyond the install
- Anyone looking for an existing install on a Linux or macOS system with a packaged version
Not ideal for
- Anyone starting a new setup: the README says exa is unmaintained, so the fork eza is the recommended choice
- Users who need options exactly matching ls, since the README says exa's options are almost but not quite like ls's
- Windows users, since the README says exa is available for macOS and Linux
How to get it
- 1
Install with a package manager
You'll need: A package manager such as apt, dnf, pacman, Homebrew, or cargo (Rust 1.66.1+ if building from source)
Homebrew on macOS
brew install exaDebian or Ubuntu
sudo apt install exaArch Linux
pacman -S exaCargo (Rust environment already set up)
cargo install exa - 2
Run it
- Install exa with one of the package commands above
- Run exa in a terminal to list the current folder
- Try exa -l to see details
- Try exa -T to see a tree view
- 3
Get the most out of it
- Use --git to show Git status for each file in a repository
- Use --icons for file icons if your terminal supports them
- Use --group-directories-first to list folders before files
- Use --colo[u]r-scale to highlight file sizes
Downloads
Strengths
- Colour output distinguishes file types and metadata
- Built-in Git and symlink awareness in the listing
- Distributed as one binary, with packages in many common Linux and macOS package managers
Trade-offs
- The README states the project is unmaintained and the repository is not archived
- Options differ from ls, so some habits will not carry over
- Git support depends on libgit2 and can be disabled if it fails to build
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| exa (this) | 24.4k | CLI | beginner | 2.1 years ago | People who already use ls and want colour and Git status in a directory listing |
| linux-command | 37.2k | Learning resource | beginner | 6 days ago | People learning the Linux command line who want quick, readable command explanations |
| winget-cli | 26.6k | CLI | beginner | 6 days ago | Windows users who want to install common apps from a terminal |
| fastfetch | 25.2k | CLI | beginner | 4 days ago | Linux users who want a fast, maintained alternative to neofetch |
| neofetch | 23.6k | CLI | beginner | 2.3 years ago | People who want a quick, good-looking system summary to share in screenshots |
| terminal | 105k | App | beginner | 6 days ago | Windows users who work in the command line every day and want tabs and rich text |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.