`lla` combines familiar directory listings with multiple views, Git-aware
output, filtering and content search, interactive navigation, machine-readable
formats, themes, shortcuts, and an extensible plugin platform.
## Install
```bash
curl -sSL https://raw.githubusercontent.com/chaqchase/lla/main/install.sh | bash
```
On Windows PowerShell:
```powershell
irm https://raw.githubusercontent.com/chaqchase/lla/main/install.ps1 | iex
```
Or use a package manager:
| Platform | Command |
| --- | --- |
| Cargo | `cargo install lla` |
| macOS with Homebrew | `brew install lla` |
| Arch Linux with paru | `paru -S lla` |
| NetBSD with pkgin | `pkgin install lla` |
| X-CMD | `x install lla` |
Initialize the configuration after installation:
```bash
lla init
```
See [Installation and first run](docs/getting-started.md) for manual downloads,
musl limitations, upgrades, and initialization options.
Official releases include `lla-netbsd-amd64`; the install script selects it on
NetBSD amd64. This binary supports native plugins but omits the unsupported
embedded WASM runtime.
Windows releases include native AMD64 and ARM64 executables plus matching
prebuilt plugin archives. Both Windows executables include native and WASM
plugin support; the PowerShell installer verifies the release checksum and
installs `lla.exe` under `%LOCALAPPDATA%\Programs\lla`. Windows 10 and Windows
Server 2016 or newer are supported; 32-bit x86 Windows is not.
## Try it
```bash
lla # default view
lla -l # long view with metadata
lla -t -d 3 # tree view, three levels deep
lla -G # Git-aware view
lla --timeline # group entries by time
lla --search "TODO" # search file contents
lla --json --pretty # machine-readable output
```
## Highlights
### Views for different workflows
- **Everyday listings:** start with the compact default view, switch to long
view for permissions and metadata, or use table and grid layouts when column
comparison or screen density matters.
- **Directory exploration:** tree and recursive views reveal nested structure,
with configurable depth and safety limits for large directory trees.
- **Repository and time awareness:** Git view surfaces repository status,
timeline groups entries by age, and sizemap compares storage usage. Archives
can be browsed as virtual directories without extracting them first.
- **Interactive discovery:** fuzzy view supports searching, multi-selection,
opening files, copying paths, editing, and renaming from the terminal.
See [Views and display](docs/views.md) for screenshots, examples, and guidance
on choosing a view.
### Precise filtering and content search
- Sort by name, size, or date; reverse the result; place directories first; and
choose natural or case-sensitive ordering.
- Select entries by name, extension, glob, regular expression, file type, size,
creation time, modification time, dotfile visibility, or Git ignore rules.
- Combine compatible name filters with AND, OR, and NOT expressions, save common
combinations as presets, and apply sequential refinements.
- Search file contents with ripgrep-backed literal or regular-expression
matching, syntax-highlighted context, and optional plugin action pipelines.
The exact listing and content-search compatibility rules are documented in
[Filtering and search](docs/filtering-and-search.md).
### Rich metadata and configurable presentation
- Long and table views can show permissions, ownership, timestamps, inode and
hard-link counts, allocated size, extended attributes, security context, mount
information, symlink targets, and plugin-provided fields.
- Choose symbolic, octal, binary, compact, or verbose permissions; absolute or
relative dates; icons; color; hyperlinks; and an explicit column order.
- Install, preview, and select themes, then keep global defaults in
`~/.config/lla/config.toml` and repository-specific overrides in `.lla.toml`.
See [Configuration](docs/configuration.md) for persistent settings, profiles,
themes, exclusions, recursion limits, and shell completion.
### Navigation and repeatable workflows
- The directory jumper combines bookmarks and deduplicated visit history with a
generated `j` shell function for Bash, Zsh, and Fish.
- Command shortcuts turn frequently used plugin actions into concise top-level
`lla` commands and can be exported or imported as TOML.
- File and directory diffing supports local-to-local comparison and comparison
against Git references, including unified text diffs and size or line deltas.
See [Navigation](docs/navigation.md) for jump and fuzzy controls.
### Automation-friendly output
- Emit listing data as a JSON array, newline-delimited JSON, or fixed-schema CSV
while retaining the selected path, sort, filter, depth, and archive behavior.
- JSON and NDJSON include typed plugin fields. Content search and plugin actions
provide their own documented machine-output contracts.
- Generate completion scripts for Bash, Zsh, Fish, PowerShell, and Elvish.
See [Machine output](docs/machine-output.md) for schemas and search-output
differences, or the [command reference](docs/command-reference.md) for flags.
### Extensible Plugin Platform
- Install official prebuilt plugins, build from a local directory, or install
from a Git repository; inspect packages and permissions before running them.
- Native plugins provide trusted in-process extensions. On builds with the
optional `wasm-plugins` feature, WebAssembly Component Model plugins run with
declared, persisted grants and scoped host capabilities. Official Linux and
macOS and Windows release binaries enable this feature; the NetBSD binary
does not.
- Plugins can add typed listing fields, formatting, and actions with human,
JSON, NDJSON, or CSV output. The bundled catalog covers metadata, Git context,
code analysis, storage insights, file operations, and other focused workflows.
Start with [Installing and managing plugins](docs/plugins/README.md), browse the
[bundled catalog](docs/plugins/catalog.md), or read the
[plugin development guide](docs/plugins/developing.md).
## Documentation
Start at the [documentation index](docs/README.md), or go directly to a guide:
| Topic | Guide |
| --- | --- |
| Install, upgrade, and initialize | [Getting started](docs/getting-started.md) |
| Listing formats and screenshots | [Views and display](docs/views.md) |
| Sort, filter, and search | [Filtering and search](docs/filtering-and-search.md) |
| Jump and fuzzy workflows | [Navigation](docs/navigation.md) |
| Global config, project profiles, themes, and shortcuts | [Configuration](docs/configuration.md) |
| JSON, NDJSON, CSV, and schemas | [Machine output](docs/machine-output.md) |
| Flags and subcommands | [Command reference](docs/command-reference.md) |
| Install and use plugins | [Plugins](docs/plugins/README.md) |
| Build plugins | [Plugin development](docs/plugins/developing.md) |
| Architecture and internals | [Architecture handbook](docs/handbook.md) |
## License
This project is licensed under the MIT License. See [LICENSE](LICENSE).