How to Install superfile on Ubuntu: A Pretty Fancy and Modern Terminal File Manager

superfile bills itself as a “pretty fancy and modern terminal file manager”, and it earns the description. Instead of a single listing, it gives you a whole workspace in the terminal: a sidebar for home, pinned folders and mounted disks, as many file panels as you care to open, a preview pane, and footer panels tracking file operations, metadata and the clipboard. It is written in Go and ships as one self-contained binary.

You will not find superfile in the Ubuntu archive. The common install routes are upstream’s piped shell script or a manually fetched binary, both of which leave every future update to you.

The unofficial deb.griffo.io repository offers a cleaner path: superfile packaged as a proper Ubuntu .deb and delivered over APT, so you install it and keep it current with the same commands you already use.

Install the Latest superfile on Ubuntu: The Short Version

If you only came for the commands, this adds the repository and installs the latest superfile .deb package on Ubuntu:

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt update
sudo apt install superfile

Launch it by typing spf. The sections below walk through each step, explain the superfile versus spf naming, and cover updates, configuration and troubleshooting.

What Makes superfile Special?

  • 🗂️ Multi-panel layout - Several file panels side by side, framed by a sidebar, a preview pane and footer panels for processes, metadata and the clipboard.
  • 👀 Rich previews - Highlighted source code, folder contents, and inline images in terminals with Kitty graphics protocol support.
  • 🔍 Fast search - Narrow down the current directory as you type after pressing /.
  • ✅ Selection mode - Mark many items and copy, cut or delete them in a single action.
  • 📦 Archives built in - Create .zip files and unpack archives from inside the file manager.
  • 🗑️ Trash bin - Deleted files go to the trash first, so mistakes can be undone.
  • 📌 Pinned directories - Keep your favourite folders one keypress away in the sidebar.
  • 🎨 Themes and hotkeys - More than twenty bundled themes, remappable keys and an official Vim-flavoured keymap.
  • 🔌 Plugins - Opt-in exiftool metadata, MD5 checksums and zoxide directory jumping.
  • 📦 Single static binary - Nothing extra to install at runtime.

Why Use the deb.griffo.io Repository?

  • Easy installation and updates through APT rather than a shell installer.
  • Automatic dependency management provided by the Ubuntu packaging, with the optional helpers listed as suggestions.
  • Always tracks upstream releases so you stay near the latest superfile.
  • No compiling from source and no Go toolchain to look after.
  • Works across supported Ubuntu releases, with the codename detected for you.

Prerequisites

Before starting, confirm you have:

  • An Ubuntu system (Jammy 22.04 LTS, Noble 24.04 LTS, Questing 25.10, or Resolute 26.04 LTS)
  • sudo privileges
  • curl installed (sudo apt install curl if needed)

Builds exist for amd64 and arm64. The file and folder icons come from a Nerd Font, so switch your terminal to one if you want superfile to look like the screenshots. It runs fine without one; the troubleshooting section shows how to turn icons off.

Step 1: Add the deb.griffo.io Repository

Register the key and repository source:

# Create the keyrings directory
sudo install -d -m 0755 /etc/apt/keyrings

# Download and install the repository GPG key
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg

# Add the repository (auto-detects your distro codename)
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null

# Update the package list
sudo apt update

Breaking it down:

  1. Create the keyrings directory - makes sure /etc/apt/keyrings exists with the right permissions.
  2. Install the GPG key - downloads and de-armours the repository key into its own keyring so APT can verify signatures.
  3. Add the repository - writes a signed-by source line, letting lsb_release -sc fill in your Ubuntu codename.
  4. Update the package list - refreshes APT’s view of available packages.

Step 2: Update the Package List

If you did not run the final command above, do it now:

sudo apt update

Step 3: Install superfile

Install with APT:

sudo apt install superfile

Ubuntu installs recommended packages by default, so xdg-utils comes along too. That is what lets superfile hand a file to your desktop’s default application when you press enter on it.

Extras Worth Adding

None of these are required, but each one switches on a feature:

sudo apt install zoxide libimage-exiftool-perl ffmpeg poppler-utils wl-clipboard
  • zoxide - backs the jump-to-directory modal; for a newer build than the archive’s, see How to install zoxide on Ubuntu.
  • libimage-exiftool-perl - supplies exiftool for the extended metadata plugin.
  • ffmpeg and poppler-utils - make video and PDF previews possible.
  • wl-clipboard or xclip - clipboard support; Ubuntu desktops default to Wayland, so wl-clipboard is usually the right choice, while X11 sessions want xclip.

