Terminal file manager written in Go, inspired by ranger with vi-style keybindings and asynchronous operations
lf ("list files") is a terminal file manager written in Go that takes heavy inspiration from the ranger file manager. It provides a text-based interface for navigating directories and managing files through keyboard shortcuts and commands.
The tool is distributed as a single binary with no runtime dependencies and runs across Linux, macOS, BSDs, and Windows. lf uses asynchronous IO operations to prevent UI blocking during file operations and implements a server/client architecture that allows managing multiple instances through remote commands. It supports customizable keybindings with vi and readline defaults.
Users can extend lf through shell commands and custom configurations. The tool deliberately omits certain features like built-in tabs, pagers, or file operation commands, instead relying on external tools and window managers for these functions. This design philosophy keeps the tool focused on file navigation while integrating well with existing Unix workflows and terminal multiplexers.
# via Go
env CGO_ENABLED=0 go install -ldflags="-s -w" github.com/gokcehan/lf@latest


