Repolode
SecretDeveloper

SecretDeveloper/lsv

A keyboard-driven, three-pane terminal file browser written in Rust, configurable with Lua and rich external previews.

Stars
130
Forks
4
Open issues
1
Last commit
7 months ago

What is it?

lsv is a curses-based file viewer for the terminal. It shows the parent directory, the current directory, and a preview of the selected file or folder side by side, so you can move through a directory tree without leaving the keyboard.

Previews are produced by user-defined external commands such as bat for syntax-highlighted source, glow for Markdown, viu for images, or hexyl for binary files. The output is captured and rendered with ANSI colors. Behavior, themes, icons and keybindings are configured in an init.lua file, which exposes helpers for custom actions that can run shell commands or open interactive tools.

Beyond browsing, lsv supports file operations such as add, rename and delete, multi-select with copy, move and paste, single-key marks for jumping to directories, and a command palette. It runs on macOS, Linux and Windows and can be installed with cargo install lsv.

Key features

  • 01Three-pane navigation showing parent, current and preview panes
  • 02Lua configuration for themes, keymaps, actions and previewers
  • 03External preview commands with ANSI-colored output
  • 04Multi-key sequences with a which-key overlay
  • 05File add, rename, delete and multi-select copy/move/paste
  • 06Single-key marks for jumping to directories

Use cases

  • Browsing project directories while previewing source code with syntax highlighting
  • Previewing Markdown, images or binary files without opening a separate app
  • Scripting custom shell workflows such as git status bound to a key
  • Managing files over SSH on a remote terminal

Quick start

  1. 1

    Install from crates.io

    cargo install lsv
  2. 2

    Create a ready-to-edit config

    lsv --init-config
  3. 3

    Run the viewer

    lsv

Things to know

  • Building from source requires the Rust nightly toolchain pinned in rust-toolchain.toml.
  • Several preview features depend on external tools such as bat, glow, viu, or hexyl that must be installed separately.
  • Custom configuration is written in Lua, so advanced customization requires learning the lsv Lua API.

Topics

FAQ

What is lsv?
A keyboard-driven, three-pane terminal file browser written in Rust, configurable with Lua and rich external previews. lsv is a curses-based file viewer for the terminal. It shows the parent directory, the current directory, and a preview of the selected file or folder side by side, so you can move through a directory tree without leaving the keyboard.
Is lsv free to use? What license does it have?
lsv is open source under the MIT license. Check the license terms before using it in commercial products.
Is lsv still maintained?
No commits for 6+ months. The last commit to lsv was on Mar 19, 2026.
What can I use lsv for?
Browsing project directories while previewing source code with syntax highlighting Previewing Markdown, images or binary files without opening a separate app Scripting custom shell workflows such as git status bound to a key Managing files over SSH on a remote terminal
How do I install lsv?
Install from crates.io: cargo install lsv Create a ready-to-edit config: lsv --init-config Run the viewer: lsv
Where can I get lsv?
The source code and installation instructions are on GitHub: https://github.com/SecretDeveloper/lsv

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects