A Beautiful ls with Icons π¨
Transform your terminal with file-type-specific icons and colors
Instantly recognize files with type-specific icons using Nerd Fonts. Never get confused again!
Supports all standard ls flags: -a, -l, -R, and more.
Minimal overheadβruns as fast as the standard ls command.
Override icons and colors via configuration file to match your style.
Works on Linux, macOS, WSL, and other Unix-like systems.
Automatically disables icons on incompatible systems. Works without Nerd Fonts.
Fastest - downloads both files automatically
curl -fsSL https://raw.githubusercontent.com/ swadhinbiswas/ls-f/main/install-standalone.sh | bash # Verify lsf --version lsf -x
For development and customization
git clone https://github.com/swadhinbiswas/ ls-f.git && cd ls-f && ./install.sh --user
Download both files manually
sudo curl -fL https://raw.githubusercontent.com/\ swadhinbiswas/ls-f/main/lsf -o /usr/local/bin/lsf sudo curl -fL https://raw.githubusercontent.com/\ swadhinbiswas/ls-f/main/column.py -o /usr/local/bin/column.py sudo chmod +x /usr/local/bin/lsf /usr/local/bin/column.py
Replace your default ls with lsf:
echo "alias ls='lsf'" >> ~/.bashrc source ~/.bashrc
For Zsh, use ~/.zshrc instead.
lsf # List files with icons lsf -a # List all files (including hidden) lsf -A # Almost all (skip . and ..) lsf -l # Long format lsf -la # Long format + all files lsf -x # Horizontal layout lsf -X # Sort by extension lsf -Z # Show security context lsf -R # Recursive listing lsf --zero # NUL-terminated output lsf --help # Show help message lsf --version # Show version
For full icon support. Works on any POSIX shell without icons.
echo $BASH_VERSION
For column formatting helper.
python3 --version
Recommended for beautiful icons.
fc-list | grep "Nerd Font"
Edit ~/.config/lsf/lsf.conf to customize icons and colors:
# Change directory icon ICONS["dir"]="" COLORS["dir"]="94" # Bright blue # Change Python file icon ICONS[".py"]="" COLORS[".py"]="92" # Bright green # Change JSON file icon ICONS[".json"]="" COLORS[".json"]="36" # Cyan
See Configuration Guide for more options and examples.
A: Your terminal font is not set to a Nerd Font. Download from nerdfonts.com and set it as your terminal font.
A: No! Use ./install.sh --user to install to ~/.local/bin without sudo. Use sudo ./install.sh --system for system-wide installation.
A: No problem! Just use lsf directly. Or set an alias, but don't alias it to ls. Example: alias ll='lsf -l'
A: Yes! ls-f is fully compatible with all standard ls commands and flags. It falls back gracefully when icons aren't supported.
A: rm ~/.local/bin/lsf ~/.local/bin/column.py (user install) or use sudo for system install. Remove the alias from your shell config.
A: Yes! Install via brew install bash to get Bash 4+, then install ls-f normally.
Detailed step-by-step instructions for all platforms and methods.
Install ls-f now and enjoy a beautiful, efficient file listing experience.
Get Started Now