Superfile: A Modern Terminal File Manager for Linux and macOS

Linux TLDR
Last Updated:
Reading time: 5 minutes

Superfile is a modern terminal file manager that recently caught my attention; it’s not only easy to use but is very user-friendly compared to its alternatives, such as Ranger, MC, or nnn.

It allows you to create files and directories, view (process, metadata, clipboard), provide a navigation pane, create multiple panels to work in two separate directories, support plugins, offer a variety of themes, and much more.

The project is new, so there have been active updates every week, allowing you to see new features quickly. I’ve also been using it for a few days, and honestly, one key factor in using DE in Linux for me was its easy-to-use file manager, but with Superfile, there’s no need for that now.

Today, in this article, I’ll guide you on installing Superfile on Linux, using it, installing plugins, and changing the default theme.

Tutorial Details

DescriptionSuperfile: A Modern CLI File Manager
Difficulty LevelLow
Root or Sudo PrivilegesNo
OS CompatibilityLinux, macOS, and Windows (Kindof).
Prerequisites–
Internet RequiredYes (for installation)

How to Install Superfile on Linux

Prior to installation, Superfile relies on Nerd Font for displaying file and directory icons in the terminal, so make sure you install and enable it by reading our article on Nerd Font installation.

To install Superfile, you have multiple options, but the easiest and most trusted method is using the brew command. If you have HomeBrew installed on your Linux system or are using macOS, then run:

$ brew install superfile

Apart from HomeBrew, you can also install it using the shell script with curl or wget commands, or manually compile it from source, though we do not recommend these methods; if you insist, you can follow them to install Superfile.

So, to install Superfile using the shell script, simply execute your preferred command.

# Via Curl
$ bash -c "$(curl -sLo- https://raw.githubusercontent.com/MHNightCat/superfile/main/install.sh)"

# OR

# Via Wget
$ bash -c "$(wget -qO- https://raw.githubusercontent.com/MHNightCat/superfile/main/install.sh)"

To compile and build it yourself, run the following series of commands:

πŸ“
Make sure you have the required Golang package installed before proceeding with compilation.
# Clone the project repository.
$ git clone https://github.com/MHNightCat/superfile.git

# Enter the downloaded directory and run the "build.sh" file.
$ cd superfile && ./build.sh

# Add the compiled binary to your "/bin" directory.
$ mv ./bin/spf /usr/local/bin

That’s it. You have now successfully installed Superfile on your system.

How to Use Superfile on Linux

Once the installation is complete, you can access the Superfile by using the β€œspf” command.

πŸ“
On the first launch, you may come across a welcome screen that you can skip by pressing the β€œEnter” key.
superfile dashboard

To effectively work with Superfile, it’s essential to be familiar with the correct key bindings. For instance, use the β€œb” key to focus on the navigation pane, the β€œp” key for the process bar, β€œm” for metadata, and β€œq” or β€œEsc” to quit the Superfile.

πŸ“
To refocus on the file panel, simply press the same key again. Additionally, you will only see the directory’s size when you focus on metadata.

In the file panel, you can use the arrow key for navigation, the β€œEnter” key to open the active file (in the default application) or directory, the β€œBackspace” key to return, and β€œCtrl+f” to search.

To maximize the workspace, you can quickly create multiple file panels (like tabs in File Manager) to work on multiple directory structures using the β€œCtrl+n” key, press β€œTab” to cycle between the file panels, and β€œCtrl+w” to close the active file panel.

πŸ“
The number of file panels that can be created is determined by your screen’s height and width.

You can press β€œCtrl+h” to see dotfiles (hidden files), the β€œc” key to create a file, the β€œf” key to create a directory, the β€œr” key to rename the selected file or directory, β€œCtrl+c” to copy, β€œCtrl+x” to move the selected file or directory, β€œCtrl+v” to paste, and β€œCtrl+d” to delete them.

To edit the selected file using the default text editor, you can press β€œeβ€œ. Additionally, press β€œCtrl+r” to compress a file or directory (in Zip format), β€œCtrl+e” to decompress, and the β€œv” key to enable bulk selection mode, where the β€œEnter” key can be used to select individual files. Once done, you can perform bulk file operations.

πŸ“
To change the default editor, you can set the β€œEDITOR” environment variable.

There are quite a few more hotkeys you can use to enhance your productivity while using Superfile. To check out the complete list, visit this page. If you want to edit any existing key binding, you can do so by editing β€œhotkeys.toml” with your preferred text editor, either Nano or Vim.

# Via Nano
$ nano ~/.config/superfile/hotkeys.toml

# OR

# Via Vim
$ vim ~/.config/superfile/hotkeys.toml

Output:

editing the default shortcut keys in superfile

As you can see, you have the option to add two different keys to a specific task, feel free to edit this file (but for safety, keep a backup before editing). Once done, save and close the file.

How to Install Plugins in Superfile

Superfile provides a plugin option to increase the built-in capabilities. At present, Superfile has only one plugin in its catalog, named Metadata, but due to its ongoing development, we anticipate more in the future.

Now, if you want to enable the Metadata plugin that allows you to see more information about the file or directory, such as modification date, access date, errors, file permissions, and more, you first need to install the required β€œexiftool” package for this plugin.

# On Debian, Ubuntu, Mint, Pop!_OS, etc.
$ sudo apt install exiftool

# On RHEL, CentOS, Fedora, Rocky Linux, AlmaLinux, etc.
$ sudo dnf install exiftool

# On Arch, Manjaro, EndeavourOS, Garuda, etc.
$ sudo pacman -S perl-image-exiftool

Once installed, edit the β€œconfig.toml” file and change β€œmetadata = false” to β€œmetadata = trueβ€œ.

# Via Nano
$ nano ~/.config/superfile/config.toml

# OR

# Via Vim
$ vim ~/.config/superfile/config.toml

Output:

install plugin in superfile

After editing the file, save and close it. Once you’ve done this, you can view more metadata information of any file.

use plugin in superfile

This way, when new plugins arrive in the future, you can easily install and activate them.

How to Install Themes in Superfile

The Superfile comes with multiple themes, such as Catpuccino (default), Dracula (my favorite), Kaolin, Nord (Wow), RosΓ© Pine, Tokyonight, and Gruvbox. You can check out the appearance of each theme on the theme list page.

The default theme is β€œCatpuccinoβ€œ, which is decent, but I prefer the β€œDraculaβ€œ; thus, to install it or any other theme, open the β€œconfig.toml” file and specify the name of your chosen theme to β€œtheme = 'theme-name'” derivative.

# Via Nano
$ nano ~/.config/superfile/config.toml

# OR

# Via Vim
$ vim ~/.config/superfile/config.toml

Output:

change theme in superfile

Once done, save and close the file, and check your theme’s look by opening Superfile.

use theme in superfile

Final Word

That’s it for this article. Today, you learned how to install and use the amazing modern Superfile CLI file manager, as well as how to install plugins and themes. I’ve been using it for a while, and it’s the closest thing to replacing any GUI file manager.

If you find it interesting or know of any other such tool, please leave a comment.

Till then, peace!

Join The Conversation

Users are always welcome to leave comments about the articles, whether they are questions, comments, constructive criticism, old information, or notices of typos. Please keep in mind that all comments are moderated according to our comment policy.

3 thoughts on β€œSuperfile: A Modern Terminal File Manager for Linux and macOS”

  1. Are there any plans for a snap or flatpak or appimage versions to be made?
    Not everyone wants to bloat their PC with golang sources for a one-time compilation of superfile.

    Reply