Skip to content

Repository files navigation

tfm (terminal file manager)

A modern, mouse-first file manager with places sidebar, grid view, drag & drop, image thumbnails right inside your terminal

alpha website

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.

tfm

Features

  • 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 $SHELL in 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

Requirements

  • Linux
  • A terminal with the kitty graphics protocolrecommended: 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 thumbnails
    • ffmpeg — video thumbnails & previews (else videos show plain icons)
    • gio — Nautilus-compatible trash & starred files
    • xdg-open — opening files in their default app
    • udisksctl — removable-drive mount/eject
    • wl-paste/wl-copy or xclip — clipboard bridge with GUI apps

Install

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

Installs 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.

Keys

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

~/.config/tfm/config.toml — see config.example.toml. Themes, tile size, session restore, glyph-only icon mode.

Limitations

  • 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-passthrough is 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

License

MIT

About

Modern mouse-first terminal file manager

Topics

Resources

Stars

79 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages