Thanks to visit codestin.com
Credit goes to lib.rs

#colorful #git-status #human-readable #ls #output #nu-shell

app nuls

NuShell-inspired ls with colorful table output, human-readable sizes, and recency-aware timestamps

2 unstable releases

Uses new Rust 2024

0.2.0 Dec 10, 2025
0.1.0 Dec 10, 2025

#62 in Value formatting

MIT license

1MB
829 lines

nuls

Crates.io License Tests

NuShell-inspired ls with a colorful, table-based layout: directory/file type tagging, human-readable sizes, relative “modified” times with recency-driven colors, and familiar flags.

Features

  • Box-drawn table with colored borders and headers
  • Directory-first sorting by default; optional -t/--sort-modified (newest first) and -r/--reverse
  • Relative modified column with recency-aware colors (seconds → years, plus future)
  • Human-readable sizes (KB, MB, GB, TB)
  • Hidden files toggled via -a/--all
  • Colored help output for quick scanning
  • Optional git info (-g) shown inline after the name, e.g., main.rs (+15 -2)

Install

From crates.io:

cargo install nuls

Building locally:

cargo install --path . --bin nuls --force
# optional: cargo install --path . --bin nuls --force --root ~/.local

Usage

# basic listing
nuls

# include hidden files
nuls -a

# sort by modified (newest first), reverse for oldest first
nuls -t
nuls -tr

# show git status/counts inline
nuls -g
nuls -lag

# combine with hidden and long muscle-memory flag
nuls -la

Flags

  • -a, --all — show dotfiles
  • -l, --long — accepted for familiarity (output is already long-form)
  • -t, --sort-modified — sort by modified time (newest first)
  • -r, --reverse — reverse sort order
  • -g, --git — show git status inline (+added/-deleted, (clean) when unchanged)
  • --color=always/auto/never — control ANSI color (default: auto; help is forced color)

Palette

  • Borders/header: teal/green highlights
  • Names: dirs blue, files light gray, executables red, dotfiles amber, config/docs yellow
  • Modified: green → yellow → orange → red → gray as timestamps get older; blue for future

Notes

  • Directories sort before files unless you use -t (modified), in which case recency wins.

Aliases

Drop one of these in your shell config for muscle-memory:

# replace ls entirely
alias ls="nuls"

# or keep both
alias nls="nuls"

# with defaults you like
alias lst="nuls -t"
alias lsa="nuls -a"
alias lsat="nuls -at"

Dependencies