A keyboard-driven, three-pane terminal file browser written in Rust, configurable with Lua and rich external previews.
leo-arch/clifm
A shell-like, text-based terminal file manager where you manage files by typing commands instead of using a TUI or GUI.
- Stars
- 1,733
- Forks
- 53
- Open issues
- 26
- Last commit
- 2 days ago
What is it?
Clifm is a command-line file manager written in C. Instead of a text user interface with panels and menus, it presents a prompt where you run familiar shell-style commands for file operations, navigation and selection, with short commands and numbered entry list numbers (ELNs) for quick access to listed files.
It includes features such as bookmarks, glob and regex search and selection, file previews, bulk rename, archiving, a Freedesktop-compliant trash, a directory jumper, workspaces, and plugins. Shell features like tab completion with fzf integration, autosuggestions, syntax highlighting and aliases are included as well.
Clifm is designed to run on minimal terminals, including the kernel console, SSH sessions and old VT102-style emulators, and is listed as supporting Linux, BSDs, macOS, Termux, Solaris, Haiku and Cygwin/MinGW.
Key features
- 01Shell-style commands with short aliases and numbered entry list selection
- 02Bookmarks, file tags, filters and glob or regex search and selection
- 03File previews, including image previews, and fzf-based tab completion
- 04Bulk rename, archiving, and a Freedesktop-compliant trash
- 05Directory jumper, up to eight workspaces, and plugin support
- 06Runs on minimal terminals, including SSH sessions and the kernel console
Use cases
- Managing files on remote servers over SSH from a plain terminal
- Developers who prefer typing commands to navigating a TUI file browser
- Renaming or organizing large batches of files with pattern-based bulk operations
- Working on minimal or legacy terminal environments
Quick start
- 1
Install clifm from a package manager or the Installation section
- 2
Read the Installation section for the install command for your system
Things to know
- The license is GPL-2.0-or-later per the README badge, but repository metadata does not identify a license.
- Commands must be learned, since it is operated entirely by typing commands rather than through menus.
Topics
FAQ
- What is clifm?
- A shell-like, text-based terminal file manager where you manage files by typing commands instead of using a TUI or GUI. Clifm is a command-line file manager written in C. Instead of a text user interface with panels and menus, it presents a prompt where you run familiar shell-style commands for file operations, navigation and selection, with short commands and numbered entry list numbers (ELNs) for quick access to listed files.
- Is clifm free to use? What license does it have?
- clifm is open source under the Other license. Check the license terms before using it in commercial products.
- Is clifm still maintained?
- Actively maintained. The last commit to clifm was on Oct 17, 2026.
- What can I use clifm for?
- Managing files on remote servers over SSH from a plain terminal Developers who prefer typing commands to navigating a TUI file browser Renaming or organizing large batches of files with pattern-based bulk operations Working on minimal or legacy terminal environments
- How do I install clifm?
- Install clifm from a package manager or the Installation section Read the Installation section for the install command for your system
- Where can I get clifm?
- The source code and installation instructions are on GitHub: https://github.com/leo-arch/clifm
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A minimal, customizable cross-shell prompt written in Rust that shows relevant project and environment info.
A toolkit that generates agent-native command-line interfaces for existing software, plus a CLI-Hub registry for installing ready-made ones.
A smarter cd command that learns your most-used directories and lets you jump to them with a few keystrokes, across all major shells.
An open-source coding agent that reads your project, edits files and runs tests from your terminal, desktop, browser or editor.
A Claude Code plugin that adds a live status line showing context usage, rate limits, active tools, running agents, and todo progress.