An open API service indexing awesome lists of open source software.

https://github.com/chaqchase/lla

blazing fast `ls` replacement with superpowers
https://github.com/chaqchase/lla

cargo cli cli-app crates-io lightweight ls replacement rust terminal terminal-based

Last synced: 19 days ago
JSON representation

blazing fast `ls` replacement with superpowers

Awesome Lists containing this project

README

        



Logo

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` |
| X-CMD | `x 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
```

default

#### Long Format

Rich metadata display for detailed file analysis:

```bash
lla -l
```

long

#### Tree Structure

Hierarchical exploration of directory relationships:

```bash
lla -t -d 3 # Navigate up to 3 levels deep
```

tree

### Enhanced Organization

#### Table Layout

Structured view optimized for data comparison:

```bash
lla -T
```

table

#### Grid Display

Space-efficient layout for dense directories:

```bash
lla -g # Basic grid view
lla -g --grid-ignore # Grid view ignoring terminal width (Warning: may extend beyond screen)
```

grid

### Specialized Views

#### Git Integration

Smart repository insights:

```bash
lla -G
```

git

#### Timeline Organization

Chronological file tracking:

```bash
lla --timeline
```

timeline

#### Storage Analysis

Visual disk usage insights:

```bash
lla -S # use --include-dirs to calculate directories sizes
```

sizemap

### Advanced Navigation

#### Fuzzy Search (Experimental)

Interactive file discovery:

```bash
lla --fuzzy
```

fuzzy

#### Deep Directory Exploration (Recursive)

Comprehensive subdirectory listing:

```bash
lla -R
lla -R -d 3 # Set exploration depth
```

recursive

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 you can use `-g --grid-ignore` to ignore terminal width (Warning: may extend beyond screen) | `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` |
| `--permission-format` | Set the format for displaying permissions (symbolic, octal, binary, verbose, compact) | `lla --permission-format octal` |

### 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` |
| `theme pull` | Pull the built-in themes | `lla theme pull` |
| `theme install` | Install theme from file/directory | `lla theme install /path/to/theme.toml`
`lla theme install /path/to/themes/` |
| `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.