A fast, keyboard-driven TUI file manager written in Rust.
CMF (Compact Minimalist File manager) is a lightweight, terminal-based file manager designed for speed and simplicity. It features a clean monochrome interface, full mouse support, dynamic plugin loading via shared libraries, and adaptive layout that adjusts to your terminal width.
- Minimalist Design — Clean monochrome interface with rounded borders.
- Keyboard & Mouse — Navigate with arrow keys or click, scroll, and double-click to open.
- Live Search — Press
fto filter files by name and content in real time. - Dynamic Plugins — Drop
.so/.dylib/.dllfiles into~/.config/cmf/plugs/to extend functionality without recompiling. - Adaptive Layout — Automatically adjusts panels to terminal width.
- File Operations — Create, delete, rename, copy, and paste files and directories.
- File Preview — Built-in text preview panel with syntax-aware Nerd Font icons.
- External Editor — Opens files in
$EDITOR(falls back tonanoif unset or empty). - Themes — Built-in
defaultanddarkthemes, plus custom HEX colors via config.
A PKGBUILD is included in the repository for Arch-based distributions:
git clone https://github.com/flare-d/cmf.git
cd cmf
makepkg -sigit clone https://github.com/flare-d/cmf.git
cd cmf
cargo build --release
cp target/release/cmf ~/.local/bin/./install.shcmf [OPTIONS] [PATH]| Flag | Description |
|---|---|
-v, --version |
Print version and exit |
-h, --help |
Print help and exit |
PATH |
Directory to open on startup |
CMF respects the $EDITOR environment variable. If it is unset or empty, nano is used automatically.
export EDITOR=vim
cmf| Key | Action |
|---|---|
↑ / ↓ |
Move cursor |
Enter |
Open file or directory |
Backspace / ← |
Go to parent directory |
h |
Toggle hidden files |
f |
Find / filter files by name and content |
n |
Create new file |
d |
Create new directory |
r |
Rename selected item |
c |
Copy to clipboard |
v |
Paste from clipboard |
x / Delete |
Delete selected item |
q / Esc |
Quit |
Press f again with an empty query to clear the filter.
Configuration is stored in ~/.config/cmf/cmf.conf.
theme = default
show_hidden = falsedefault— Classic monochrome white-on-black.dark— Subtle blue-gray tones for low-light environments.
Custom colors can be set via theme_* hex keys in the config file.
Place compiled cdylib plugins in ~/.config/cmf/plugs/. CMF loads them on startup without recompilation. See examples/clock_plugin/ for a minimal example.
MPL-2.0