Skip to content
clarkarchPublic

Repository files navigation

tfm logo
tfm (terminal file manager)
stable website tfm on The Terminal Index

tfm

Showcase

showcase.mp4

Embedded terminal

embedded-terminal.mp4

Preview pane

preview.mp4

Animations

animation.mp4

Features

  • Mouse: click, rubber-band select, right-click menus, drag and drop.
  • Browse files in grid or list view.
  • Sidebar with places, bookmarks, drives, trash, recent, starred.
  • Search as you type, including inside subfolders.
  • Sort by name, size, date.
  • Copy, move, paste, duplicate, rename.
  • Bulk rename multiple files at once.
  • New file / new folder inline.
  • Drag and drop between panes and from other apps.
  • Trash, restore, delete forever, empty trash.
  • Undo / redo file operations.
  • Notifications that grow with the message — click a cut one to read the rest.
  • Preview text, code, images, videos, folders.
  • Open files + Open With app picker.
  • Properties dialog with permissions editing.
  • Tabs + dual pane.
  • Connect to network servers.
  • Extract and compress archives.
  • Browse inside archives (tar, zip, 7z, rar) as folders.
  • Eject USB drives safely; plug and unplug detected live.
  • Set tfm as your default file manager.
  • Embedded terminal.
  • Clipboard copy/paste with other apps.
  • Open privileged files with sudo prompt.
  • Command palette to search and run any action.
  • Customizable themes, settings GUI, keybinds.
  • Plugin support with hot reload (source builds only — see Plugins).
  • …and many more.

Requirements

  • Linux.
  • Any terminal (need image support for the full experience).
  • Everything below is optional.
    • xdg-open (opening files)
    • magick (extra photo thumbnails)
    • gio (starred files and servers)
    • udisksctl (USB drives)
    • ffmpeg (video thumbnails)
    • wl-clipboard / xclip (copy and paste with other apps)
    • tar / unzip / zip / 7z (zip files and archives)

Install

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

build from source

The main branch, built on your machine — needs git and Bun 1.4 or newer:

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

Or manually build from source:

git clone https://github.com/clarkarch/tfm-tui.git
cd tfm-tui
bun install --frozen-lockfile
bun run check && bun test
bun run compile && cp dist/tfm ~/.local/bin/

tfm runs a patched OpenTUI fork. It is published to npm as @clarkarch/opentui-fork and pulled in as a normal dependency — there is nothing extra to clone or build.

Update

esc → About or:

tfm update

Uninstall

tfm uninstall

Keys

  • enter open · f2 rename · backspace/alt+up up · alt+home home · escape menu · f1 help · ctrl+p command palette
  • ctrl+c/x/v/d copy/cut/paste/duplicate · ctrl+z/y undo/redo
  • tab switch focused pane · f5/f6 copy/move to the other pane (dual pane)
  • ctrl+t/w new/close tab · ctrl+tab switch tab (per pane)
  • delete trash · alt+enter properties · ctrl+q quit
  • ctrl+a select all · space toggle · shift+arrows extend selection
  • alt+left/right history back/forward · ctrl+shift+n / ctrl+alt+n new folder/file
  • ctrl+shift+d dual pane · ctrl+=/- zoom · ctrl+r reload places · ctrl+alt+r restart
  • tfm update installs the newest release (esc → About → Update checks on demand)
  • ctrl+h hidden · ctrl+l path bar · ctrl+g grid/list · f3 preview · ctrl+\``/f4terminal ·ctrl+shift+s` connect to server
  • arrows move · pageup/pagedown page · home/end first/last

Everything is remappable: esc → Settings → keys.

Config

esc → Settings or:

TFM_CONFIG=/custom/path/config.toml tfm

See config.example.toml.

Plugins

esc → Plugins or:

tfm plugins search
tfm plugins add <url|id>
tfm plugins new my-plugin

See docs/plugins.md.

The release binaries are compiled ahead of time without --aot-allow-code-from-disk, so tfm does not offer plugins there: tfm plugins says so and the plugin commands are off. A build from source (below) still has plugins. The reason is a policy, not a limit of the binary — see docs/aot-evaluation.md.

Notes

  • Cross-app drag & drop is kitty-only.
  • Mouse on the Linux console (TTY) needs gpm running.
  • Custom kitty themes can misbehave.

License

MIT

Releases

Packages

Contributors

Languages