Terminal file manager written in Go inspired by ranger with vi-style keybindings and shell integration
lf is a terminal file manager written in Go that provides a vi-style interface for navigating and managing files. Inspired by the ranger file manager, it features customizable keybindings with vi and readline defaults, making it familiar to users of terminal text editors.
The tool is distributed as a single binary without runtime dependencies and runs across Linux, macOS, BSDs, and Windows. It implements asynchronous IO operations to prevent UI blocking and uses a server/client architecture that enables remote commands to manage multiple instances. The file manager integrates with shell commands for extensibility, allowing users to configure custom operations and workflows.
Designed for terminal users who prefer keyboard-driven navigation, lf deliberately excludes built-in pagers, editors, and file operation commands, instead relying on existing shell tools like mkdir, touch, and chmod. This philosophy keeps the tool focused on file management while leveraging the user's existing command-line environment.
# via Go
env CGO_ENABLED=0 go install -trimpath -ldflags="-s -w" github.com/gokcehan/lf@latest


