Clifm is a shell-like, text-based terminal file manager that sits on the command line.
Though fully-featured, powerful, and extensible, it is not so much about features, but about design, about the way in which you interact with your file system.
Most terminal file managers out there (if not all) are built using the TUI design principles, much like the superb Midnight Commander
and Ranger
. But clifm is built rather having the CLI design principles in mind: do not navigate through a big menu of files, just type it, exactly as you do in your regular shell, but easier and faster!
For this reason, clifm does not need to be better: it's just different! 😉
For a detailed description consult the introductory section of our Wiki.
Click here to expand
Besides common file operations such as copy, move, remove, etc., clifm provides the following features:
- Specific
- Really CLI-based. No GUI nor TUI at all, but just a command-line
- It can run on the kernel built-in console and even on a SSH or any other remote session
- Highly compatible with old VT102-only terminal emulators like Rxvt and Rxvt-based ones: even on a terminal with only 8 colors and no Unicode support, clifm will just work. It can run even on an old DEC-VT100 terminal!
- High performance. Incredibly lightweight and fast even on really old hardware
- Short (and even one-character) commands
- Entry list numbers (ELN's) for file names
- Extended color codes for file-types and -extensions
- Files counter for directories and symlinks to directories
- Support for files attributes, extended attributes, birth time, BSD flags, and Solaris doors.
- Privacy: Zero data collection and no connection to the outside world at all
- Security: Secure environment and secure commands. See also the stealth mode section
- Navigation and file operations
- Bookmarks
- File tags
- File filters (including support for
.hidden
files) - Files selection (supports both glob and regular expressions and works even across multiple instances of the program)
- Files search (supports both glob and regular expressions)
- File templates
- copy(-as), move(-as), interactive rename, and open-with functions
- File names cleaner
- Autocommands
- Auto-cd, auto-open, and autols
- Directory jumper, similar to autojump, z.lua, and zoxide
- Virtual directories
- Fastback - Quickly change to any parent directory
- A built-in resource opener (supports regular expressions and is able to discern between GUI and non-GUI environments)
- A built-in Freedesktop-compliant trash system
- Up to eight workspaces
- More than a dozen sorting methods
- Bulk operations: rename, create, remove, and create symbolik links in bulk
- Files encryption/decryption (plugin)
- Copy files to your smart phone (plugin)
- Archiving and compression support (including Zstandard and ISO 9660)
- Symlinks editor
- File permissions/ownership editor via the
pc
andoc
commands respectively - Remote file systems management
- Mount/unmount storage devices
- Advanced Copy support (just
cp
andmv
with a nice progress bar) - Directory history map to keep in sight previous, current, and next entries in the directory history list
- Shell
- Auto-suggestions
- TAB completion, with fzf integration (including file previews)
- Syntax highlighting
- Warning prompt for invalid command names
- Fused parameters for ELN's
- Fuzzy completion for file names and paths
- Wildcards expansion via TAB (
s *.[ch]<TAB>
) - File types expansion via TAB (
=l<TAB>
to list all symlinks in the current dir) - MIME types expansion (
@image<TAB>
) - Bash-like quoting system
- Shell commands execution
- Sequential and conditional commands execution
- Directory and commands history
- Glob and regular expressions (including inverse matching)
- Aliases
- Logs
- Prompt and profile commands (run commands with each new prompt or at program startup)
- Modes
- Stealth mode, also known as incognito or private mode
- Light mode (just in case it is not fast enough for you)
- Resource opener/files launcher (similar to
xdg
and Ranger'srifle
) - Files previewer (similar to
pistol
and Ranger'sscope.sh
) - Disk usage analyzer mode
- Files lister (ls-mode)
- Stat mode (just like stat(1))
- Customization
- Misc
- Plugins
- File previews (via TAB completion or the
view
command) - Icons support, including emoji-icons 😏
- Git integration
- Desktop notifications
- Unicode support (specifically UTF-8).
- Disk usage
- CD on quit and file picker functions
- A built-in pager for files listing
- Read and list files from STDIN (standard input)
For a detailed explanation of each of these features, follow the corresponding links or consult the Wiki.
If running on Linux, binary packages are available for most major distributions via the OpenSUSE Build System.
Note: Dependencies are most likely already satisfied, but in any case consult the dependencies section.
git clone https://github.com/leo-arch/clifm.git
cd clifm
sudo make install
For more information/supported platforms consult the installation page.
To start using clifm you don't need to learn anything new: the usual shell commands will just work. However, there is much more than just shell commands...
✓ The help
command gives you a quick introduction to clifm: once in the clifm prompt, enter help
or ?
.
✓ Type cmd<TAB>
to get the list of available commands and a brief description.
✓ Type help <TAB>
to get the list of available help topics. Select the one you want and press Enter.
✓ To jump into the COMMANDS section in the manpage, simply enter cmd
or press F2.
✓ Press F1 to access the full manpage and F3 to access the keybindings help-page.
✓ To get help about some specific command just type CMD -h
. For instance, s -h
.
You can also take a look at some of both our FAQ and these basic usage-examples to get you started.
For a complete description please consult our Wiki.
Consult the changelog file.
Clifm runs on Linux, Termux (Android), FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS, Solaris/Illumos, Haiku, and Cygwin/MinGW, on x86, ARM, PowerPC, and RISC-V architectures.
This project is licensed GPL version 2 (or later). See the LICENSE file for details.
Contributions are kindly welcome! Please see our contribution guidelines for details.
Visit the Discussions section of this repo and let us know what you think: ideas, comments, observations and questions are always useful.
Leo Abramovich <leo.clifm@outlook.com>.
Special thanks to all those who have contributed to this project.