lla
Modern, customizable, feature-rich and extensible `ls` replacement.
Documentation
·
Features
·
Installation
·
Display Formats
·
Command Reference
## 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
- Git Integration: Built-in status visualization and repository insights
- Advanced Organization: Timeline view, storage analysis, recursive exploration
- Smart Search: complex filtering patterns (OR, AND, NOT, XOR), regex support
- 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
## Installation
### Using Installation Script
The easiest way to install lla is using our installation script:
```bash
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` |
### Manual Installation
```bash
# Manual - Example is for amd64 GNU, replaces the file names if downloading for a different arch.
wget -c https://github.com/triyanox/lla/releases/download//-> -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
```
### Post Installation
After installation, initialize your setup:
```bash
# Create default config
lla init
# View your config
lla config
```
[![Packaging status](https://repology.org/badge/vertical-allrepos/lla-ls.svg)](https://repology.org/project/lla-ls/versions)
## Display Formats
### Core Views
#### Default View
Clean, distraction-free listing for quick directory scans:
```bash
lla
```
#### Long Format
Rich metadata display for detailed file analysis:
```bash
lla -l
```
#### Tree Structure
Hierarchical exploration of directory relationships:
```bash
lla -t -d 3 # Navigate up to 3 levels deep
```
### Enhanced Organization
#### Table Layout
Structured view optimized for data comparison:
```bash
lla -T
```
#### Grid Display
Space-efficient layout for dense directories:
```bash
lla -g
```
### Specialized Views
#### Git Integration
Smart repository insights:
```bash
lla -G
```
#### Timeline Organization
Chronological file tracking:
```bash
lla --timeline
```
#### Storage Analysis
Visual disk usage insights:
```bash
lla -S # use --include-dirs to calculate directories sizes
```
### Advanced Navigation
#### Fuzzy Search (Experimental)
Interactive file discovery:
```bash
lla --fuzzy
```
#### Deep Directory Exploration (Recursive)
Comprehensive subdirectory listing:
```bash
lla -R
lla -R -d 3 # Set exploration depth
```
The `-R` option can be integrated with other options to create a more specific view. For example, `lla -R -l`
will show a detailed listing of all files and directories in the current directory.
## Command Reference
### Display Options
#### Basic Views
| Command | Short | Description | Example |
| --------- | ----- | --------------------------------------- | -------- |
| (default) | | List current directory | `lla` |
| `--long` | `-l` | Detailed file information with metadata | `lla -l` |
| `--tree` | `-t` | Hierarchical directory visualization | `lla -t` |
| `--table` | `-T` | Structured data display | `lla -T` |
| `--grid` | `-g` | Organized grid layout | `lla -g` |
#### Advanced Views
| Command | Short | Description | Example |
| ------------- | ----- | --------------------------------------- | ------------------------------------- |
| `--sizemap` | `-S` | Visual representation of file sizes | `lla -S`
`lla -S --include-dirs` |
| `--timeline` | | Group files by time periods | `lla --timeline` |
| `--git` | `-G` | Show git status and information | `lla -G` |
| `--fuzzy` | `-F` | Interactive fuzzy finder (Experimental) | `lla --fuzzy` |
| `--recursive` | `-R` | Recursive listing format | `lla -R`
`lla -R -d 3` |
#### Display Modifiers
| Command | Description | Example |
| ------------ | ------------------------------------ | ---------------- |
| `--icons` | Show icons for files and directories | `lla --icons` |
| `--no-icons` | Hide icons for files and directories | `lla --no-icons` |
| `--no-color` | Disable all colors in the output | `lla --no-color` |
### Sort & Filter Options
#### Sorting
| Command | Short | Description | Example |
| ----------------------- | ----- | -------------------------------------------- | --------------------------------------------------- |
| `--sort` | `-s` | Sort files by criteria | `lla -s name`
`lla -s size`
`lla -s date` |
| `--sort-reverse` | `-r` | Reverse the sort order | `lla -s size -r` |
| `--sort-dirs-first` | | List directories before files | `lla --sort-dirs-first` |
| `--sort-case-sensitive` | | Enable case-sensitive sorting | `lla --sort-case-sensitive` |
| `--sort-natural` | | Natural number sorting (2.txt before 10.txt) | `lla --sort-natural` |
#### Basic Filtering
| Command | Short | Description | Example |
| ------------------ | ----- | ------------------------------- | ----------------------------------- |
| `--filter` | `-f` | Filter files by pattern | `lla -f "test"`
`lla -f ".rs"` |
| `--case-sensitive` | `-c` | Enable case-sensitive filtering | `lla -f "test" -c` |
| `--depth` | `-d` | Set the depth for tree listing | `lla -t -d 3`
`lla -d 2` |
#### Advanced Filtering Patterns
| Filter Type | Example | Description |
| ------------------ | ----------------------------- | ---------------------------------------------- |
| OR Operation | `lla -f "test,spec"` | Match files containing either "test" or "spec" |
| AND Operation | `lla -f "+test,api"` | Match files containing both "test" and "api" |
| Regular Expression | `lla -f "regex:^test.*\.rs$"` | Rust files starting with "test" |
| Glob Pattern | `lla -f "glob:*.{rs,toml}"` | Match .rs or .toml files |
| Composite AND | `lla -f "test AND .rs"` | Logical AND operation |
| Composite OR | `lla -f "test OR spec"` | Logical OR operation |
| Composite NOT | `lla -f "NOT test"` | Logical NOT operation |
| Composite XOR | `lla -f "test XOR spec"` | Logical XOR operation |
### View Filters
#### Show Only Filters
| Command | Description | Example |
| ----------------- | ----------------------------------- | --------------------- |
| `--dirs-only` | Show only directories | `lla --dirs-only` |
| `--files-only` | Show only regular files | `lla --files-only` |
| `--symlinks-only` | Show only symbolic links | `lla --symlinks-only` |
| `--dotfiles-only` | Show only dot files and directories | `lla --dotfiles-only` |
#### Hide Filters
| Command | Description | Example |
| --------------- | ------------------------------ | ------------------- |
| `--no-dirs` | Hide directories | `lla --no-dirs` |
| `--no-files` | Hide regular files | `lla --no-files` |
| `--no-symlinks` | Hide symbolic links | `lla --no-symlinks` |
| `--no-dotfiles` | Hide dot files and directories | `lla --no-dotfiles` |
#### Combined Filters
| Description | Example |
| -------------------------------------------- | --------------------------------- |
| Show only dot directories | `lla --dirs-only --dotfiles-only` |
| Show only regular files, excluding dot files | `lla --files-only --no-dotfiles` |
### Plugin Management
#### Installation
| Command | Description | Example |
| --------------- | ---------------------------- | -------------------------------------------------- |
| `install --git` | Install from Git repository | `lla install --git https://github.com/user/plugin` |
| `install --dir` | Install from local directory | `lla install --dir path/to/plugin` |
#### Plugin Controls
| Command | Description | Example |
| ------------------ | -------------------------- | ----------------------------------------------------------------------------- |
| `use` | Interactive plugin manager | `lla use` |
| `--enable-plugin` | Enable specific plugins | `lla --enable-plugin name` |
| `--disable-plugin` | Disable specific plugins | `lla --disable-plugin name` |
| `update` | Update plugins | `lla update`
`lla update file_tagger` |
| `plugin` | Run plugin actions | `lla plugin --name file_tagger --action add-tag --args README.md "important"` |
#### Shortcut Management
| Command | Description | Example |
| ----------------- | ------------------ | ----------------------------------------------------------------- |
| `shortcut add` | Add a new shortcut | `lla shortcut add find file_finder search -d "Quick file search"` |
| `shortcut remove` | Remove a shortcut | `lla shortcut remove find` |
| `shortcut list` | List all shortcuts | `lla shortcut list` |
### Configuration & Setup
| Command | Description | Example |
| ------------ | --------------------------------- | --------------------- |
| `init` | Initialize the configuration file | `lla init` |
| `config` | View or modify configuration | `lla config` |
| `theme` | Interactive theme manager | `lla theme` |
| `completion` | Generate shell completion scripts | `lla completion bash` |
| `clean` | Clean up invalid plugins | `lla clean` |
### General Options
| Command | Short | Description |
| ----------- | ----- | ------------------------- |
| `--help` | `-h` | Print help information |
| `--version` | `-V` | Print version information |
> **Note**
> For detailed usage and examples of each command, visit the [lla documentation](https://lla.chaqchase.com).
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.