elio is a free, open source file management & sync project written in Rust and released under MIT. It has 891 GitHub stars, 27 forks and 6 open issues, and was last pushed 14 hours ago. On this registry it ranks #65 of 70 tracked projects in File Management & Sync, with 5 head-to-head comparisons available.

What is elio?

elio is a snappy, batteries-included terminal file manager written in Rust for Linux, macOS, and FreeBSD users who want rich previews, inline images, bulk actions, and trash support directly in their shell.

What it is

elio is a cross-platform terminal file manager built in Rust and released under the MIT licence. It presents a three-pane layout — Places, Files, and Preview side by side — and offers grid and list views, keyboard and mouse navigation, customizable pinned places with auto-detected drives and mounts, and theming controlled through theme.toml. The project targets Linux, macOS, and FreeBSD, and it is distributed through the AUR, COPR, an apt repository, Homebrew, FreeBSD ports, Nix flakes, and crates.io.

The concrete problem elio solves is the gap between a bare shell and a desktop file browser: it gives a terminal user the inspection and bulk-management capabilities normally associated with a GUI without leaving the command line. Rich previews cover text, code, documents, archives, and media, inline images render directly in supported terminals, and file operations such as trashing, restoring, permanently deleting, and finding duplicates with identical contents are handled in one interface rather than across several shell commands.

Key capabilities

  • Three-pane layout with Places, Files, and Preview side by side, switchable between grid and list views with v and zoomed with Ctrl++ / Ctrl+-
  • Rich previews for text, code, documents, archives, and media, plus inline images auto-detected across Kitty Graphics Protocol, iTerm2 Inline Protocol, and Sixel terminals (set ELIO_IMAGE_PREVIEWS=1 to enable on other terminals)
  • Trash management to trash, restore, or permanently delete files, alongside a Duplicate Finder that locates files with identical contents
  • Archive management to extract and create common archive formats, plus fuzzy find and Zoxide jumps driven by your zoxide history
  • Quick actions including Go-to, Open With, and copy-to-clipboard
  • Shell integration installing cd-on-exit wrappers for bash, zsh, fish, and Nushell, with Kitty drag and drop for files in Kitty 0.47+
  • Full palette and file-class theming via theme.toml, with bundled themes such as Catppuccin Mocha, Navi, Amber Dusk, and Blush Light

Who uses it and how

  • Linux desktop users who want elio as their file chooser on Linux and FreeBSD, launching it from within other applications
  • Terminal-centric developers who use the shell integration wrappers so that browsing a directory in elio changes the working directory of bash, zsh, fish, or Nushell on exit
  • Kitty 0.47+ users who drag files out of elio and drop files into it as part of their window-manager workflow
  • Users on terminals with Sixel or inline-graphics support — Kitty, Ghostty, Rio, Warp, Konsole, WezTerm, iTerm2, foot, and Windows Terminal — who rely on automatic image preview detection
  • Administrators and power users performing bulk operations, such as trashing and restoring files or clearing duplicates, across pinned places and auto-detected mounts

Getting started

Install with cargo install elio from crates.io, or use your platform's package manager: paru -S elio on Arch, brew install elio on macOS, pkg install elio on FreeBSD, or nix run github:elio-fm/elio/main. elio starts in your current working directory, or accepts a file or directory path as an argument.

How it compares

elio stands alone in this registry as the only entry in the terminal file manager category; no comparable tools are named in the available facts. Its documented ground is the cross-platform terminal environment itself — Linux, macOS, and FreeBSD — rather than any specific competing product.

When to use it — and when not to

Self-hosters and terminal users should note that a Nerd Font is recommended so icons display correctly, and that image previews depend entirely on your terminal's graphics protocol support — Alacritty is explicitly unsupported. The project's licence, MIT, and its active maintenance (last push October 2026, 891 stars, 6 open issues) make it a reasonable pick for daily use, but users who prefer a graphical file browser or work in a terminal without inline-image support should look elsewhere.

project readme (upstream, from github) — read inline

 elio

Snappy, batteries-included terminal file manager with rich previews, inline images, bulk actions, and trash support.

elio — default theme

Documentation


