Our take
Activeregular commits and releases- Activity
- 58
- Community
- 30
- Issues
- 42
- Pull requests
- 71
+7 stars in the last 30 days
- Slower to close issues than 94% of the projects we track
lstr is an actively maintained, capable tree alternative, though its development depends heavily on one contributor and reported issue resolution is slow.
Good fit if
- You want a Rust-based terminal tree viewer with an optional interactive UI, not just a static listing.
- Git status, flexible sorting, or JSON and HTML output are useful in your file-browsing workflow.
- You can build or install software requiring Rust 1.88 or newer and are comfortable with an MIT-licensed tool.
Look elsewhere if
- You need a mature project with development and maintenance broadly distributed across contributors.
- Your workflow requires the listed classic-mode features, such as HTML output or hyperlinks, inside the interactive UI.
- You need permission display on a non-Unix-like system, or icon display without a Nerd Font.
All health signals
| Last commit | 2026-09-24 (12 days ago) |
|---|---|
| Commits, last 90 days | 95 |
| Releases, last 12 months | 2 (latest v0.4.0, 2026-07-14) |
| Contributors | 10 (top contributor: 91% of commits) |
| Issues closed, last 90 days | 14 (typically closed in 384 days) |
| Project age | 16 months |
Checked on 2026-10-07 with the GitHub API.
Project history
Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.
Stars
1,550Forks
32Change since Nov 13, 2026: -1 stars·0 forks
Overview
lstr presents directory contents as a tree, offering a faster way to scan project structure than navigating files one at a time. It combines a traditional tree-style command with an optional keyboard- and mouse-driven terminal interface.
It is aimed at terminal users who want more than a static listing: optional Git status, filtering, sorting, file details, and JSON or HTML output make it useful for both interactive exploration and simple automation.
Key Features
- Switch between classic tree output and an interactive terminal UI with expandable directories and file opening in a configured editor.
- Search names in interactive mode using substrings or glob patterns.
- Show Git status for files and directories, and optionally exclude paths ignored by Git.
- Sort by name, size, modification time, or extension, with natural, reverse, and directories-first options.
- Add file sizes, cumulative directory sizes, permissions, or Nerd Font icons to listings.
- Limit tree depth or summarize deep and crowded directories.
- Export JSON for scripts or self-contained HTML for offline browsing.
- Read a path listing from a file or standard input with
--fromfile.
Use Cases
- Developers orienting themselves in an unfamiliar repository: inspect the structure interactively, search filenames, and open selected files in an editor.
- Git users reviewing a working tree: display status alongside files and directories, including ignored-file filtering when desired.
- Shell users building file workflows: pipe classic output to tools such as
fzf, or use the interactive picker to select a path for shell integration. - Teams documenting or processing directory contents: generate JSON for scripts or an HTML index for offline browsing.
What you need
Detected in the repository
- Rust 1.88 or newer (from Cargo.toml)
- A test suite and automated checks on GitHub Actions
License in plain words
MITpermissive
- Commercial use: yes
- Modify and redistribute: yes
- You must keep: the copyright and license notice
- Share your changes: no
A summary, not legal advice: the LICENSE file is what applies.
Getting Started
Install with Homebrew on macOS:
brew install lstr
Or build from the repository with Cargo:
cargo install --path .
Run lstr for a tree of the current directory, or lstr interactive to explore it in the TUI. See the README for other installation options and usage details.
Alternatives
- termscp: termscp is a terminal file manager for browsing and managing local or remote files, while lstr focuses on directory trees and Git status.
| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| lstr | Rust | MIT | 1.5k | Active |
| termscp | Rust | MIT | 3.1k | Active |
Considerations
The project is active, with regular commits and releases, but most contributions come from one person. Its issue history also shows that tickets can take a long time to close, so teams adopting it should account for the limited contributor concentration and slower issue handling. The Rust toolchain requirement may be a hurdle if Rust is not already available in your environment. Some options are mode- or platform-specific: for example, HTML output is classic-mode only, and permission display is limited to Unix-like systems.
Found this useful?
Share it with someone who would like lstr.