clarkarch/tfm-tui

Modern mouse-first terminal file manager

79

stars

0

commits

TypeScript

primary language

Sep 3, 2026

updated

clarkarch.github.io/tfm-tui/
bun
file-manager
kitty-terminal
opentui
terminal-file-manager
tui

README

tfm (terminal file manager)

A modern, mouse-first file manager with Nautilus-inspired places sidebar, grid view, drag & drop, image thumbnails

alpha

[!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
    • 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/master/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

KeyAction
type anywherelive search · enter opens first match · esc cancels
enter / f2open / rename
backspaceparent directory
ctrl+z / ctrl+yundo / redo
ctrl+x / ctrl+c / ctrl+vcut / copy / paste
ctrl+aselect all
ctrl+htoggle hidden files
deletetrash (delete again in trash: permanent)
ctrl+click / shift+clicktoggle / range select
plain drag / ctrl+dragdrag out of terminal / move inside tfm
right-clickcontext menu

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)
  • 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

clarkarch/tfm-tui

Modern mouse-first terminal file manager

79

stars

0

commits

TypeScript

primary language

Sep 3, 2026

updated

clarkarch.github.io/tfm-tui/
bun
file-manager
kitty-terminal
opentui
terminal-file-manager
tui

README

tfm (terminal file manager)

A modern, mouse-first file manager with Nautilus-inspired places sidebar, grid view, drag & drop, image thumbnails

alpha

[!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
    • 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/master/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

KeyAction
type anywherelive search · enter opens first match · esc cancels
enter / f2open / rename
backspaceparent directory
ctrl+z / ctrl+yundo / redo
ctrl+x / ctrl+c / ctrl+vcut / copy / paste
ctrl+aselect all
ctrl+htoggle hidden files
deletetrash (delete again in trash: permanent)
ctrl+click / shift+clicktoggle / range select
plain drag / ctrl+dragdrag out of terminal / move inside tfm
right-clickcontext menu

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)
  • 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

Languages

TypeScript

98.7%

Shell

1.3%