Features

  • Three-pane layout — Places, Files, and Preview side by side
  • Grid and list views — switch with v, zoom the grid with Ctrl++ / Ctrl+-
  • Keyboard and mouse navigation — browse comfortably either way
  • Customizable places and devices — pinned folders and auto-detected drives and mounts
  • Quick actions — Go-to, Open With, and copy-to-clipboard
  • Trash management — trash, restore, or permanently delete files
  • Duplicate Finder — find and safely manage files with identical contents
  • Rich previews — text, code, documents, archives, media, and more; see Preview Coverage
  • Inline images — rendered directly in supported terminals
  • Archive management — extract and create common archive formats
  • Fuzzy find — find folders and files quickly
  • Zoxide jumps — jump to frequent directories from your zoxide history
  • Kitty drag and drop — drop files into elio and drag them out in Kitty 0.47+
  • Shell integration — install cd-on-exit wrappers for bash, zsh, fish, and Nushell
  • File chooser — use elio as the file chooser on Linux and FreeBSD
  • Theming — full palette and file-class control via theme.toml

Installation

Arch Linux

Install from the AUR with your preferred AUR helper:

paru -S elio

Fedora

Enable the COPR repository and install with dnf:

sudo dnf copr enable miguelregueiro/elio
sudo dnf install elio

Debian and Ubuntu-based Linux

Configure the official apt repository and install with apt:

curl -fsSL https://elio-fm.github.io/elio-apt/install.sh | sudo sh
sudo apt install elio

Manual repository setup is available in elio-apt. To install without adding a repository, download the .deb package from the latest release.

The apt repository currently publishes amd64 and arm64 packages.

Homebrew

Install from Homebrew:

brew install elio

FreeBSD

Install the FreeBSD package:

pkg install elio

Nix

Run from main with Nix flakes:

nix run github:elio-fm/elio/main

Or install from main in your Nix profile:

nix profile add github:elio-fm/elio/main

Cargo

Install from crates.io:

cargo install elio

elio starts in your current working directory by default. Pass a file or directory path to open it instead.

[!TIP] Recommended: use a Nerd Font in your terminal so icons display correctly.


Example Themes

A few bundled themes are shown below. More are available in examples/themes/. See Theming for theme paths and docs.

Catppuccin Mocha Navi

Amber Dusk Blush Light


Image Previews

Inline visual previews, including images, covers, thumbnails, and rendered pages, work automatically on supported terminals.

Terminal Protocol Status
Kitty Kitty Graphics Protocol ✓ Auto-detected
Ghostty Kitty Graphics Protocol ✓ Auto-detected
Rio Kitty Graphics Protocol ✓ Auto-detected
Warp Kitty direct-placement protocol ✓ Auto-detected
Konsole Kitty direct-placement protocol ✓ Auto-detected
WezTerm iTerm2 Inline Protocol ✓ Auto-detected
iTerm2 iTerm2 Inline Protocol ✓ Auto-detected
foot Sixel ✓ Auto-detected
Windows Terminal Sixel ✓ Auto-detected
Alacritty — Not supported
Other Kitty Graphics Protocol Set ELIO_IMAGE_PREVIEWS=1 to enable

Sixel terminals can render large or first-time previews more slowly than Kitty Graphics or iTerm2 Inline backends.

In Konsole, inline previews are temporarily cleared while modal popups are open to avoid rendering artifacts.

Useful environment variables:

Environment Variables
Variable Effect
ELIO_IMAGE_PREVIEWS=1 Force-enable on unrecognized terminals that support the Kitty Graphics Protocol
ELIO_ZOXIDE_OPTS Extra options appended to the zoxide interactive picker options
ELIO_DEBUG_PREVIEW Log image preview activity to elio-preview.log in the system temp directory
ELIO_LOG_MOUSE Log raw mouse events to elio-mouse.log in the system temp directory

Preview Coverage

elio previews many file types:

  • Text, source code, Markdown, logs, and structured data such as JSON, YAML, TOML, CSV/TSV, and SQLite
  • Documents such as PDFs, ebooks, Office files, OpenDocument files, and Apple Pages
  • Images, audio, and video metadata, with inline images, covers, and thumbnails when supported
  • Folders, archives, comic archives, torrents, ISO images, and other container-style files
  • Fonts, binary files, and other metadata-focused previews

See the preview docs: https://elio-fm.github.io/docs/previews/


Optional Preview Tools

elio works out of the box. Optional tools unlock richer previews:

  • poppler for PDFs
  • ffmpeg / ffprobe for media metadata and thumbnails
  • resvg for SVG previews
  • 7-Zip for more archive types, comic archives, and RAR support

See the optional tools docs: https://elio-fm.github.io/docs/optional-tools/


Using elio over SSH

elio works over SSH. For the best experience, use a supported terminal and install optional tools on the remote host.

Opening files with terminal apps works normally inside SSH sessions. Desktop apps may open files on the remote host or do nothing useful.


Shell Integration

elio can leave your shell in the directory you were browsing when you quit:

elio shell install

