🔸 Description
🔸 Features
🔸 Installing CliFM
🔸 First steps
🔸 Support
🔸 License
🔸 Contributing
🔸 Community
CliFM is a Command Line Interface File Manager: all input and interaction is performed via commands. This is its main feature and strength.
Unlike most terminal file managers out there, indeed, CliFM replaces the traditional TUI interface (also known as curses or text-menu based interface) by a command-line interface, also known as REPL.1
If working with the command-line, your workflow is not affected at all, but just enriched with file management functionalities: automatic files listing, files selection, bookmarks, directory jumper, directory history, auto-cd and auto-open, bulk rename, and a trash system, among other features. In this sense, CliFM is certainly a file manager, but also a shell extension.
Briefly put, with CliFM the command-line is always already there, never hidden 💪
1 For a detailed explanation consult the introductory section of the Wiki. For more information about these concepts (CLI and TUI) see the resources page .
Watch me fly!
Music: "Quad Machine", by Sonic Mayhem
Note: Icons and files preview depend on third-party software. Consult the icons and files preview sections.
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 (or curses) at all, 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 (8-colors only and no Unicode support) like Rxvt and Rxvt-based ones.
- High performance. With a memory footprint below 5 MiB and a disk usage of less than 1 MiB it is incredibly lightweight and fast even on really old hardware.
- Short (and even one-character) commands, and entry list numbers (ELN's) for file names.
- Extended color codes for file-types and -extensions.
- Files counter for directories and symlinks to directories.
- Navigation and file operations
- Bookmarks.
- Etiqueta, a files tagging system
- 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).
- copy(-as), move(-as), interactive rename, and open-with functions.
- Bleach, a built-in file names cleaner
- Autocommands
- Auto-cd, auto-open, and autols.
- Kangaroo, a built-in directory jumper function similar to autojump, z.lua, and zoxide.
- Fastback function.
- Backdir - Quickly change to a parent directory.
- Lira, 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.
- Files filter.
- Up to eight workspaces.
- Eleven sorting methods.
- Bulk rename.
- Batch links.
- Archiving and compression support (including Zstandard and ISO 9660).
- Symlinks editor.
- Directory history map to keep in sight previous, current, and next entries in the directory history list.
- Shell
- Gemini, a Fish-like auto-suggestions system.
- TAB completion.
- FZF mode for TAB completion
- Syntax highlighting
- Warning prompt for invalid command names
- Fused parameters for ELN's.
- 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
- Standard mode
- Stealth mode: Leave no trace on the host system. No file is read, no file is written.
- Light mode (just in case it is not fast enough for you).
- Resource opener
- Disk usage analyzer mode
- Files lister (ls-mode)
- Customization
- Misc
- Plugins.
- Files preview (via BFG, a native file previewer, but including support for Ranger's scope.sh and pistol as well).
- Icons support 😏.
- Git integration.
- Remote file systems management.
- Easily mount/unmount storage devices
- Remove files in bulk using a text editor
- Unicode suppport.
- Disk usage.
- CD on quit and file picker functions.
- Advanced Copy support (just
cp
andmv
with a nice progress bar). - Mas, a built-in pager for files listing.
- Read and list files from STDIN (standard input).
- Secure environment and secure commands.
For a detailed explanation of each of these features, follow the corresponding links or consult the Wiki.
✔️ Changelog
- Forthcoming:
version 1.6 - Guybrush
:- ELN's color defaults now to cyan
--no-folders-first
and--folders-first
options renamed to--no-dirs-first
and--dirs-first
respectivelly. In the same way, thefolders-first
command was renamed todirs-first
.PromptStyle
option renamed asNotifications
(takingtrue
andfalse
as values)- Help topics: type
help
and then press TAB. Choose a topic and press Enter - Search strategies
-E
: ELN's use workspace color,-r
: do not refresh the screen on empty line- Wildcards expansion via TAB (
s *.[ch]<TAB>
) - File types expansion via TAB (
=l<TAB>
to list all symlinks in the current dir) - TAB completion for search patterns (
/<TAB>
) - TAB completion for users home directory (
~<TAB>
) - TAB completion for shell commands arguments. Try
ls -<TAB>
- More tilling window manager friendly
- emoji-icons
- Fuzzy completion for file names and paths
- Smarter TAB completion
- Improved interface for trash and selection functions
- Manage your prompts via the
prompt
command - Copy files to your smart phone via the
cr
action (plugin) - Hex color codes support (#rrggbb)
- FZF is now the default completer
- Extra color schemes
version 1.5
:Prompt
,WarningPromptStr
,DividingLine
, andFfzTabOptions
options were moved from the config file to the color scheme file to get a centralized and single theming file. However, to keep backwards compatibility, the old location is still recognized. If any of these options is found in the color scheme file, values taken from the main configuration file will be overriden.- The warning prompt color is set now via escape codes (exactly as the regular prompt). The
wp
color code is used now only for the input text color of the warning prompt.
verion 1.4
:- In order to make Lira more powerful1 it was necessary to introduce a little syntax modification in its configuration file.
1 It can now match entire file names instead of just file extensions
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 that just shell commands...
✓ The help
command gives you a quick introduction to CliFM: once in the CliFM prompt, type help
or ?
.
✓ Type help
and then press TAB to get a list of 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 these basic usage-examples to get you started.
For a complete description please consult our Wiki.
CliFM is C99 and POSIX-1.2008 compliant (if compiled with the _BE_POSIX
flag). Consult the compilation page.
It works on Linux, FreeBSD, NetBSD, OpenBSD, MacOS, and Haiku, on x86 and ARM architectures.
This project is licensed GPL version 2 (or later).
See the LICENSE file for details.
Yes. Please see our contribution guidelines for details. at Hosted Weblate.
Join our Gitter discussion room and let us know what you think: ideas, comments, observations and questions are always welcome.
The Discussions section of this repo is also open to input.