Software & Tools
Quick Answer
superfile, invoked as spf, is an open-source terminal file manager written in Go. It renders an interactive file browser inside your terminal using a text-based user interface, or TUI. You navigate directories, copy files, preview contents, and manage your filesystem using keyboard shortcuts, all without leaving the command line. It runs on Windows, macOS, and Linux, installs through standard package managers, and is particularly useful for developers and system administrators who manage remote servers over SSH. It does not replace your shell or your text editor. It complements them by making interactive file operations faster to see and execute.
What Problem superfile Solves
Most people who spend time in a terminal manage files through discrete shell commands. You type cd to change directory, ls to list contents, cp to copy, mv to move, and rm to delete. This approach is precise, scriptable, and powerful. It is also repetitive and visually sparse.
Consider a realistic scenario. You have connected to a remote Linux server through SSH. You need to inspect several directories inside /var/log/, copy a configuration file to a backup location, rename a log file, and check the contents of a service directory. With shell commands alone, each ls output scrolls away as soon as you run the next command. There is no persistent visual context. You are constantly reorienting yourself.
superfile addresses this by providing a persistent, interactive view of the filesystem that updates in real time as you navigate. You launch it once, browse visually, perform operations through keyboard shortcuts, and exit when finished. The paths you navigate are the same paths the shell sees. The files you manipulate are the same files on disk. The difference is the interface.
This distinction between interface and operation is central to understanding superfile. It is not a virtual filesystem. It is not a remote file transfer tool. It is not a replacement for your terminal. It is a file manager that happens to draw its interface using terminal characters instead of graphical pixels. Every action maps to a standard operating system filesystem call. Delete a file in superfile and it is gone from the disk. Copy a file and the bytes are duplicated through the same kernel mechanisms that cp uses. The TUI is a lens, not a sandbox.
Understanding the TUI Paradigm
To appreciate what superfile does, it helps to understand the three common ways humans interact with computers: the GUI, the CLI, and the TUI.
A Graphical User Interface, like Windows File Explorer or macOS Finder, draws windows, icons, buttons, and menus through the operating system’s graphical subsystem. It requires a display server, a window manager, and a pointing device. It is intuitive for most users because it mimics physical desk organization. You see folders as icons, you drag files between windows, and you click buttons to perform actions.
A Command Line Interface, like Bash or PowerShell, accepts typed commands and returns text output. It is sequential. You type ls, read the output, decide what to do next, and type the next command. It is extremely efficient for automation because commands can be composed, scripted, and repeated. It is less efficient for exploration because each command gives you only a snapshot, and the visual context disappears as the terminal scrolls.
A Terminal User Interface occupies the space between these two. It runs inside a terminal emulator, using only text characters to draw borders, panels, and interactive elements. It does not require a graphical desktop. It does not need a mouse, though some TUIs support one. It continuously redraws the terminal screen to maintain a persistent visual layout. You navigate with the keyboard, and the display updates in place rather than scrolling.
superfile uses the Bubble Tea framework, a Go library built on top of the Charm ecosystem, to manage this event loop. When you press a key, Bubble Tea captures the event, passes it to superfile’s handler, updates the application state, and triggers a re-render. The terminal screen is cleared and redrawn with the new layout. Because the application is written in Go and compiled to native code, it does not carry the overhead of a web browser, a JavaScript engine, or an Electron wrapper.
The result is an interface that feels closer to a GUI in terms of visual organization, but runs in environments where a GUI is impossible or undesirable. A headless Linux server has no display server. A Docker container has no desktop. An SSH session from your laptop to a remote datacenter has no graphical pipe. In all of these cases, a TUI file manager provides visual file navigation where a GUI cannot exist and a CLI is too cumbersome for interactive exploration.
How superfile Fits Into Your System
superfile is neither a shell nor a terminal emulator. It is an application that runs inside your terminal, launched from your shell, and interacts with your operating system’s filesystem. Understanding this stack helps you troubleshoot issues and set realistic expectations.
GUI vs CLI vs TUI: Where superfile Fits
superfile occupies the space between graphical file managers and raw shell commands. It provides visual navigation without requiring a graphical desktop. This makes it uniquely suited to environments where a GUI is unavailable but interactive file management is still needed.
Who Should Use superfile
superfile is not exclusively a developer tool. It is useful for anyone who manages files through a terminal and wants a more visual experience. A student organizing downloaded PDFs and assignments can benefit from it. A normal desktop user who prefers keyboard navigation can use it to browse ~/Downloads or ~/Documents without reaching for the mouse. A developer navigating project directories can use it to compare source and test folders side by side. A Linux user inspecting configuration files in ~/.config/ can use it to toggle hidden files and preview settings. A remote server administrator can use it over SSH to manage logs and service files.
The common thread is the terminal. If you already open a terminal for some part of your workflow, superfile makes file management within that terminal faster and more visual. If you never use a terminal, superfile is not the right starting point. A graphical file manager is a better introduction to file management.
Platform Support
superfile is advertised as cross-platform, but cross-platform support for terminal applications is not uniform. The terminal emulator, the shell, the filesystem semantics, and the available system calls all vary by operating system. Understanding these differences helps you choose the right installation path and set realistic expectations.
Installation: Step by Step for Every Platform
Installing superfile is straightforward on most platforms, but the exact steps differ by operating system and package manager. The following sections cover the available installation methods for Windows, macOS, and Linux.
Windows
The Winget method is the simplest for Windows 10 and 11 users. Open Windows Terminal or PowerShell and run:
winget install --id yorukot.superfile After installation, restart your terminal session so the new binary is available in your PATH. Then verify the installation:
spf --version If you prefer Scoop, install with:
scoop install superfile For WSL users, do not install the Windows binary. Instead, open your WSL distribution and follow the Linux instructions below. The WSL superfile binary is the Linux build, and it handles WSL paths natively.
macOS
Homebrew is the standard method. Run:
brew install superfile Homebrew will download the appropriate binary for your architecture, whether Intel or Apple Silicon, and place it in /opt/homebrew/bin/ or /usr/local/bin/ depending on your system. After installation, spf should be available immediately if Homebrew is in your PATH.
Linux
For Arch Linux and derivatives, use Pacman:
sudo pacman -S superfile For NixOS or Nix package manager users:
nix profile install github:yorukot/superfile#superfile For Linux distributions without a listed package-manager option, the project’s install script provides another installation method. Download and execute it with:
bash -c "$(curl -sLo- https://superfile.dev/install.sh)" Before piping any remote script into your shell, you should inspect its contents. Download the script first, read it, and then execute it locally if you are satisfied it is safe:
curl -sLo install-superfile.sh https://superfile.dev/install.sh
less install-superfile.sh
bash install-superfile.sh Building from source is also an option if you have Go installed. Clone the repository and build:
git clone https://github.com/yorukot/superfile.git
cd superfile
./build.sh Place the resulting spf binary somewhere in your PATH, such as ~/.local/bin/, and ensure that directory is included in your shell’s PATH variable.
Installation Decision Map
Not sure which installation method to use? This decision map guides you to the correct approach based on your operating system and environment.
First Launch and Interface Overview
When you run spf for the first time, it creates its configuration directory if it does not already exist. It then reads the default configuration, scans the current working directory, and draws the initial interface. The default view shows a single file panel occupying most of the screen, with a sidebar or metadata area on the right depending on your terminal width.
The interface is divided into logical regions. The top bar typically shows the current path. The main panel lists files and directories in a column. Each row shows the item name, an icon or indicator for the file type, and optional metadata such as size or modification date. The bottom bar may show keyboard hints or the current mode. The exact layout depends on your terminal size. superfile adapts to narrow terminals by hiding optional panels and truncating long filenames.
Navigation begins immediately. You can use the arrow keys or Vim-style h/j/k/l keys. Pressing Enter or l enters a directory. Pressing h or Left goes to the parent directory. Pressing q or Esc exits the application and returns you to your shell. There is no splash screen, no setup wizard, and no account creation. The application is ready to use the moment it appears.
If your terminal supports true color and you have a Nerd Font installed, the interface will display file type icons and color-coded entries. If not, superfile falls back to plain text and basic ANSI colors. The functionality is identical in both cases. The font only affects aesthetics.
Navigation: A Complete Guide
Navigation is the core activity in any file manager. superfile provides multiple input methods to accommodate different user preferences. You can use arrow keys if you are new to terminal tools. You can use Vim-style keys if you are comfortable with modal editing. You can customize everything if neither default suits you.
Basic Movement
The simplest way to move is with the arrow keys. Down and Up move the selection cursor. Right or Enter opens the selected item. Left or Backspace goes to the parent directory. This behavior is intuitive for anyone who has used a graphical file manager. The cursor wraps around if you continue past the last item, which is convenient for long directories.
For users who prefer to keep their hands on the home row, superfile supports Vim-style navigation. j moves down. k moves up. l opens the selected item. h goes to the parent directory. This layout mirrors the directional arrangement in Vim. If you already use Vim or Neovim, these bindings will feel natural. If you do not, they are still easy to learn because each key is adjacent to the others on the keyboard.
Directory Operations
Opening a directory changes the active path and refreshes the panel with the new contents. The previous directory is not loaded into memory. superfile requests the listing from the OS each time. This means you always see the current state of the filesystem, including files that were created or deleted by other processes since you last visited the directory.
Going to the parent directory is equally simple. h, Left, or Backspace all work. The cursor attempts to position itself on the directory you just came from, which makes it easy to explore a sibling directory.
Hidden Files
On Unix-like systems, files and directories that begin with a dot are hidden by default. This includes critical files like .gitignore, .env, and directories like .git/ and .ssh/. superfile respects this convention. Hidden items are not shown unless you toggle them. Press . to show or hide dotfiles. This is a toggle, not a mode, so you can switch back and forth instantly. For developers and system administrators, this shortcut is essential because configuration files are almost always hidden.
Search Within a Directory
Press / to open the search bar. As you type, superfile filters the current directory listing to show only items matching your query. The search is real-time and case-insensitive by default. It matches against filenames, not file contents. This is useful when a directory contains many files and you know part of the name.
It is important to understand the scope. This search operates only on the current directory. It is not recursive. It does not search subdirectories or file contents. If you need to find every file modified in the last seven days across an entire project, find or fd is the right tool. superfile’s search is for quick filtering, not deep querying.
Essential Keyboard Shortcuts
superfile’s efficiency comes from its keyboard-driven design. You do not need to memorize every shortcut to start using it. A minimal set covers most navigation needs. The defaults support both arrow keys and Vim-style h/j/k/l movement.
File Operations in Depth
Beyond navigation, a file manager must handle the basic operations of file management: create, copy, move, rename, delete, compress, and extract. superfile maps these to keyboard shortcuts that are familiar from graphical environments.
Copy, Cut, and Paste
Select a file or directory and press Ctrl+C to copy it to the internal clipboard. The item is visually marked. Navigate to the destination directory and press Ctrl+V to paste. The operation uses the OS filesystem copy mechanism. For directories, this is recursive. The progress is shown in the interface. If a file with the same name already exists at the destination, superfile will prompt you for resolution.
Cut works the same way. Ctrl+X marks the item for moving. Ctrl+V at the destination moves it. This is equivalent to the shell command mv source destination. The internal clipboard is separate from your system clipboard. Copying a file in superfile does not place it in the operating system clipboard, so you cannot paste it into a graphical application.
Selection Mode
For operations involving multiple files, enter selection mode by pressing v. The cursor changes to indicate selection mode is active. Navigate to each file you want to include and press the selection toggle key. Selected items are highlighted. You can also use Shift+J and Shift+K to extend the selection downward or upward, similar to shift-clicking in a GUI. Shift+A selects all items in the current panel.
Once you have selected the desired files, perform the operation. Ctrl+C copies all selected items. Ctrl+X cuts them. Ctrl+D deletes them. Navigate to the destination and paste. This is significantly faster than typing multiple cp commands with different source paths. It is also less error-prone because you can see exactly which files are selected before you act.
Rename and Create
Press Ctrl+R to rename the selected item. An inline text field appears. Type the new name and confirm. This is equivalent to mv oldname newname. Press Ctrl+N to create a new file or directory. superfile will prompt you to specify whether you are creating a file or a folder and what to name it. The new item appears immediately in the listing.
Delete and Permanent Delete
superfile distinguishes between delete and permanent delete. Ctrl+D or the Delete key sends the item to the system trash or recycle bin where supported. Shift+D bypasses the trash and removes the item immediately. On Linux, this distinction depends on whether a trash service is available. On some headless servers, there may be no trash implementation, in which case both shortcuts may behave identically.
This distinction is critical on production servers. If you are browsing a sensitive directory and accidentally press Shift+D on an important file, the file is gone immediately. superfile does not ask for confirmation by default for permanent deletion. This is a design choice that prioritizes speed over safety. You should be aware of it. Exercise extreme caution with the Shift+D shortcut.
Compress and Extract
Ctrl+A compresses the selected item into a ZIP archive. Ctrl+E extracts a selected archive. These operations use the Go standard library and external compression tools depending on the archive format. The supported formats include ZIP and common Unix archive types. This is useful for creating quick backups of a directory or extracting a downloaded archive without leaving the terminal.
How a superfile Action Works
When you perform an operation in superfile, the application translates your keyboard input into a filesystem action and then updates the display. This simplified conceptual model helps you understand what happens under the hood.
Multiple Panels: The Killer Feature
Single-panel file browsing is fine for simple navigation. It becomes frustrating when you need to move files between distant directories. The constant cd back and forth disrupts your mental model of where things are. superfile solves this with multiple panels.
Press n to create a new file panel. Press Shift+N to split the current panel. Press Tab to switch focus between panels. Press w to close the focused panel. Each panel maintains its own path, scroll position, and selection state. You can have one panel showing your Downloads folder and another showing your Documents folder. You can copy files between them without ever typing a path.
This workflow is transformative for anyone who regularly moves files between directories. Imagine you are organizing your Downloads folder. You have files that belong in Documents, files that belong in Pictures, and files that need to be archived. With multiple panels, you keep Downloads open in one panel, open Documents in another, and archive in a third. You sort files visually, copying or moving them with a few keystrokes. The entire operation takes seconds and requires zero path typing.
The panel system also helps with organization. You can keep one panel on your project root, one on your logs, and one on your configuration files. Switching between them is instant. This is faster than bookmarking directories in a shell because the visual context is always present. You do not need to remember what was in each directory. You can see it.
Preview and Metadata Panels
Sometimes you need to see what a file contains without opening it in a full editor. superfile’s preview panel, toggled with f, shows the contents of the selected file in a side panel. This is useful for quickly checking a configuration file, reading a README, or verifying a log entry. The preview is read-only. It does not allow editing. For that, you use the editor integration.
The preview panel attempts to render the file with basic syntax highlighting for common formats. Plain text, source code, and configuration files are displayed with color coding. Binary files are shown with a hex or summary view indicating that they are not text. The preview is generated on demand. It does not pre-read every file in the directory. Only the currently selected file is loaded into the preview buffer.
The metadata panel, activated with m, shows detailed file information. This includes the exact size in bytes, the modification timestamp, the permissions in octal and symbolic notation, the owner and group, and the file type. This is the information you would normally get from ls -lah or stat, but presented in a persistent panel that updates as you navigate. It is faster than running stat repeatedly when you are inspecting multiple files.
Neither panel eliminates the need for command-line tools. When you need precise permission analysis, stat and ls still provide more detailed output. When you need to edit a file, a proper editor is necessary. The panels are conveniences for the most common inspection tasks.
Editor Integration and the Command Bar
superfile does not include a text editor. It is a file manager. When you want to edit a file, you open it in an external editor. Select a file and press e. superfile checks the EDITOR environment variable. If it is set, it launches that editor with the selected file. If not, it falls back to a default: nano on Linux and macOS, and Notepad on Windows. You can configure the editor in superfile’s settings if you prefer a specific editor regardless of the environment variable.
Pressing Shift+E opens the current directory in the configured directory editor. This is useful if you use an editor like VS Code or Neovim that can open entire directories as projects. The workflow becomes seamless: browse in superfile, press e to edit a single file, or Shift+E to open the whole directory in your IDE.
The command bar, opened with :, is where superfile bridges the gap between TUI and shell. You can type any shell command and execute it without leaving superfile. The output appears in a temporary view, and you return to the file manager when finished. This is useful for quick checks that do not warrant quitting the application.
For example, you are browsing ~/Projects/weather-app/ and want to check the Git status. Instead of quitting superfile, running git diff, and restarting superfile, you press :, type git diff, and see the output. Then you press a key to return to browsing. This preserves your navigation context. You do not lose your place in the directory tree.
The command bar also lets you run syntax checks, linting, or build commands. You could press : and run npm test to verify your project. You could run go build to compile a Go project. Each command executes in the current working directory, which is the directory shown in the focused panel. This makes the command bar context-aware.
Configuration System Explained
superfile’s behavior is controlled through TOML configuration files. TOML is a human-readable configuration format that is less verbose than JSON and more structured than plain text. The main configuration file is config.toml. The hotkey configuration is in hotkeys.toml. Both files are created automatically on first launch with default values.
config.toml
The main configuration file controls appearance and behavior. You can set the default panel layout, enable or disable the preview panel, configure the editor, set the trash behavior, and adjust color schemes. The file is well-commented by default, with each option explained inline. You do not need to memorize the documentation. You can open the file in any text editor and read the comments.
One important setting is the Nerd Font option. If you do not have a Nerd Font installed, you should disable icons to prevent garbled characters. Another useful setting controls whether hidden files are shown by default. If you work primarily with projects where .gitignore and .env are constantly relevant, you might want to enable this by default.
hotkeys.toml
The hotkey file defines the keyboard mappings. Each action has an array of keys that trigger it. This array design means you can assign multiple keys to the same action. For example, list_down might map to both down and j. You can add your own preferred keys or remove defaults you do not use.
The project provides a Vim-style hotkey preset. If you enable this, the arrow keys remain available, but additional Vim conventions are applied throughout the interface. This is not a full modal system like Vim itself. It is simply a remapping of navigation and operation keys to Vim-friendly alternatives.
You can also specify a custom hotkey file at launch using the --hotkey-file flag. This is useful if you want different keybindings for different contexts. For example, you might have a default configuration for general use and a specialized configuration for server administration where certain shortcuts are remapped to avoid conflicts with other tools.
Themes
superfile supports custom themes. Themes are defined in the theme/ subdirectory of the configuration folder. A theme file specifies colors for the background, foreground, borders, selected items, directories, files, and various UI elements. The format is straightforward. You specify ANSI color codes or hex values for each element. The project ships with a default theme, and the community has contributed additional themes. If you spend hours in superfile, a comfortable color scheme is worth configuring.
Integrating with Your Workflow
superfile is designed to coexist with your existing tools. It does not replace your shell, your text editor, or your version control system. It complements them by providing a visual file management layer inside the terminal.
The command bar (:) is the primary integration point. It lets you run any shell command and return to the file manager. This is useful for quick checks, builds, Git operations, and syntax checks. You can also open files in your preferred editor with e and open entire directories in an IDE with Shift+E.
superfile also integrates with zoxide, a smarter cd command that learns your habits. Press z in superfile to open the zoxide interface and jump to frequently visited directories. This is faster than navigating manually if you have a large and deep directory structure.
superfile vs the Shell: When to Use Which
The most common misconception about terminal file managers is that they replace shell commands. They do not. They replace the interactive, visual portion of file management. The shell remains superior for automation, scripting, and large-scale operations. The productive workflow uses both tools where they excel.
Use superfile when you are exploring an unfamiliar directory structure. The visual layout lets you see the hierarchy at a glance. You notice files you might have missed in a text listing. You can compare directories side by side. You can preview files before opening them. These are tasks where visual context reduces cognitive load.
Use shell commands when you need precision, repetition, or scale. If you need to find every file modified in the last day, find is the right tool. If you need to rename a thousand files using a pattern, a shell loop or rename command is appropriate. If you need to synchronize two entire directory trees, rsync is designed for that. If you need to search the contents of files, grep or rg is faster and more flexible than any file manager’s search.
Use superfile for copying a few files between directories. Use cp or rsync for copying thousands of files or for operations that must be reproducible. Use superfile for renaming a single file. Use a shell script for batch renaming. Use superfile for deleting a few items. Use rm -rf with extreme caution for bulk deletion, or better yet, use a script that logs what it deletes.
The command bar in superfile acknowledges this division. It lets you drop into the shell for a single command and return to the TUI. This is the best of both worlds. You get the visual navigation of a file manager and the raw power of the shell, without the friction of constantly switching applications.
Comparing superfile to Alternatives
superfile is not the only terminal file manager. Depending on your needs, another tool might be a better fit. Understanding the landscape helps you make an informed choice.
Yazi
Yazi is the most frequently mentioned alternative. It is written in Rust and emphasizes speed, extensibility, and a plugin ecosystem. It supports previews for images, PDFs, and archives through external tools. It has a more complex configuration system and a steeper learning curve. The superfile documentation itself recommends Yazi for users who need a more feature-heavy terminal file manager.
If extensibility, plugins, image previews, and integrations with tools such as fzf and zoxide are priorities, Yazi may suit your workflow better. If you prefer a file manager with a more immediately approachable default setup, superfile may be the better fit. The choice depends on which features and workflow you value more.
Midnight Commander
Midnight Commander, or mc, has been around since 1994. It is a dual-pane file manager with a classic Norton Commander interface. It is stable, widely available in distribution repositories, and familiar to a generation of Linux users. Its interface is functional but dated. It does not have the modern TUI polish of superfile or Yazi. It uses a different widget toolkit and can feel less responsive compared to Go or Rust implementations.
Midnight Commander is a good choice if you value stability and availability above aesthetics. It is installed by default on many rescue disks and minimal systems. If you are working on an older server where compiling a Go binary is impractical, mc is likely already there. For daily use on a modern system, superfile and Yazi offer a more pleasant experience.
ranger
ranger is a Python-based terminal file manager with deep Vim integration. It is highly customizable through Python scripts. It supports previews, bookmarks, and a command-line interface within the TUI. Because it is written in Python, it is slower than Go or Rust alternatives. Startup time and directory scanning are noticeably slower on large filesystems. It also requires Python to be installed, which is not guaranteed on minimal containers or embedded systems.
ranger appeals to users who want to script their file manager in Python and who are deeply invested in Vim workflows. If you do not need Python extensibility, superfile is faster and simpler.
VS Code Remote SSH
VS Code with the Remote SSH extension provides a graphical file explorer that browses remote filesystems. It is not a terminal file manager, but it competes in the same space because many developers use it for remote file management. The advantage is a full IDE with syntax highlighting, debugging, and Git integration. The disadvantage is that it requires a graphical environment on your local machine, consumes significantly more memory and CPU, and depends on a network connection to the VS Code server running on the remote host.
If you are doing heavy development work on a remote server, VS Code Remote SSH is often the better tool. If you are doing quick file management, log inspection, or configuration tweaks on a server, superfile inside an SSH session is lighter and faster. You do not need to install the VS Code server on the remote machine. You do not need a GUI on your local machine. You just need a terminal and SSH.
Troubleshooting Common Issues
No software is without edge cases. Below are common issues users encounter with superfile and how to resolve them.
Garbled Icons or Characters
If you see empty boxes, question marks, or misaligned text, your terminal font probably does not include Nerd Font glyphs. The fix is either to install a Nerd Font and configure your terminal to use it, or to disable icons in superfile’s config.toml. Set the icon-related option to false and restart superfile.
superfile Does Not Start
If running spf returns a command not found error, the binary is not in your PATH. Check where the installer placed it. On Linux, this is often ~/.local/bin/. Add that directory to your PATH in your shell profile. On Windows, the Winget installer usually handles PATH automatically, but a terminal restart may be required. On macOS with Homebrew, ensure Homebrew’s bin directory is in your PATH.
Colors Look Wrong
If the interface appears in unexpected colors or with poor contrast, your terminal may not support true color. Check your terminal’s documentation. If true color is unavailable, superfile will use fallback colors. You can also edit the theme file to use ANSI-safe color codes that work in any terminal.
Windows-Specific Rendering Issues
On native Windows, some terminal emulators do not handle certain escape sequences correctly. If you see flickering, misplaced cursors, or incomplete redraws, try Windows Terminal instead of the legacy console host. If image previews do not work, this is a known limitation under PowerShell 7. There is no user-side fix for this as of mid-2026. Use WSL if you need full functionality on Windows.
Permission Denied Errors
If superfile cannot read or write a file, check the filesystem permissions with ls -lah or stat. superfile does not bypass permissions. If your user cannot access the file, neither can superfile. Do not run sudo spf as a workaround unless you understand the risks. Instead, fix the permissions or use the appropriate user account.
Pros and Cons
Pros
- Clean, modern TUI that is easy to learn
- Cross-platform support for Linux, macOS, and Windows
- Multiple panels for side-by-side directory comparison
- Built-in file preview and metadata inspection
- Command bar for shell integration without exiting
- Customizable hotkeys, themes, and configuration
- Runs inside the terminal without requiring a separate graphical desktop interface
- No graphical desktop required, ideal for headless servers
- Fast startup and responsive navigation
- Native Go binary with no runtime dependencies
Cons
- Windows native support is incomplete as of mid-2026
- No recursive search or file content search
- Permanent delete shortcut has no confirmation by default
- Requires a Nerd Font for optimal icon rendering
- Smaller feature set and plugin ecosystem than Yazi
- Limited mouse support
- No built-in text editor
- Some advanced users may outgrow its simplicity
Final Verdict
superfile occupies a well-defined niche in the developer and system administrator toolkit. It is not a replacement for the shell, the text editor, or the version control system. It is a visual layer over the filesystem that makes interactive file operations faster and less error-prone. Its value is most apparent in environments where a graphical file manager is unavailable and shell commands are too cumbersome for exploration.
On headless Linux servers, superfile provides an interactive alternative to managing everything through individual shell commands. Its panels, preview features, and command bar can be useful for routine server file management. On macOS, it fits naturally into terminal-based workflows. Windows users can run it natively or inside WSL, with the better choice depending on the terminal environment and features they need.
If you need a heavily extensible file manager with a plugin ecosystem and advanced preview capabilities, Yazi is worth evaluating. If you want a stable, no-frills tool that is available everywhere, Midnight Commander remains a solid fallback. If you want a modern, approachable terminal file manager that works well out of the box and stays out of your way, superfile is a sound choice. It does one thing well: it makes the terminal filesystem visible and interactive.
Frequently Asked Questions
What is superfile and what does it do?
superfile is an open-source terminal file manager written in Go. It renders an interactive file browser inside your terminal using a text-based user interface (TUI). You can navigate directories, copy and move files, preview file contents, and manage your filesystem using keyboard shortcuts, all without leaving the command line.
Is superfile available for Windows?
superfile can be installed on Windows through Winget or Scoop, and it can browse NTFS volumes. However, the project lists Windows as not fully supported yet. Some features, such as image previews, have known issues under PowerShell 7. For Windows development, the Windows Subsystem for Linux (WSL) path is generally more reliable.
Does superfile work on macOS?
Yes. macOS support is officially documented and stable. The recommended installation is through Homebrew. The binary runs natively on both Intel and Apple Silicon Macs. It works with Terminal.app, iTerm2, and other terminal emulators paired with zsh or bash.
Can superfile run over SSH on a remote server?
Yes. superfile can run over SSH on a headless Linux server because its interface operates inside the terminal. Install it on the remote server and run it from the remote shell. Your local terminal emulator displays the interface transmitted through the SSH session.
Does superfile replace Bash or PowerShell?
No. superfile is an application that runs inside your terminal. You launch it from a shell, use it for file management, and exit back to the shell when you are done. It does not replace Bash, zsh, or PowerShell. It complements them by making interactive file operations faster to see and execute.
Does superfile require a Nerd Font?
Nerd Fonts are recommended but not required. superfile uses Nerd Font glyphs to show file type icons next to filenames. Without a Nerd Font, these characters appear as empty boxes or question marks. You can disable icons entirely in the configuration file if you do not have a Nerd Font installed.
Where are superfile configuration files stored?
Configuration paths vary by platform. On Linux, they are in ~/.config/superfile/. On macOS, they are in ~/Library/Application Support/superfile/. On Windows, they are in %LOCALAPPDATA%\superfile\. You can discover the exact location by running spf path-list, which prints all relevant paths for the current platform.
Can superfile open files in VS Code or Neovim?
Yes. Press e to open the selected file in your configured editor. superfile checks the EDITOR environment variable. If it is set, it launches that editor. You can also configure a specific editor in superfile’s settings. Press Shift+E to open the current directory in a directory-aware editor like VS Code or Neovim.
Is superfile better than Yazi?
It depends on your needs. superfile may be easier to approach if you prefer its default interface and configuration, while Yazi provides a plugin system and integrations with tools such as fzf and zoxide. Compare the features you actually need rather than treating either file manager as universally better.
What is the difference between superfile and Midnight Commander?
Midnight Commander uses a traditional dual-pane interface, while superfile takes a more contemporary approach to terminal file management. Midnight Commander may suit users who prefer its established interface or already have it available on their system. superfile may suit users looking for its interface, navigation model, and feature set. The better option depends on the environment and workflow.
Can superfile access Windows files through WSL?
Yes, but with caveats. If you install superfile inside WSL, it handles WSL paths natively. You can access Windows host files through /mnt/c/, though performance and path translation can be less smooth than native WSL paths. For the best experience, keep your development files inside the WSL filesystem.
Is superfile safe to run with sudo?
Possible, but not recommended as a default workflow. File operations inherit the privileges of the user running superfile. An accidental permanent delete as root can damage system directories. Use a restricted account for routine work and elevate privileges only when necessary for specific administrative tasks.
Sources
[1] superfile official GitHub repository: github.com/yorukot/superfile
[2] superfile documentation and installation guide: superfile.dev