/clifm

The shell-like, command line terminal file manager: simple, fast, extensible, and lightweight as hell

Primary LanguageCGNU General Public License v2.0GPL-2.0

CliFM logo

CliFM

The Command Line File Manager

Fast, extensible, lightweight

Linux, Termux (Android), FreeBSD, NetBSD, OpenBSD, MacOS, Haiku, Cygwin | x86, ARM


GitHub release (latest by date)

Language grade: C/C++ Code grade


Table of contents

🔸 Brief description
🔸 Features
🔸 Introduction video
🔸 What's new?
🔸 Installation
🔸 Getting started
🔸 Support
🔸 License
🔸 Contributing
🔸 Community


👾 Brief description

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 (CLI),1 also known as REPL.2

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, tags, directory jumper, directory and commands history, auto-cd and auto-open, bulk rename, TAB completion, autosuggestions, 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 :godmode: 💪


1 For more information about these concepts see the resources page .
2 For a detailed description consult the introductory section of our Wiki.


CliFM's interface


✔️ Features

Click here to expand

Besides common file operations such as copy, move, remove, etc., clifm provides the following features:


Auto-suggestions in action


For a detailed explanation of each of these features, follow the corresponding links or consult the Wiki.


🎬 Introduction video

Alt text


📰 What's new?

Click here to expand
  • Development:
  • version 1.8 (Otis):
    • If upgrading from a previous version (optional, but recommended):
      • F7 opens now shotgun's configuration file (instead of the jump database file). Update keybindings.clifm: removing the file and restarting is enough. Manually: run kb edit and then replace open-jump-db:\e[18~ by open-preview:\e[18~.
      • New specific options to control the files preview window. Add the following options to the FzfTabOptions line in your theme file (via the cs edit command) or just copy the theme file from the data directory (usually /usr/local/share/clifm/colors): --bind alt-p:toggle-preview,change:top,alt-up:preview-page-up,alt-down:preview-page-down --preview-window=wrap,border-left --color="border:7:dim".
    • clifmimg plugin, for image previews
    • view command, to preview files in full screen
    • TAB completion with file previews
    • Shotgun, a built-in files previewer
    • Improved Unicode support for the suggestions system
    • Flat-view for the fzfsel plugin via the -f option
    • Improved VT100 compatibility via the --vt100 switch
    • Cygwin support
    • Improved performance/portability of the suggestions system: no more slow/non-portable CPR-CUP escape sequences! These were replaced by 100% made in-house cursor position calculation plus basic/portable escape sequences: CUU, CUD, CUF, and CUB.
  • version 1.7 (Elaine):
  • 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 respectively. In the same way, the folders-first command was renamed to dirs-first.
    • PromptStyle option renamed as Notifications (taking true and false as values)
  • version 1.5 (Nano):
    • Prompt, WarningPromptStr, DividingLine, and FfzTabOptions 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.
  • version 1.4 (Alma):
    • In order to make Lira more powerful (it can now match entire file names instead of just file extensions) it was necessary to introduce a little syntax modification in its configuration file.

For more details consult the changelog file.


💾 Installation

Packaged versions

Packaging status Packaging status Packaging status

If running on Linux, a binary package is available for most major distributions.

Installing from a clone (Linux/BSD)

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.


💡 Getting started

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 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 these basic usage-examples to get you started.
For a complete description please consult our Wiki.


Support

Clifm is C99 and POSIX-1.2008 compliant (if compiled with the _BE_POSIX flag). Consult the compilation page.
It works on Linux, Termux (Android), FreeBSD, NetBSD, OpenBSD, MacOS, Haiku, and Cygwin, on x86 and ARM architectures.


License

This project is licensed GPL version 2 (or later).
See the LICENSE file for details.


Contributing

Yes. Please see our contribution guidelines for details. Translation status at Hosted Weblate.


Community

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.