dsxmachina/rfm

rust-file-manager

28

stars

570

commits

Rust

primary language

Aug 7, 2026

updated

README

πŸ—€ rfm - A fast file-manager written in pure rust

Build crates.io

rfm is a terminal file manager with Miller-columns and VI-style keybindings, built for speed. It takes a lot of inspiration from ranger and vifm, while staying snappy on huge directories and keeping the mental load low β€” there is no separate "console mode", you just type commands straight into the application.

rfm is beta, but has been in daily use for years without trouble. If something looks off, please open an issue or PR.

rfm image

Highlights

  • ⚑ Fast & responsive, even on large directories β€” nothing blocks your workflow
  • πŸ—‚ Miller-columns layout with instant text & image previews (no dependencies required)
  • πŸͺŸ Tabs & split view β€” up to four tabs, plus a vifm-style side-by-side split
  • ↩️ Undo / redo for almost every file operation
  • πŸ—‘ Freedesktop trash integration with a built-in trash browser (gT)
  • πŸ“Œ Jump-marks β€” static directory shortcuts and vim-style m/' bookmarks
  • 🎨 Mime-type styling with colors and optional Nerd Font icons
  • πŸ”Ž Live search, Emacs-style cd completion and zoxide support
  • πŸ›  Custom shell commands bound to your own keys
  • πŸ”§ Fully configurable keybindings, colors and file associations

Installation

Via cargo:

cargo install rfm-bin

Via nix flake:

nix run github:dsxmachina/rfm             # try it
nix profile install github:dsxmachina/rfm # install

From source:

git clone https://github.com/dsxmachina/rfm
cd rfm
cargo build --release
cp target/release/rfm /usr/local/bin/rfm

Keybindings at a glance

KeyActionKeyAction
h j k lmove aroundspacemark / unmark
gg / Gtop / bottomn / Nnext / prev marked
/ fsearchdd / yy / ppcut / copy / paste
cdchange directoryrename mkdir touchmanipulate
gn / Tabnew tab / next tabdeletedelete (to trash)
!toggle split viewu / ctrl-rundo / redo
zhtoggle hiddengTopen trash view
Qquitqclose tab (quits on last)

Everything is configurable β€” this is just the default set. See the full usage guide for the complete list.

Configuration

rfm reads three files from ~/.config/rfm/ (created with commented defaults on first run):

  • config.toml β€” behaviour, colors, mime-type styles, custom commands
  • keys.toml β€” keybindings and jump-marks
  • open.toml β€” which application opens which file type

See docs/configuration.md for the full reference and examples/ for complete, commented sample configs.

Documentation

Design philosophy

  • Speed first β€” you should almost never wait for the file manager. ranger is wonderful, but written in Python it gets sluggish on large directories.
  • Low mental load β€” no modes where keys mean different things. Creating a directory, searching and jumping around all work the same way: just type.
  • Reversible β€” if you go fast, you may go wrong, so operations are undoable.
  • Few dependencies β€” the essentials work out of the box.

License

GPL-3.0

Contributors

iml-chammerm

300 commits

dsxmachina

264 commits

m0rphism

4 commits

DrTobe

1 commits

dsxmachina/rfm

rust-file-manager

28

stars

570

commits

Rust

primary language

Aug 7, 2026

updated

README

πŸ—€ rfm - A fast file-manager written in pure rust

Build crates.io

rfm is a terminal file manager with Miller-columns and VI-style keybindings, built for speed. It takes a lot of inspiration from ranger and vifm, while staying snappy on huge directories and keeping the mental load low β€” there is no separate "console mode", you just type commands straight into the application.

rfm is beta, but has been in daily use for years without trouble. If something looks off, please open an issue or PR.

rfm image

Highlights

  • ⚑ Fast & responsive, even on large directories β€” nothing blocks your workflow
  • πŸ—‚ Miller-columns layout with instant text & image previews (no dependencies required)
  • πŸͺŸ Tabs & split view β€” up to four tabs, plus a vifm-style side-by-side split
  • ↩️ Undo / redo for almost every file operation
  • πŸ—‘ Freedesktop trash integration with a built-in trash browser (gT)
  • πŸ“Œ Jump-marks β€” static directory shortcuts and vim-style m/' bookmarks
  • 🎨 Mime-type styling with colors and optional Nerd Font icons
  • πŸ”Ž Live search, Emacs-style cd completion and zoxide support
  • πŸ›  Custom shell commands bound to your own keys
  • πŸ”§ Fully configurable keybindings, colors and file associations

Installation

Via cargo:

cargo install rfm-bin

Via nix flake:

nix run github:dsxmachina/rfm             # try it
nix profile install github:dsxmachina/rfm # install

From source:

git clone https://github.com/dsxmachina/rfm
cd rfm
cargo build --release
cp target/release/rfm /usr/local/bin/rfm

Keybindings at a glance

KeyActionKeyAction
h j k lmove aroundspacemark / unmark
gg / Gtop / bottomn / Nnext / prev marked
/ fsearchdd / yy / ppcut / copy / paste
cdchange directoryrename mkdir touchmanipulate
gn / Tabnew tab / next tabdeletedelete (to trash)
!toggle split viewu / ctrl-rundo / redo
zhtoggle hiddengTopen trash view
Qquitqclose tab (quits on last)

Everything is configurable β€” this is just the default set. See the full usage guide for the complete list.

Configuration

rfm reads three files from ~/.config/rfm/ (created with commented defaults on first run):

  • config.toml β€” behaviour, colors, mime-type styles, custom commands
  • keys.toml β€” keybindings and jump-marks
  • open.toml β€” which application opens which file type

See docs/configuration.md for the full reference and examples/ for complete, commented sample configs.

Documentation

Design philosophy

  • Speed first β€” you should almost never wait for the file manager. ranger is wonderful, but written in Python it gets sluggish on large directories.
  • Low mental load β€” no modes where keys mean different things. Creating a directory, searching and jumping around all work the same way: just type.
  • Reversible β€” if you go fast, you may go wrong, so operations are undoable.
  • Few dependencies β€” the essentials work out of the box.

License

GPL-3.0

Contributors

iml-chammerm

300 commits

dsxmachina

264 commits

m0rphism

4 commits

DrTobe

1 commits

Languages

Rust

99.5%