Skip to content
CAI
Software that uses CAICheck a score

lsd-rs/lsd

57.6

Adequate · 28 September 2026

11.7k

lines of production code

Rust

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a modern, Rust-based replacement for the traditional \ls\ command that provides enhanced file and directory listing capabilities. It features a modular architecture supporting customizable themes, icons, and colors, along with integrated Git status indicators and flexible output layouts. The tool handles comprehensive metadata display, including permissions, sizes, and dates, while ensuring cross-platform compatibility through CI-supported ARM Linux builds.

Features

Configurable icon and color themes with Git status support

Users can now customize the appearance of file listings by defining custom icon themes and color palettes via configuration files. This change introduces a new theme system that supports mapping icons to file names, extensions, and types, as well as granular color control for permissions, attributes, dates, sizes, and Git status indicators. The Git integration allows users to define specific symbols for various Git states (such as modified, deleted, or conflicted) and apply distinct colors to Git-related metadata, enabling a fully personalized visual experience for file and directory listings.

src/theme · high confidence

Initial project scaffolding and documentation

The repository is initialized with core project files including an Apache 2.0 license, a \.gitignore\ for build artifacts, and a \rustfmt.toml\ to enforce default formatting. A \build.rs\ script is added to generate shell completions (Bash, Fish, Zsh, PowerShell) and conditionally disable Git support for specific targets. The project also includes a \CODEOWNERS\ file, an \OWNERS\ file, a \.release.toml\ for automated release tagging, and an RPM spec file (\lsd.spec\) for packaging. Comprehensive installation and usage documentation is provided in the new \README.md\.

(repo-wide) · high confidence

Architecture

Refactored flag configuration into modular, testable components

The flag configuration system has been restructured into individual modules (such as blocks, color, date, hyperlink, icons, and layout) within src/flags. Each module now implements a Configurable trait to handle configuration precedence from CLI arguments, config files, and environment variables, replacing the previous monolithic approach. This change improves testability and maintainability by isolating the logic for each specific flag, ensuring that settings like color themes, date formats, and output layouts are parsed and applied consistently from all sources.

src/flags · high confidence

Refactored metadata handling into a modular meta package

The metadata logic has been reorganized into a dedicated \src/meta\ package, splitting the previous monolithic structure into focused modules for specific file attributes. This change introduces new structs for handling access control (ACL, SELinux, Smack), Git file status, inodes, hard links, and locale-aware date formatting. It also refactors how file types, permissions (including setuid/setgid/sticky bits and octal display), sizes, and names are processed and rendered, providing a cleaner separation of concerns for these display components.

src/meta · high confidence

Behavioural changes

Add CI support for ARM Linux cross-compilation

The CI pipeline now supports building and packaging for the arm-unknown-linux-gnueabihf platform. New scripts handle installing cross-compilation toolchains (gcc, binutils, libc) during installation, building the binary for the ARM target, and packaging it into a .deb archive with appropriate architecture and dependency settings.

ci · high confidence

Complete source rewrite and architectural overhaul

The \src\ directory has been completely rewritten, replacing the previous implementation with a new modular architecture. This change introduces a new CLI definition using \clap\ (in \app.rs\), a refactored configuration system (\config\_file.rs\), and a new core execution engine (\core.rs\) that manages flags, icons, colors, and sorting. The display logic (\display.rs\) has been restructured to support grid and tree layouts with improved padding and header handling. Additionally, new modules for Git integration (\git.rs\, \git\_theme.rs\) and a comprehensive theming system (\color.rs\, \theme/\) have been added, fundamentally changing how the tool processes and renders file listings.

src · high confidence

Test coverage

Added integration test suite for core listing behaviors

Added a new integration test file (\tests/integration.rs\) that validates core \ls\-like behaviors, including listing empty and populated directories, handling \--all\ and \--almost-all\ flags, sorting with folders, and displaying inode information with and without the long format.

tests · high confidence

Dependencies

Initial release of lsd v1.2.0 with Rust 2024 edition and updated dependencies

This entry introduces the lsd v1.2.0 release, establishing the project on the Rust 2024 edition with a minimum supported Rust version (MSRV) of 1.85. The dependency manifest and lockfile define the core runtime requirements, including clap 4.5 for command-line parsing, crossterm 0.29 for terminal control, chrono 0.4 for date handling, and lscolors 0.21 for file coloring. Additional dependencies such as dirs 6, users (uzers) 0.12, and git2 0.20 are included to support configuration, user metadata, and optional Git integration.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 63 → 58 (-5.8)
  • Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.

Lenses

  • Code Health 94 → 94 (+0.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 57 → 57 (+0.0)
  • Readiness 59 → 43 (-15.5)
  • Security 60 → 73 (+13.3)

Resolved (3)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Off-boarding risk: anonymized user #1

New (11)

  • No ADRs found
  • Off-boarding risk: anonymized user #1
  • Outdated: chrono
  • Outdated: jiff
  • Outdated: once_cell
  • Outdated: serde
  • Outdated: sys-locale
  • Outdated: thiserror
  • Outdated: unicode-width
  • Outdated: url
  • Outdated: xattr

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

lsd-rs/lsd was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 4b6c14a110fe0fd544ec0204501b5fd3a5d6218f — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-d46da229e3fd.