A modern, mouse-first file manager with places sidebar, grid view, drag & drop, image thumbnails right inside your terminal
Warning
Experimental vibecoded software — expect rough edges. Don't test on files you can't afford to lose. If you want to test safely, use Podman: podman run --rm -it archlinux bash
Important
This is still a terminal UI running inside your terminal, expect some visual/behavioral anomalies.
- Mouse-first: click, rubber-band select, context menus, inline rename
- Drag & drop: move between folders (
ctrl+drag), drag out to other apps, drop in from outside — cross-app DnD is kitty-only (OSC 72), in-app drag works everywhere - Desktop integration: GTK bookmarks, recent files (
recently-used.xbel), XDG trash with restore, system clipboard bridge - Embedded terminal: right-click empty space → Open Terminal Here runs
$SHELLin a pane at the current folder; keys hand off to tfm when you click the grid - Previews: kitty image thumbnails, tree-sitter syntax highlighting, folder stats
- Themes: 30+ bundled presets (Tokyo Night, Catppuccin, Dracula, Gruvbox, Nord, Rose Pine, Solarized, …) with live switching, fully configurable via
config.toml
- Linux
- A terminal with the kitty graphics protocol — recommended: kitty (full experience incl. cross-app drag & drop); ghostty gets thumbnails but not cross-app drag; others fall back to Nerd Font glyphs
- Runtime helpers (the installer checks these and tells you what's missing):
rsvg-convert— theme-tinted icons (else Nerd Font glyphs)magick— SVG image thumbnailsffmpeg— video thumbnails & previews (else videos show plain icons)gio— Nautilus-compatible trash & starred filesxdg-open— opening files in their default appudisksctl— removable-drive mount/ejectwl-paste/wl-copyorxclip— clipboard bridge with GUI apps
curl -fsSL https://raw.githubusercontent.com/clarkarch/tfm-tui/main/install.sh | bashInstalls to ~/.local/bin as tfm (and terminal-file-manager). Prebuilt binaries for linux x86_64/aarch64 are on Releases.
From source:
bun install
bun run compile && cp dist/tfm ~/.local/bin/Dev: bun dev. Launch anywhere with tfm ~/some/path.
| Key | Action |
|---|---|
| type anywhere | live search · enter opens first match · esc cancels |
enter / f2 |
open / rename |
backspace |
parent directory |
esc |
menu (settings, view mode, sort, …) |
ctrl+q |
quit |
ctrl+z / ctrl+y |
undo / redo (ctrl+shift+z works too) |
ctrl+x / ctrl+c / ctrl+v |
cut / copy / paste |
ctrl+a |
select all |
ctrl+h |
toggle hidden files |
ctrl+r |
reload sidebar places |
ctrl+t / ctrl+w |
new tab / close tab (middle-click a chip also closes) |
ctrl+tab / ctrl+shift+tab |
next / previous tab |
delete |
trash (delete again in trash: permanent) |
ctrl+click / shift+click |
toggle / range select |
plain drag / ctrl+drag |
drag out of terminal / move inside tfm |
| right-click | context menu |
All keys are remappable under [keys] in config.toml (or esc → Settings → Keys).
~/.config/tfm/config.toml — see config.example.toml. Themes, tile size, session restore, glyph-only icon mode.
- Linux only; no macOS/Windows support
- Image thumbnails need a kitty-graphics-protocol terminal (kitty, ghostty); others fall back to Nerd Font glyphs
- tmux hides rasters unless
allow-passthroughis on; icons render but won't display images - Cross-device moves are copy+delete (no atomic rename across filesystems) — they run through the copy engine with the progress toast
- Drag & drop to/from other apps is kitty-only (OSC 72): ghostty does image thumbnails and in-app drag (
ctrl+drag), but cross-app drag won't work there - Custom kitty themes might misbehave
