GitHub - rly0nheart/cerium: Yet, another ls-like util that is not trying to replace ls

4 min read Original article ↗

intro

Yet, another ls-like util that is not trying to replace ls.

Cerium gets inspiration from similar tools such as lsd and eza, but with a small difference: It aims to stay small by avoiding features that introduce heavy dependencies while doing what a tool of its kind is supposed to do... list files and directories.

Availability

Platform Tested Features
Android/Termux yes checksum
Linux/Unix yes checksum, filemagic
MacOS no not tested
Windows not planned not planned

Development

Development happens on Codeberg. The GitHub repository is a read-only mirror used solely for crates.io deployments. Issues should be opened on either GitHub or Codeberg, but pull requests should be opened only on Codeberg.

Table of Contents

Installation

Quick Install (with Cargo)

# Standard installation with all features
cargo install cerium --all-features

# Minimal installation
cargo install cerium

# Specific features
cargo install cerium --features magic
cargo install cerium --features checksum

Build from Source

# Clone the repo
git clone https://codeberg.org/rly0nheart/cerium.git

# Move to cerium directory
cd cerium

# Build and install: This will build cerium with all its features
make install

Features (optional)

Magic

Content-based file type identification using libmagic. Shows actual file types regardless of extension.

Requirements: libmagic library (scripts/install-libmagic.sh)

Checksum

Calculate file checksums with multiple algorithms.

Supported: crc32, md5, sha224, sha256, sha384, sha512

Usage

Display Options

-1, --oneline          One entry per line
-l, --long             Long format (permissions, user, group, size, modified)
-t, --tree             Tree view
-H, --column-headers   Show column headers

Filtering

-a, --all              Include hidden entries
-d, --dirs             Directories only
-f, --files            Files only
--find <QUERY>         Search for entries that match a query
--hide <ENTRIES>       Exclude specific entries (comma-separated)
--prune                Omit empty directories

Metadata Display

-p, --permission       File permissions
-u, --user             Owner
-g, --group            Group
-s, --size             File size
-m, --modified         Modification time
-c, --created          Creation time
--accessed             Access time
-i, --inode            Inode number
-b, --blocks           Block count
--hard-links           Hard link count
--acl                  ACL indicator
-x, --xattr            Extended attributes
--mountpoint           Mount point

Sorting & Traversal

--sort <BY>            name, size, created, accessed, modified, extension, inode
-r, --reverse          Reverse order
-R, --recursive        Recurse into subdirectories
-S, --true-size        Calculate actual directory sizes

Formatting

--date-format <FMT>            locale, human, timestamp
--number-format <FMT>          human, natural
--ownership-format <FMT>       name, id
--permission-format <FMT>      symbolic, octal, hex
--size-format <FMT>            bytes, binary, decimal

Appearance

-C, --colo[u]rs <WHEN>   always, auto, never
-I, --icons <WHEN>       always, auto, never
-Q, --quote-name         auto, double, single, never

Examples

Basic Operations

ce -la                                    # Long format, all files
ce -t                                     # Tree view
ce -lt --icons=always                     # Tree with metadata and icons
ce --find=*.rs --sort=size -r             # Find Rust files, sort by size

Metadata Inspection

ce -pugm --date-format=humanly            # Permissions, ownership, modified date, human dates
ce -i --hard-links --sort=inode           # Inodes and hard links
ce --acl -x                               # ACLs and extended attributes
ce -lb --block-size                       # Block usage

Advanced Usage

ce --magic --checksum sha256              # Type detection + checksums
ce -RS --true-size                        # Recursive with actual directory sizes
ce --hide=target,node_modules -t          # Tree excluding build artifacts
ce --permission-format=octal -p           # Octal permissions
ce --ownership-format=id -ug              # Numeric UIDs/GIDs

Combined Operations

ce -laH --date-format=humanly --size-format=binary
ce --find=.pdf --checksum md5 --sort=modified -r
ce -t --prune --hide=.git,target --icons=always

Themes

Cerium supports customisable themes via a TOML configuration file. By default, it uses the Gruvbox colour palette.

Quick Start

# Apply a pre-made theme
cp themes/dracula.toml ~/.config/cerium.toml

Available Themes

See themes/README.md for the full list of pre-made themes, installation instructions, and customisation guide.

Licence

MIT Licence. See choosealicense for more details.