A terminal-native file manager with a three-pane layout, rich previews, and inline images.
Built for fast workflows with bulk actions, customizable Places, trash, and quick actions like Go-to, Open With, and copy-to-clipboard.
- Three-pane layout — Places, Files, and Preview side by side
- Rich previews — text, code, documents, archives, media, and more; see Preview Coverage
- Inline images — rendered directly in supported terminals
- Customizable Places and devices — pinned folders plus auto-detected drives and mounts
- Quick actions — Go-to, Open With, and copy-to-clipboard
- Trash management — trash, restore, or permanently delete files
- Keyboard and mouse navigation — browse comfortably either way
- Grid and list views — switch with
v, zoom the grid with+/- - Fuzzy search — find folders and files quickly
- Theming — full palette and file-class control via
theme.toml
Install from the AUR with your preferred AUR helper:
paru -S elioEnable the COPR repository and install with dnf:
sudo dnf copr enable miguelregueiro/elio
sudo dnf install elioInstall from the Homebrew tap:
brew install elio-fm/elio/elioInstall from crates.io:
cargo install elioelio starts in your current working directory.
Tip
Recommended: use a Nerd Font in your terminal so icons display correctly.
Running From Source
cargo run --releaseA few bundled themes are shown below. More are available in examples/themes/ — copy any theme.toml to your platform's theme path to apply it. See Theming for the paths and override rules.
| Catppuccin Mocha | Tokyo Night |
|---|---|
![]() |
![]() |
| Amber Dusk | Blush Light |
|---|---|
![]() |
![]() |
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 |
| Warp | Kitty Graphics 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.
Useful environment variables:
Environment Variables
| Variable | Effect |
|---|---|
ELIO_IMAGE_PREVIEWS=1 |
Force-enable on unrecognized terminals that support the Kitty Graphics Protocol |
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 |
elio works without any extra setup. These tools unlock richer previews and additional features when installed:
| Category | Tool | Command(s) | What it enables |
|---|---|---|---|
| Poppler | pdfinfo, pdftocairo |
PDF metadata and rendered page previews | |
| Media | ffprobe | ffprobe |
Audio and video metadata |
| Media | ffmpeg | ffmpeg |
Audio artwork, video thumbnails, and broader raster image format support |
| Images | resvg | resvg |
SVG rasterization (preferred) |
| Images | ImageMagick | magick |
SVG rasterization fallback |
| Archives | 7-Zip | 7z |
Comic archive preview and edge-case archive fallback |
| Archives | libarchive | bsdtar |
Rare archive types and ISO fallback |
| Archives | isoinfo | isoinfo |
Additional ISO listing fallback |
For c, elio copies file metadata to the clipboard using OSC52 on supported terminals, or platform clipboard tools when needed: wl-copy (Wayland), xclip / xsel (X11), pbcopy (macOS), and clip (Windows).
Enter enters folders and opens files with the system default application. o always opens the selected file or folder externally using the system launcher: open on macOS, cmd /c start on Windows, and xdg-open or gio on Linux and BSD desktop sessions.
O is for files. On macOS and Linux/BSD desktop sessions, elio discovers matching applications, opens the file directly when there is one match, and shows the Open With chooser when there are multiple. Terminal apps such as nvim are supported too. When no match is found, or on platforms without app discovery, elio falls back to the default opener.
g opens a quick jump menu with shortcuts for the top of the current folder, Downloads, Home, the platform config folder, and Trash. The config destination is ~/.config or $XDG_CONFIG_HOME on Linux and BSD, ~/Library/Application Support on macOS, and %APPDATA% on Windows.
elio can preview a broad range of content in the Preview pane, including text, structured data, document details, archive contents, and media metadata with covers or thumbnails when available.
- Text and code — plain text, source code with syntax highlighting, and Markdown
- Structured data — JSON, JSONC, JSON5, YAML, TOML,
.env, logs, CSV/TSV, and SQLite - Documents — PDF, EPUB, DOC, DOCX, DOCM, ODT, Pages, XLSX, XLSM, ODS, PPTX, PPTM, and ODP
- Media — image metadata and inline previews, audio metadata and covers, and video metadata and thumbnails
- Folders and archives — directories, ZIP/TAR-family archives, comic archives, torrents, ISO images, and other disk-image-style containers
- Binary files — metadata previews for non-text files
See Optional Tools for helpers that unlock richer metadata, thumbnails, and rendered previews.
| Platform | Config file |
|---|---|
| Linux / BSD | ~/.config/elio/config.toml (or $XDG_CONFIG_HOME/elio/config.toml) |
| macOS | ~/Library/Application Support/elio/config.toml |
| Windows | %APPDATA%\elio\config.toml |
See examples/config.toml for a complete annotated example.
Supported sections:
[ui]: startup UI options like top bar, hidden files, and initial grid view[places]: pinned sidebar entries and theDevicessection[layout.panes]: relative pane widths for Places, Files, and Preview[keys]: single-character key rebinding for browser actions
Notes:
- Omit
[places]to keep the default sidebar. - Omit
[layout.panes]to use the built-in responsive layout. - If
[layout.panes]is set, all three pane weights must be provided. places = 0hides the Places pane, andpreview = 0hides the Preview pane.filesmust be greater than0.- Pane weights are relative, so
10/45/45and20/90/90produce the same split. places.entriesaccepts built-in names,{ builtin, icon? }, or{ title, path, icon? }.- Custom
placespaths must be absolute or start with~/. - Invalid
placesentries are skipped with a warning. - Invalid or conflicting key bindings fall back to defaults with a warning.
- Invalid TOML falls back to the built-in defaults.
| Platform | Theme file |
|---|---|
| Linux / BSD | ~/.config/elio/theme.toml (or $XDG_CONFIG_HOME/elio/theme.toml) |
| macOS | ~/Library/Application Support/elio/theme.toml |
| Windows | %APPDATA%\elio\theme.toml |
Theme files layer on top of the built-in defaults, so you only need to set the keys you want to change.
Supported sections:
[palette]: app-wide colors[preview.code]: syntax highlight colors for code previews[classes.<name>]: default icon and color for a file class[extensions.<ext>]: overrides by file extension[files."<name>"]: overrides by exact filename[directories."<name>"]: overrides by exact directory name
Rules:
- Exact filename or directory rules win over extension rules.
- Extension rules win over class defaults.
- Matching is case-insensitive.
- Invalid theme files fall back to the built-in defaults, with errors reported to stderr.
Built-in file classes: directory · code · config · document · license · image · audio · video · archive · font · data · file
See assets/themes/default/theme.toml for the full default theme.
Controls
Keys marked with * are configurable in [keys] in config.toml; the defaults are shown here.
| Key | Action |
|---|---|
↑ / ↓ · j / k |
Move selection |
← · h · Backspace |
Go to parent directory |
→ · l · Enter |
Enter folder / open file |
g |
Go-to menu (g top, d downloads, h home, c config folder, t trash) |
G |
Jump to last item |
PageUp / PageDown |
Page up / down |
Tab / Shift+Tab |
Cycle places |
Alt+← / Alt+→ |
Back / forward in history |
| Key | Action |
|---|---|
f * |
Fuzzy-find folders in the current tree |
Ctrl+F |
Fuzzy-find files in the current tree |
| Key | Action |
|---|---|
o * |
Open with the system default application |
O * |
Open With chooser |
a * |
Create file or folder |
d * |
Trash; permanently delete if already in trash |
r * |
Rename / bulk rename / restore from trash |
F2 |
Rename / bulk rename |
| Key | Action |
|---|---|
v * |
Toggle grid / list view |
+ / - |
Grid zoom in / out |
. * |
Show / hide dotfiles |
s * |
Cycle sort (Name → Modified → Size) |
< / > * |
Scroll preview left / right |
| Key | Action |
|---|---|
Space |
Toggle selection |
Ctrl+A |
Select all |
y * |
Yank (copy) |
x * |
Cut |
p * |
Paste |
c * |
Copy path details to clipboard |
| Action | Description |
|---|---|
| Click | Select item |
| Double-click | Open item |
| Scroll | Scroll browser or preview |
Shift+Scroll |
Scroll preview sideways |
| Key | Action |
|---|---|
? |
Open help overlay |
Esc |
Cancel / clear selection / close overlay |
q * |
Quit |





