Lla
blazing fast `ls` replacement with superpowers
Install / Use
/learn @chaqchase/LlaREADME
Overview
lla is a modern ls replacement that transforms how developers interact with their filesystem. Built with Rust's performance capabilities and designed with user experience in mind, lla combines the familiarity of ls with powerful features like specialized views, Git integration, and a robust plugin system with an extensible list of plugins to add more functionality.
Features
- Multiple Views: Default clean view, long format, tree structure, table layout, grid display
- Diff Command: Human-friendly directory or file comparisons (local ↔ local or git) with size/line deltas and unified diff output
- Git Integration: Built-in status visualization and repository insights
- Advanced Organization: Timeline view, storage analysis, recursive exploration
- Smart Navigation: Interactive directory jumper with bookmarks and history
- Smart Search: complex filtering patterns (OR, AND, NOT, XOR), regex support, content search
- Customization: Plugin system, theme manager, custom shortcuts, configurable display
- High Performance: Built with Rust, modern UI, clean listings
- Smart Sorting: Multiple criteria, directory-first option, natural sorting
- Flexible Config: Easy initialization, plugin management, configuration tools
- Rich Plugin Ecosystem: File ops and metadata enhancements, code analysis, git tools, and more
- Smart Filters: Range-based size/time filters, reusable presets, cache-aware refinements
- Git-aware Filtering: Optional
.gitignoresupport via--respect-gitignoreor config defaults
Installation
Using Installation Script
The easiest way to install lla is using our installation script:
curl -sSL https://raw.githubusercontent.com/chaqchase/lla/main/install.sh | bash
This script will automatically:
- Detect your OS and architecture
- Download the appropriate binary
- Verify the checksum
- Install lla to
/usr/local/bin
Using Package Manager
| Package Manager / Platform | Command |
| -------------------------- | ------------------- |
| Cargo | cargo install lla |
| macOS (Homebrew) | brew install lla |
| Arch Linux (paru) | paru -S lla |
| NetBSD (pkgin) | pkgin install lla |
| X-CMD | x install lla |
Manual Installation
# Manual - Example is for amd64 GNU, replaces the file names if downloading for a different arch.
wget -c https://github.com/chaqchase/lla/releases/download/<version>/<lla-<os>-<arch>> -O lla # Example /v0.3.9/lla-linux-amd64
sudo chmod +x lla
sudo chown root:root lla
sudo mv lla /usr/local/bin/lla
Upgrading
Upgrade to the latest (or a specific) release without leaving the terminal:
# Upgrade to the latest release (auto-detects OS/arch, verifies checksums)
lla upgrade
# Target a specific tag or custom installation path
lla upgrade --version v0.5.1 --path /usr/local/bin/lla
The upgrade command reuses the official install script logic, renders animated progress indicators, verifies the SHA256SUMS manifest, and atomically swaps the lla binary in place (defaults to the path of the running executable—override with --path if needed).
Post Installation
After installation, initialize your setup:
# Guided setup with theme/format wizard (default)
lla init
# Write the default config without prompts
lla init --default
# View your config
lla config
The revamped wizard (now the default) walks you through:
- Look & feel choices (icons, theme, default view, permission format)
- Listing defaults (sort order, directory inclusion, depth limits)
- Sorting & filtering toggles (dirs-first, natural sort, dotfile visibility, case sensitivity)
- Long-view behavior (relative dates, hide group column, column selection)
- Plugin directory selection, plugin enablement, and recursion safety limits
Display Formats
Core Views
Default View
Clean, distraction-free listing for quick directory scans:
lla
<img src="https://github.com/user-attachments/assets/3517c63c-f4ec-4a51-ab6d-46a0ed7918f8" className="rounded-2xl" alt="default" />
Long Format
Rich metadata display for detailed file analysis:
lla -l
<img src="https://github.com/user-attachments/assets/2a8d95e4-efd2-4bff-a905-9d9a892dc794" className="rounded-2xl" alt="long" />
Options and tweaks:
-
Hide the group column (useful on single-user systems):
lla -l --hide-group -
Show relative dates (e.g., "2h ago"):
lla -l --relative-dates
To make these defaults, add to your config (~/.config/lla/config.toml):
[formatters.long]
hide_group = true
relative_dates = true
columns = ["permissions", "size", "modified", "user", "group", "name", "field:git_status", "field:tags"]
The columns array lets you control the precise column order. Use built-in keys (permissions, size, modified, user, group, name, path, plugins) or reference any plugin-provided field with the field:<name> prefix (e.g., field:git_status, field:complexity_score).
Tree Structure
Hierarchical exploration of directory relationships:
lla -t -d 3 # Navigate up to 3 levels deep
<img src="https://github.com/user-attachments/assets/cb32bfbb-eeb1-4701-889d-f3d42c7d4896" className="rounded-2xl" alt="tree" />
Archive Introspection
List archive contents as a virtual directory (no extraction). Supported: .zip, .tar, .tar.gz, .tgz.
lla my_archive.zip -t # tree view
lla project.tar.gz -l # long view
lla my_archive.tgz --json
lla my_archive.zip -l -f ".rs" # filter by extension on internal paths
Single-file Listing
You can pass a single file path to list it directly with any view or machine output:
lla README.md # default view
lla Cargo.toml -l # long view
lla src/main.rs --json # machine output
Enhanced Organization
Table Layout
Structured view optimized for data comparison:
lla -T
<img src="https://github.com/user-attachments/assets/9f1d6d97-4074-4480-b242-a6a2eace4b38" className="rounded-2xl" alt="table" />
The [formatters.table].columns setting mirrors the long-view syntax, so you can mix built-in fields with plugin-provided metadata:
[formatters.table]
columns = ["permissions", "size", "modified", "name", "field:git_branch", "field:git_commit"]
Diff View (Files & Directories)
Compare directories or individual files (including against git references) with compact, colorized summaries. Directory comparisons still show the status table with size deltas, while file comparisons add a unified diff plus size/line-change stats:
lla diff src ../backup/src
lla diff apps/api --git # compare working tree vs HEAD
lla diff src --git --git-ref HEAD~1 # compare against another commit
lla diff Cargo.lock ../backup/Cargo.lock
lla diff Cargo.lock --git --git-ref HEAD~1
For directories, the diff view groups entries by status, colors the change indicator, and shows left/right sizes plus the net delta so you can spot growth at a glance. For files, lla prints a size summary, line-count delta, and a git-style unified diff (with automatic binary detection so unreadable data isn’t dumped to your terminal).
Grid Display
Space-efficient layout for dense directories:
lla -g # Basic grid view
lla -g --grid-ignore # Grid view ignoring terminal width (Warning: may extend beyond screen)
<img src="https://github.com/user-attachments/assets/b81d01ea-b830-4833-8791-7b62ff9137df" className="rounded-2xl" alt="grid" />
Note: Grid output no longer appends a trailing blank newline.
Specialized Views
Git Integration
Smart repository insights:
lla -G
<img src="https://github.com/user-attachments/assets/b0654b20-c37d-45c2-9fd0-f3399fce385e" className="rounded-2xl" alt="git" />
Timeline Organization
Chronological file tracking:
lla --timeline
<img src="https://github.com/user-attachments/assets/06a156a7-628a-4948-b75c-a0da584c9224" className="rounded-2xl" alt="timeline" />
Storage Analysis
Visual disk usage insights:
lla -S # use --include-dirs to calculate directories sizes
<img src="https://github.com/user-attachments/assets/dad703ec-ef23-460b-9b9c-b5c5d6595300" className="rounded-2xl" alt="sizemap" />
Advanced Navigation
Jump-to-Directory (Interactive Directory Jumper)
Quickly navigate to bookmarked or recently visited directories with an interactive keyboard-driven prompt:
# One-time setup for seamless directory jumping
lla jump --setup
# Interactive directory selection
lla jump
# Add directory to bookmarks
lla jump --add ~/projects/my-app
# Remove bookmark
lla jump --remove ~/projects/my-app
# List all bookmarks and recent history
lla jump --list
# Clear history
lla jump --clear-history
Features:
- Interactive Selection: Arrow keys and Enter to select from bookmarked and recent directories
- Smart History: Automatically records directory visits (respects
exclude_paths) - Bookmarks: Add favorite directories for quick access
- Deduplication: No duplicate entries in history
- Shell Integration: Works seamlessly with shell commands like
cd
How it works:
- Bookmarks (marked with ★) appear first in the selection list
- Recent directories follow, showing dir
