eza is a modern, Rust-based replacement for the ls command found on Unix and Linux systems. It's a single, small binary that adds colorized output, Git awareness, and better defaults on top of what ls already does, without needing extra configuration to be useful right away. It's aimed at developers and terminal users who spend a lot of time listing directories and want more useful information at a glance, particularly if they're already comfortable with ls-style flags.
eza is a continuation of exa, an earlier project with a similar goal. The README lists a set of fixes and additions not present in exa, including a fix for a display bug the project calls "The Grid Bug," along with several security fixes, which is worth knowing if you're coming from exa specifically rather than from stock ls.
--git, --git-repos, and --git-repos-no-status.-X.-l), or a recursive tree view (-T).--hyperlink.-M) and SELinux security context (-Z) in long view.--time-style=relative instead of raw dates.theme.yml file lets you configure colors and icons per file type, with pre-made themes available in a separate eza-themes repository. Existing LS_COLORS and EXA_COLORS environment variables still work and take precedence, for backwards compatibility.eza is a good fit if you want a nicer default ls for daily terminal use, especially inside Git repositories, where seeing file-level Git status inline saves a context switch to a separate git status call. It also suits people who like customizing their terminal environment through icons and themes, since the theme system and hyperlink, mount, and SELinux extras go well beyond what stock ls shows.
It's a weaker choice if you need strict POSIX ls output for scripts, since the project has deliberately made some behavior different from ls in pursuit of better defaults and more features, described in the README as "almost, but not quite, entirely unlike ls." If your workflow depends on parsing classic ls output byte-for-byte, keep using ls itself in that context and reach for eza interactively instead.
eza is available for Windows, macOS, and Linux, with platform- and distribution-specific instructions maintained in the project's INSTALL.md file rather than listed inline in the main README.
If you already use Nix with flake support, you can try it without a separate install step:
nix run github:eza-community/eza
To pass arguments through when using nix run, add them after --:
nix run github:eza-community/eza -- -ol
Once installed, common invocations include a long listing with a header row:
eza -l -h
Or a recursive tree view that skips files ignored by Git:
eza -T --git-ignore
Check man eza, or the man pages in the repository, for the complete set of display, filtering, and long-view options, including the full list of valid sort fields, time fields, and time styles. The project's own screenshots and packaging status badge, which tracks how many distributions carry eza, are also linked from the README if you want to confirm availability for your specific system before installing.