explaingit

lsd-rs/lsd

16,000RustAudience · developerComplexity · 1/5Setup · easy

TLDR

LSD is a modern drop-in replacement for the ls terminal command that adds color-coded output, file-type icons, and a tree view to make browsing folders faster and easier to read.

Mindmap

mindmap
  root((lsd))
    What it does
      Colorized ls output
      File type icons
      Tree view mode
    Customization
      YAML color themes
      YAML icon themes
      Config file
    Installation
      Homebrew Scoop
      apt dnf pacman
      cargo install
    Use cases
      Daily navigation
      Codebase browsing
      Terminal setup
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace ls in your terminal with a colorized, icon-enhanced view so you can scan folder contents at a glance.

USE CASE 2

Use lsd --tree to visualize a project's entire folder structure before exploring a new codebase.

USE CASE 3

Customize colors and icons with YAML theme files to match your terminal's color scheme.

Tech stack

RustCargo

Getting it running

Difficulty · easy Time to first run · 5min

Icons require a Nerd Font installed and selected in your terminal emulator, without it, icon glyphs render as boxes or question marks.

In plain English

LSD, short for LSDeluxe, is a modern replacement for the classic ls command that lists the contents of a folder in a terminal. The README describes it as a rewrite of GNU ls with lots of added features, heavily inspired by an earlier project called colorls. Instead of a plain list of filenames, lsd gives you colored output, an icon next to each entry that hints at the file type, a tree view that descends into subfolders, and a wider range of formatting options. The way it works is the same as ls in spirit: you point it at a folder (or no folder, to list the current one) and it prints what is inside. Behind the scenes it categorises each entry by extension or role and looks up an icon and color for it. For the icons to render correctly in your terminal you need a patched "Nerd Font" or font-awesome installed and selected, since the icons are drawn using special glyphs added to those fonts. Behavior, colors, and icons are all themeable through three optional YAML config files (config.yaml, colors.yaml, icons.yaml), and the docs ship sample versions of each so you only have to override what you want to change. Many users set a shell alias such as alias ls='lsd' so the new command takes over from the original, with handy variants like alias lt='lsd --tree' for quick tree views. Someone would use lsd to make their terminal more readable day to day, especially when navigating large folders or scanning code repositories. The project is written in Rust, distributed through most major package managers (Homebrew, Scoop, apt, dnf, pacman, and many more) as well as via cargo install lsd. The full README is longer than what was provided.

Copy-paste prompts

Prompt 1
I just installed lsd. Help me set up shell aliases so that ls runs lsd, ll runs lsd -la, and lt runs lsd --tree by default.
Prompt 2
Create a custom lsd colors.yaml theme that makes directories stand out in bright cyan and executable files in orange to match my Dracula terminal theme.
Prompt 3
I want lsd to show human-readable file sizes, sort by modification time descending, and always show hidden files. What flags or config file settings do I need?
Prompt 4
Help me install the correct Nerd Font on macOS so lsd icons render properly in iTerm2, and tell me how to set the font in terminal preferences.
Open on GitHub → Explain another repo

← lsd-rs on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.