A modern, mouse-first file manager with places sidebar, grid view, drag & drop, image thumbnails and more, right inside your terminal.
Warning
Beta software, usable daily, but back up anything irreplaceable first before performing a files op.
Important
This is still a terminal UI running inside your terminal, expect some visual/behavioral anomalies.
- Click, rubber-band select, right-click menus, inline rename.
- Drag files between folders (ctrl+drag), out to other apps, or in from outside. Cross-app drag is kitty-only.
- Places sidebar, GTK bookmarks, recent files, XDG trash with restore, clipboard.
- Dual pane: two independent file panes side by side, each with its own top bar
(path, sort, search) and its own tabs.
Tabswitches the focused side,F5copies the selection to the other pane,F6moves it. - Network locations:
sftp://,smb://, WebDAV, FTP… via gvfs (sidebar → Connect to Server…), credentials prompted in-app. - Embedded terminal (right-click → Open Terminal Here).
- Auto-hide panes: sidebar/preview/terminal collapse to the edge and slide back (animated) when the mouse nears them.
- Extract and compress archives (right-click).
- Image/video thumbnails, text syntax highlighting, folder sizes.
- Type-to-search, tabs, undo/redo, 30+ themes.
- Linux.
- Image thumbnails need the kitty graphics protocol (kitty, ghostty, WezTerm, Konsole…). Without it you get Nerd Font glyphs. Cross-app drag needs kitty.
- Optional tools (the installer lists what's missing):
rsvg-convert(icons and SVG thumbnails)magick(raster image thumbnails)ffmpeg(video thumbnails)gio(starred files, network locations)xdg-open(open files in their default app)udisksctl(mount/eject drives)wl-clipboard/xclip(clipboard with GUI apps)tar/unzip/zip/7z(archives)
curl -fsSL https://raw.githubusercontent.com/clarkarch/tfm-tui/main/install.sh | bashOr build from source:
bun install --frozen-lockfile
bun run check && bun test
bun run compile && cp dist/tfm ~/.local/bin/enteropen ·f2rename ·backspaceup ·escapemenuctrl+c/x/v/dcopy/cut/paste/duplicate ·ctrl+z/yundo/redotabswitch focused pane ·f5/f6copy/move to the other pane (dual pane)ctrl+t/wnew/close tab ·ctrl+tabswitch tab (per pane)deletetrash ·alt+enterproperties ·ctrl+qquitctrl+hhidden ·ctrl+lpath bar ·ctrl+ggrid/list ·f9preview ·f4terminal ·ctrl+shift+sconnect to server
Everything is remappable: esc → Settings → keys.
~/.config/tfm/config.toml, see config.example.toml.
Override the path with TFM_CONFIG; XDG homes are honored. --debug writes a log.
TypeScript plugins in ~/.config/tfm/plugins/<name>/<name>.ts with full trust,
hot reload, commands/keybinds, context menus, previews, events, pre-op veto
hooks, and UI slots (render OpenTUI widgets into the statusbar / sidebar
footer). Install from a git URL in esc → Plugins, or:
tfm plugins search
tfm plugins add <url|id>
tfm plugins new my-pluginSee docs/plugins.md.
- Linux only.
- Thumbnails need the kitty graphics protocol; tmux hides them unless
allow-passthroughis on. - Cross-app drag & drop is kitty-only.
- Rasterized icons can show a black box when a floating UI paints over them (menu scrims, rubber-band selection).
- Custom kitty themes can misbehave.