MCPcopy Index your code
hub / github.com/acarl005/ls-go

github.com/acarl005/ls-go @v1.0.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.2 ↗ · + Follow
63 symbols 145 edges 30 files 22 documented · 35%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ls-go

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.

Features

  • [x] Should work on Linux, MacOS, and Windows.
  • [x] Outputs beautiful, semantic colors by default.
  • [x] Show paths to symlinks, and explicitly show broken links (-L).
  • [x] Recurse down subdirectories (-r).
  • [x] Emojis, if you're into that (-i).
  • [x] Supports Nerd Fonts (-n).
  • [x] Dark or light backgrounds (-I).

Usage

Basic usage:

show basic usage

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

show fancier options

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.

show with nerd font icons

Light Background Theme

Has an option for white backgrounds.

show on white background

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

Flags:
  -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
  -N, --nogroup    hide 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
  -B, --backwards  reverse the sort order of --size, --time, or --kind
  -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
  -I, --light      output colors for light-bachground themes

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

Install

If you have Golang installed:

go install github.com/acarl005/ls-go@latest

On MacOS with Homebrew:

brew install acarl005/homebrew-formulas/ls-go

On Linux with Snap:

sudo snap install ls-go

Or, you can download the latest pre-compiled binary from the releases page.

Credits

Warp Terminal logo

Screenshots taken using Warp Terminal.

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

Known Issues

It fails on directories without executable permissions. The standard /bin/ls will also fail when reading non-executable directories, but only with certain options, like ls -l, ls --color=always (or ls -G on MacOS). This is because file metadata is needed to determine things like colors, and directories need to be executable to obtain the metadata of the contents. For example:

# create dir without -x permission
$ mkdir -m 644 test

# add a file
$ sudo touch test/foo

# plain `ls` still works
$ /bin/ls test
foo

# but `ls -l` fails
$ /bin/ls -l test

# and so does ls-go
$ ls-go test

Contributing

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.

Core symbols most depended-on inside this repo

Shape

Function 44
Method 11
Struct 4
TypeAlias 4

Languages

Go100%

Modules by API surface

ls-go.go25 symbols
colors.go17 symbols
sort.go13 symbols
ls-windows.go2 symbols
ls-unix.go2 symbols
file-icons.go2 symbols
arguments.go2 symbols

For agents

$ claude mcp add ls-go \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page