Skip to content
A more colorful, user-friendly implementation of `ls` written in Go
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
img update nerd font demo image Jan 22, 2018
LICENSE Create LICENSE Jan 23, 2019 add homebrew install instructions Jun 13, 2018
arguments.go Add --nogroup flag to hide group Sep 6, 2018
colors.go add arduino files Aug 22, 2019
file-icons.go add arduino files Aug 22, 2019
ls-go.go Add --nogroup flag to hide group Sep 6, 2018
ls-windows.go get device numbers for block and char device files Jun 17, 2018
sort.go fix sorting by type logic. use the basenames and extensions for secon… Aug 18, 2019


A more colorful, user-friendly implementation of ls written in Go.

You want to be able to glean a lot of information as quickly as possible from ls. Colors can help your mind parse the information. You can configure ls to color the output a little bit. Configuring ls is a hassle though, and the colors are limited.

Instead, you can use ls-go. It is highly colored by default. It has much fewer flags so you can get the behavior you want more easily. The colors are beautiful and semantic. A terminal with xterm-256 colors is required.


  • Should work on Linux, MacOS, and Windows.
  • Outputs beautiful, semantic colors by default.
  • Show paths to symlinks, and explicitly show broken links.
  • Recurse down subdirectories.
  • Emojis (if you're into that).
  • Supports Nerd Fonts.


With go get:

# do this once in a while
$ go get -u

With Homebrew:

brew install acarl005/homebrew-formulas/ls-go



Of course, you can use an alias to save some typing and get your favorite options.


Show locations of symlink.


List subdirectories recursively.


usage: ls-go [<flags>] [<paths>...]

  -h, --help       Show context-sensitive help (also try --help-long and --help-man).
  -a, --all        show hidden files
  -b, --bytes      include size
  -m, --mdate      include modification date
  -o, --owner      include owner and group
  -p, --perms      include permissions for owner, group, and other
  -l, --long       include size, date, owner, and permissions
  -d, --dirs       only show directories
  -f, --files      only show files
  -L, --links      show paths for symlinks
  -R, --link-rel   show symlinks as relative paths if shorter than absolute path
  -s, --size       sort items by size
  -t, --time       sort items by time
  -k, --kind       sort items by extension
  -S, --stats      show statistics
  -i, --icons      show folder icon before dirs
  -n, --nerd-font  show nerd font glyphs before file names
  -r, --recurse    traverse all dirs recursively
  -F, --find=FIND  filter items with a regexp

  [<paths>]  the files(s) and/or folder(s) to display

Nerd Font Support

ls-go works with Nerd Fonts. Simply add --nerd-font or -n to get file-specific icons. This won't work unless you have a Nerd Font installed and selected in your terminal emulator.


Prior Art

This is inspired by athityakumar/colorls and monsterkodi/color-ls, ported to Go, with various modifications.


Contributions are muchly appreciated! Want to add a glyph for another file type? Did I forget an edge case? Is there another option that would be useful? Submit a PR! You might want to submit an issue first to make sure it's something I'd want to add though.

You can’t perform that action at this time.