Step 4: Verify the Installation

One detail to know up front: you install superfile, but you run spf. Upstream has always named the binary that way. Check the version:

spf --version

You should see something like:

superfile version v1.6.0

Upstream ships no man page, so spf --help is where the full list of flags and subcommands lives.

Getting Started with superfile

Your First Session

# Start in the current directory
spf

# Start somewhere else
spf /var/log

# Start with two panels, one per path
spf ~/Music ~/Videos

q or esc exits, and ? pops up every available hotkey whenever you forget one.

Arrow keys and Vim-style letters both work out of the box:

  • k/j (or up/down) move the cursor.
  • l, right or enter step into a folder or open a file; h, left or backspace step back out.
  • / filters the current directory, . shows or hides dotfiles, o opens sorting options and R flips the sort order.
  • P adds the current directory to the sidebar’s pinned list, or removes it.

Working with Panels

  • n adds a file panel, w closes the one in focus, and tab/L or shift+left/H cycle between them.
  • s, p and m jump to the sidebar, processes and metadata panels; the same key brings you back.
  • f toggles the preview pane and F hides or shows the footer.

Directory sizes are computed only while the metadata panel is focused, so large folders do not slow down everyday browsing.

Managing Files

The default bindings follow one easy-to-remember principle: anything that modifies files needs ctrl, so stray letters can never damage your data.

ActionHotkey
New file (add a trailing / for a folder)ctrl+n
Renamectrl+r
Copy / cut / pastectrl+c / ctrl+x / ctrl+v
Send to trashctrl+d
Delete for goodD
Zip / extractctrl+a / ctrl+e
Edit file / open directory in editore / E
Copy path / copy working directoryctrl+p / c

The clipboard panel lists what you have copied or cut, and the processes panel shows progress for anything that takes a while. On external drives, deletions bypass the trash entirely.

Bulk Selection

v flips the current panel into selection mode. Mark items one at a time with enter, sweep a range with shift+up/shift+down (or K/J), or select the whole directory with A. Copy, cut and delete then apply to everything marked.

Prompts

  • : runs a shell command in the current directory and shows you its exit code.
  • > opens superfile’s own prompt, where cd <path>, open <path> and split manage panels.

Configuring superfile

The configuration files are generated the first time you run spf. Print their locations with the pl shorthand for path-list:

spf pl

On Ubuntu you will find:

  • ~/.config/superfile/config.toml - general settings
  • ~/.config/superfile/hotkeys.toml - keymap
  • ~/.config/superfile/theme/ - your own theme files
  • ~/.local/state/superfile/superfile.log - logs

Pick a theme by editing a single line of config.toml:

theme = "catppuccin-latte"

The default is catppuccin-mocha, and the bundle also includes dracula, nord, onedark, everforest-dark-medium, tokyonight and others. Vim users should replace hotkeys.toml with upstream’s Vim-style keymap before they get too frustrated.

When a new release introduces extra settings or bindings, these flags add the missing entries while keeping your customisations:

spf --fix-config-file
spf --fix-hotkeys

Turning On Plugins

With the extras installed, enable the matching plugins in config.toml and restart superfile:

metadata = true
zoxide_support = true

z now opens the zoxide jump modal. If bat is installed, code_previewer = "bat" swaps the built-in syntax highlighter for it.

Following superfile’s Directory on Exit

Out of the box, quitting superfile returns you to the directory you started in. To have your shell follow you to wherever you were browsing, enable this setting:

cd_on_quit = true

Next, paste upstream’s wrapper into ~/.bashrc (it works unchanged in ~/.zshrc):

spf() {
    os=$(uname -s)

    # Linux
    if [[ "$os" == "Linux" ]]; then
        export SPF_LAST_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/superfile/lastdir"
    fi

    # macOS
    if [[ "$os" == "Darwin" ]]; then
        export SPF_LAST_DIR="$HOME/Library/Application Support/superfile/lastdir"
    fi

    command spf "$@"

    [ ! -f "$SPF_LAST_DIR" ] || {
        . "$SPF_LAST_DIR"
        rm -f -- "$SPF_LAST_DIR" > /dev/null
    }
}

Run source ~/.bashrc to load it. The wrapper is also what makes the Q hotkey work, quitting and changing to the current folder whenever you choose. Fish users can grab the equivalent function from upstream’s cd_on_quit directory.

