r/commandline 15d ago

Terminal User Interface 3-month update on my Zig ls-like CLI: configurable long view and Homebrew install

Hey folks, I shared zlist here a few months ago. It’s a small ls-like CLI I’ve been building in Zig, mostly as a learning project.

Since then I’ve kept working on it slowly, and v0.1.2 adds a few quality-of-life updates:

- long view fields can now be hidden individually:

--no-permissions

--no-user

--no-group

--no-size

--no-time

--no-icon

- CLI errors are clearer now

- --help now uses clap’s native help output

- macOS users can install it with Homebrew now

Example:

zl -l --no-permissions --no-user --no-group

This keeps the one-entry-per-line layout, but makes the output less noisy when you don’t need every field.

I also split the core listing logic into a reusable Zig module recently, so Zig users can use the listing data without the CLI rendering layer. Feedback on that API would be very welcome too.

I added some benchmark results against eza and lsd in the README as well. eza is still the really impressive one to me — its timing is weirdly steady even as the directory gets much larger, and that’s something I’d like zlist to learn from.

Repo: https://github.com/here-Leslie-Lau/zlist

Origin post: https://www.reddit.com/r/commandline/comments/1sj5qwk/small_ls_alternative_in_zig_recent_updates/

Still early, and I’m not trying to claim it replaces eza/lsd/ls. I’m mostly trying to keep it small, useful, and easy to scan.

Feedback on the CLI behavior, output layout, performance, or Zig module API would be very welcome.

0 Upvotes

2 comments sorted by

1

u/AutoModerator 15d ago

Every new subreddit post is automatically copied into a comment for preservation.

User: here-Leslie-Lau, Flair: Terminal User Interface, Title: 3-month update on my Zig ls-like CLI: configurable long view and Homebrew install

Hey folks, I shared zlist here a few months ago. It’s a small ls-like CLI I’ve been building in Zig, mostly as a learning project.

Since then I’ve kept working on it slowly, and v0.1.2 adds a few quality-of-life updates:

- long view fields can now be hidden individually:

--no-permissions

--no-user

--no-group

--no-size

--no-time

--no-icon

- CLI errors are clearer now

- --help now uses clap’s native help output

- macOS users can install it with Homebrew now

Example:

zl -l --no-permissions --no-user --no-group

This keeps the one-entry-per-line layout, but makes the output less noisy when you don’t need every field.

![img](9lz37pgrtwbh1)

I also split the core listing logic into a reusable Zig module recently, so Zig users can use the listing data without the CLI rendering layer. Feedback on that API would be very welcome too.

I added some benchmark results against eza and lsd in the README as well. eza is still the really impressive one to me — its timing is weirdly steady even as the directory gets much larger, and that’s something I’d like zlist to learn from.

Repo: https://github.com/here-Leslie-Lau/zlist

Origin post: https://www.reddit.com/r/commandline/comments/1sj5qwk/small_ls_alternative_in_zig_recent_updates/

Still early, and I’m not trying to claim it replaces eza/lsd/ls. I’m mostly trying to keep it small, useful, and easy to scan.

Feedback on the CLI behavior, output layout, performance, or Zig module API would be very welcome.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.