whatisgithub

What is lf?

gokcehan/lf — explained in plain English

Analysis updated 2026-06-24

9,265GoAudience · developerComplexity · 2/5Setup · easy

In one sentence

lf is a fast, minimal terminal file manager written in Go that lets you browse and manage files entirely from the keyboard, with no GUI required. It starts instantly and uses very little memory.

Mindmap

mindmap
  root((lf))
    What it does
      Terminal file manager
      Keyboard navigation
      Background operations
    Tech Stack
      Go
      Single binary
    Use Cases
      Browse files in terminal
      Run shell commands
      Multi-instance control
    Setup
      Pre-built binary
      Package managers
      Build from source
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Navigate your file system from the terminal using keyboard shortcuts without touching a mouse or GUI file explorer.

USE CASE 2

Run file copy or move operations in the background while continuing to browse in the same lf session.

USE CASE 3

Extend file management with custom shell commands bound to keys, keeping lf lightweight while adding your own workflows.

What is it built with?

Go

How does it compare?

gokcehan/lfcadence-workflow/cadencereviewdog/reviewdog
Stars9,2659,2929,293
LanguageGoGoGo
Setup difficultyeasyhardmoderate
Complexity2/54/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

So what is it?

lf, short for "list files", is a terminal file manager. Instead of using a graphical file explorer with icons and mouse clicks, lf runs inside a text terminal where you navigate your folders and files using the keyboard. It was written in Go and was inspired by an older terminal file manager called ranger. The program works on Linux, macOS, various Unix systems, and Windows. It ships as a single binary file with no additional software required to run it. The developers highlight that it starts quickly and uses little memory, which matters for users who keep it running in a terminal session alongside other tools. File operations happen in the background without freezing the interface, so you can browse while a copy or move is in progress. The program supports running multiple instances at once through a server and client setup, where one instance can send commands to another. Keybindings are customizable and come with defaults based on vi and readline conventions, which are familiar to many terminal users. lf deliberately leaves out certain features that other file managers sometimes include. It does not have built-in tabs, windows, a text editor, or a pager for reading files, on the reasoning that these are better handled by the surrounding shell environment or a terminal multiplexer. Instead, it focuses on file browsing and lets you extend its behavior through shell commands. Installation options include community-maintained packages, pre-built binaries from the releases page, or building from source with the Go toolchain. Running lf starts in the current directory, and the documentation is accessible directly from the command line.

Copy-paste prompts

Prompt 1
I just installed lf terminal file manager. Show me the most useful default keybindings and how to add a custom key that opens the selected file in my editor.
Prompt 2
Using lf, how do I write a keybinding in my lfrc config that runs a shell command on the currently selected file, like extracting a zip or converting an image?
Prompt 3
Help me configure lf so that when I quit, my shell automatically changes directory to wherever lf was last open. Show me the shell function and lfrc setting needed.

Frequently asked questions

What is lf?

lf is a fast, minimal terminal file manager written in Go that lets you browse and manage files entirely from the keyboard, with no GUI required. It starts instantly and uses very little memory.

What language is lf written in?

Mainly Go. The stack also includes Go.

How hard is lf to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is lf for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.