Restart your shell, then run elio normally. Press q to quit and move your shell to elio's final directory, or Q to quit without changing directories.

See the shell integration docs for uninstall steps, supported shells, and manual setup: https://elio-fm.github.io/docs/shell-integration/


File Chooser

You can make elio your file chooser on Linux and FreeBSD:

elio portal enable

This sets elio as the file chooser for your current desktop environment or window manager. Use elio portal disable to restore the previous file chooser, or elio portal status to check the current configuration.

See the file chooser docs for setup details and supported behavior: https://elio-fm.github.io/docs/file-chooser/


Configuration

elio reads configuration from:

Platform Config file
Linux / BSD ~/.config/elio/config.toml or $XDG_CONFIG_HOME/elio/config.toml
macOS ~/.config/elio/config.toml or ~/Library/Application Support/elio/config.toml
Windows %APPDATA%\elio\config.toml

Use elio --config FILE to load configuration from a custom path instead of the default location.

See examples/config.toml for an annotated example, or the configuration docs: https://elio-fm.github.io/docs/configuration/


Theming

elio themes are TOML files layered on top of the built-in defaults, so you only need to set the keys you want to change.

Platform Theme file
Linux / BSD ~/.config/elio/theme.toml or $XDG_CONFIG_HOME/elio/theme.toml
macOS ~/.config/elio/theme.toml or ~/Library/Application Support/elio/theme.toml
Windows %APPDATA%\elio\theme.toml

Use elio --theme FILE to load a theme from a custom path instead of the default location.

See assets/themes/default/theme.toml for the full default theme and examples/themes/ for ready-made themes.

For transparent or terminal-palette setups, see examples/themes/transparent/theme.toml and examples/themes/terminal-ansi/theme.toml.

Theme docs: https://elio-fm.github.io/docs/themes/


Controls — press ? in elio to see current bindings, including overrides

Keys marked with * are configurable in [keys] in config.toml. Configurable actions accept one key, a list, or an empty list to unbind the action. See the configuration docs for full key syntax: https://elio-fm.github.io/docs/configuration/

Navigation

Key Action
k / ↑ * Move up
j / ↓ * Move down
h / ← / Backspace * Go to parent directory
l / → * Enter folder
Enter * Enter folder / open file or selection
g * Go To menu (g top, d downloads, h home, c config folder, t trash; configurable in [goto])
Home * Jump to first item
G / End * Jump to last item
PageUp / PageDown * Page up / down
Tab / Shift+Tab * Cycle places
Alt+← / Alt+→ * Back / forward in history

Search

Key Action
f * Fuzzy-find folders in the current tree
Ctrl+F * Fuzzy-find files in the current tree
Tab (in Fuzzy Find) Switch files/folders without clearing your query
Alt+D * Find duplicate files by content
z * Jump with zoxide directory history

File Actions

Key Action
o * Open focused item or selection with the system default application
O * Open With chooser
! * Open shell in current folder
a * Create file or folder
d / Del * Trash; permanently delete if already in trash
D / Shift+Del * Delete permanently
r / F2 * Rename / bulk rename
R / Shift+F2 * Rename in editor
r * (in Trash) Restore from trash

View

Key Action
v * Toggle grid / list view
Ctrl++ / Ctrl+- Grid zoom in / out
. * Show / hide dotfiles
s * Cycle sort (Name → Modified → Size)

Preview

Key Action
Shift+K / Shift+↑ * Step page (PDF, comic, EPUB) or scroll preview up
Shift+J / Shift+↓ * Step page (PDF, comic, EPUB) or scroll preview down
Shift+H / Shift+← * Scroll preview left
Shift+L / Shift+→ * Scroll preview right
V * Show / hide preview pane
P * Fullscreen preview

Selection and Clipboard

Key Action
Space * Toggle selection
Ctrl+A * Select all
y * Yank (copy)
x * Cut
p * Paste
- * Create absolute symlink from yanked items
_ * Create relative symlink from yanked items
c * Copy path details to clipboard

Mouse

Action Description
Click Select item
Double-click Open item
Scroll Scroll browser or preview
Shift+Scroll Scroll preview sideways

General

Key Action
? Open help overlay
Esc Cancel / clear selection / close overlay
q * Quit
Q * Quit without changing the shell directory

License

MIT

Frequently asked questions

Is elio free to use?

elio is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does elio do?

Snappy, batteries-included terminal file manager with rich previews, inline images, bulk actions, and trash support

What is elio written in?

elio is primarily written in Rust. Its source is publicly available at https://github.com/elio-fm/elio, and it has 891 GitHub stars.