Terminal file manager (TUI) with dual-pane navigation and preview.
Downloads and installable packages are attached to each GitHub Release: https://github.com/MichaelWeissDEV/TFM/releases
CI pipeline (builds .deb/.rpm/.pkg.tar.zst/AppImage + binaries) runs on tags vX.Y.Z.
- Dual-pane navigation with preview.
- Regex file search (case-insensitive).
- Marker system with search (name/path).
- Open With picker and quick open slots.
- Shell suspend/return (
topens a subshell).
- Navigate directories and open files with the system default handler.
- Create files/dirs, rename, delete.
- Cut/copy/paste; copy path to clipboard.
- Toggle hidden files and metadata/list columns.
- Preview text/images/binary metadata.
- Default path:
~/.config/tfm/config.toml(fallbacks:~/.tfm.toml, YAML variants). - Env override:
TFM_CONFIG=/path/to/config.toml. - If no config exists, TFM writes a default one and uses built-in defaults.
- Example config (all defaults):
example_config.toml.
- Download the
tfm-<version>-x86_64-unknown-linux-gnu.tar.gzasset. - Extract and install:
tar -xzf tfm-<version>-x86_64-unknown-linux-gnu.tar.gzsudo install -m755 tfm /usr/local/bin/tfm
- Download the
.debasset and install:sudo apt install ./tfm_<version>_amd64.deb
- Download the
.pkg.tar.zstasset and install:sudo pacman -U ./tfm-<version>-1-x86_64.pkg.tar.zst
- Download the
.rpmasset and install:sudo zypper install ./tfm-<version>-1.x86_64.rpm
- Download the
.AppImageasset and run:chmod +x ./tfm-<version>.AppImage && ./tfm-<version>.AppImage
GPLv3 (GNU General Public License v3.0 only). See LICENSE.
Theme colors are strings (named colors or #RRGGBB):
background,foreground: base UI text/background.accent: borders/titles.folder: folder entries.selection_bg,selection_fg: selection highlight.warning,error: warnings/errors (warning is used in preview mismatches).
Each binding is a list of strings:
- Single characters:
"q","/","M". - Special keys:
"enter","esc","backspace","up","down","left","right". - Modifiers:
"ctrl+o"(use uppercase letters for shifted chars, e.g."O").
Normal mode:
q: quitup/k: move updown/j: move downleft/h: parent dirright/l/enter: open entry/: search (regex)a: add prefixr: renamed: delete prefixm: set markerM: marker listg: jump markers: settings prefixv: view prefixc: copy (prefix for copy-path)x: cutp: pastet: open shell (exit returns to TFM)o: open-with quick prefixctrl+oorO: open-with picker
Add prefix (a then):
d: add dir- any other key: add file (starts input with that key)
Settings prefix (s then):
r: toggle permissions (metadata bar)d: toggle dates (metadata bar)o: toggle owner (metadata bar)m: toggle metadata barh/H: toggle hidden files
View prefix (v then):
p: toggle list permissions columnso: toggle list owner columns
Copy prefix (c then):
p: copy selected path to clipboard
Delete prefix (d then):
d: confirm delete (theny/n)
Marker list (M):
up/k,down/j: moveenter: jumpr: renamee: edit pathd: deletea: add marker/: search markers (n:/p:prefixes)esc: close
Open With picker (ctrl+o or O):
- type to filter,
backspaceto delete up/down: moveenter: openesc: close
Configure quick opens in TOML:
[open_with]
quick = { 1 = "nvim", 2 = "vim"}
Use o1, o2, o3 in normal mode. Programs must be in PATH or use full paths.
In marker search (/ inside marker list), you can scope:
n:orn/for name onlyp:orp/for path only