Keeping superfile Updated

superfile rides along with your normal Ubuntu upgrades:

sudo apt update && sudo apt upgrade

When a newer superfile appears in deb.griffo.io, apt upgrade installs it alongside your other packages. superfile’s own once-a-day update check is redundant when APT manages the binary, so feel free to disable it:

auto_check_update = false

Other Tools from deb.griffo.io

The repository includes many tools that sit well next to superfile:

  • zoxide - a smarter cd that feeds superfile’s jump modal.
  • Yazi - a blazing fast terminal file manager with a different take on the job.
  • fzf - a general-purpose fuzzy finder for the command line.
  • Ghostty - a GPU-accelerated terminal that displays superfile’s image previews.
  • restic - encrypted, deduplicated backups for everything you are organising.

Troubleshooting

GPG or Key Errors

If APT flags the repository as unsigned or the key as invalid, re-import it:

curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update

Package Not Found

If APT cannot locate superfile:

  1. Re-run sudo apt update after adding the repository.
  2. Verify your Ubuntu release is supported (Jammy, Noble, Questing, or Resolute).
  3. Check the source list: cat /etc/apt/sources.list.d/deb.griffo.io.list.

Typing superfile Does Nothing

There is no superfile command. Use spf; dpkg -L superfile | grep bin shows exactly what the package installed.

Missing or Garbled Icons

Boxes and question marks where icons should be mean the terminal font is not a Nerd Font. Either switch to one in your terminal’s preferences, or disable icons in config.toml:

nerdfont = false

The Interface Renders Incorrectly

Check that locale reports a UTF-8 locale. If borders still misalign, launch superfile with:

RUNEWIDTH_EASTASIAN=0 spf

No Image Previews in GNOME Terminal

GNOME Terminal, Ubuntu’s default, does not support the Kitty graphics protocol that superfile uses for inline images, so previews fall back to text. kitty, WezTerm and Ghostty all display them.

An Old Script-Installed spf Shadows the Package

Upstream’s install script puts spf in /usr/local/bin, which comes before /usr/bin in the default PATH:

which -a spf

Delete the old copy with sudo rm /usr/local/bin/spf so the APT-managed binary is the one that runs.

Uninstalling

Remove superfile with:

sudo apt remove superfile

APT does not touch per-user files, so ~/.config/superfile and ~/.local/share/superfile remain until you delete them yourself. To also remove the repository and key:

sudo rm /etc/apt/sources.list.d/deb.griffo.io.list
sudo rm /etc/apt/keyrings/deb.griffo.io.gpg
sudo apt update

Conclusion

On Ubuntu, deb.griffo.io turns superfile into a first-class APT package: no installer script, no manual updates, just a capable multi-panel file manager in your terminal. Previews, bulk selection, archives, a trash bin and a large theme collection all come in a single binary, maintained with apt upgrade.

Type spf, set a Nerd Font, and switch on cd_on_quit if you want superfile to become the way you move around your filesystem.

Frequently Asked Questions

How do I install the latest superfile on Ubuntu?

Add the deb.griffo.io APT repository and its signing key, then run sudo apt install superfile. The repository tracks upstream superfile releases, so you get the latest packaged version rather than a build frozen when your distribution was released.

Is there a .deb package for superfile?

Yes. deb.griffo.io publishes superfile as a signed .deb for Ubuntu. You could download that .deb and install it by hand, but adding the repository is the better option: APT then resolves dependencies and picks up new versions on its own.

What is the superfile command called?

spf. The package carries the project name, superfile, while the binary it installs at /usr/bin/spf keeps upstream’s short name.

How do I update superfile to the latest version?

Run sudo apt update && sudo apt upgrade. Setting auto_check_update = false in config.toml stops superfile from checking for releases itself, which APT already handles.

How do I install superfile on Debian?

Exactly the same way; lsb_release -sc simply resolves to a different codename. There is a companion guide with the Debian specifics: How to install superfile on Debian.

Which Ubuntu releases are supported?

Jammy 22.04 LTS, Noble 24.04 LTS, Questing 25.10 and Resolute 26.04 LTS, on amd64 and arm64. Because the repository line is built from lsb_release -sc, the matching suite is selected for you.

Resources


Disclaimer: The deb.griffo.io repository is an unofficial community project and is not affiliated with the official Debian or Ubuntu projects, or with the upstream superfile project.