tfm

(terminal file manager)

A modern, mouse-first file manager with places sidebar, grid view, drag & drop, image thumbnails right inside your terminal.
Built on OpenTUI + Bun.

$ curl -fsSL https://raw.githubusercontent.com/clarkarch/tfm-tui/main/install.sh | bash

Linux only · experimental software — don't test on files you can't afford to lose

tfm — ~
tfm browsing the home folder: places sidebar, grid of files, preview pane

Features

a GUI file manager that lives in your terminal

Mouse-first

Click, rubber-band select, right-click context menus, inline rename — no memorizing a modal keymap to get things done. ctrl+click toggles, shift+click ranges.

Drag & drop

Move files between folders with ctrl+drag. Drag out of the terminal to other apps and drop files in — cross-app DnD via the kitty graphics protocol (OSC 72).

Desktop integration

GTK bookmarks, recently-used files, XDG trash with restore, system clipboard bridge with GUI apps, removable drives via udisksctl. Undo/redo for every operation.

>_

Embedded terminal

Right-click empty space → Open Terminal Here runs your $SHELL in a pane at the current folder. Drop files onto the prompt to paste their paths.

Previews & thumbnails

Image and video thumbnails (kitty graphics), tree-sitter syntax-highlighted text previews, folder stats — with a disk-cached thumbnail pipeline so folder revisits are instant.

30+ themes

Tokyo Night, Catppuccin, Dracula, Gruvbox, Nord, Rose Pine, Solarized… live-switchable in the settings menu, fully configurable via config.toml. Try them below.

Themes

32 bundled presets, switchable at runtime

click any theme to restyle this page — the same live palette swap ships inside tfm (esc → Settings → Theme).

Keys

muscle-memory bindings — every one remappable under [keys] in config.toml

type anywherelive search · enter opens first match
enter / f2open / rename
backspaceparent directory
escmenu (settings, view mode, sort, …)
ctrl+qquit
ctrl+z / ctrl+yundo / redo
ctrl+x / c / vcut / copy / paste
ctrl+aselect all
ctrl+t / wnew tab / close tab
ctrl+tabnext / previous tab
deletetrash (again in trash: permanent)
ctrl+click / shift+clicktoggle / range select
plain dragdrag out of terminal (kitty)
ctrl+dragmove inside tfm
right-clickcontext menu
ctrl+htoggle hidden files

Config

~/.config/tfm/config.toml — invalid values fall back per-key, never fatal

# ~/.config/tfm/config.toml — see config.example.toml in the repo
[ui]
sidebar-width   = 26      # 16..60 cells
tile-width      = 20      # 10..40 cells (grid view)
tile-height     = 5       # 3..10 cells
preview-enabled = false   # right-side preview pane
view-mode       = "grid"  # "grid" tiles or "list" rows
ui-style        = "solid" # or "outline" — rounded borders
restore-session = false   # reopen last folder on launch
transparent-bg  = false   # follow kitty background_opacity

[theme]
bg     = "#1a1b26"   # or pick a preset: esc → Settings → Theme
accent = "#7aa2f7"

[keys]
quit = ["ctrl+q"]    # every action remappable, several binds allowed