{"id":46937301,"url":"https://github.com/here-Leslie-Lau/zlist","last_synced_at":"2026-03-24T00:01:01.565Z","repository":{"id":335510193,"uuid":"1138884519","full_name":"here-Leslie-Lau/zlist","owner":"here-Leslie-Lau","description":"A simple, colorful alternative to ls built with Zig.","archived":false,"fork":false,"pushed_at":"2026-03-22T03:41:23.000Z","size":1083,"stargazers_count":11,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-22T18:51:24.124Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/here-Leslie-Lau.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-21T08:38:18.000Z","updated_at":"2026-03-22T03:41:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/here-Leslie-Lau/zlist","commit_stats":null,"previous_names":["here-leslie-lau/zlist"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/here-Leslie-Lau/zlist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/here-Leslie-Lau%2Fzlist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/here-Leslie-Lau%2Fzlist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/here-Leslie-Lau%2Fzlist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/here-Leslie-Lau%2Fzlist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/here-Leslie-Lau","download_url":"https://codeload.github.com/here-Leslie-Lau/zlist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/here-Leslie-Lau%2Fzlist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30870074,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-23T21:38:10.789Z","status":"ssl_error","status_checked_at":"2026-03-23T21:37:51.191Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-11T06:00:23.541Z","updated_at":"2026-03-24T00:01:01.546Z","avatar_url":"https://github.com/here-Leslie-Lau.png","language":"Zig","funding_links":[],"categories":["Fundamentals","Applications"],"sub_categories":["Utility"],"readme":"# zlist ⚡️\n\n\u003e A simple, colorful alternative to `ls` built with **Zig**.\n\n[![Build Status](https://img.shields.io/badge/build-passing-brightgreen?style=flat-square)](https://github.com/here-Leslie-Lau/zlist)\n[![Zig Version](https://img.shields.io/badge/zig-0.16.0_dev-orange?style=flat-square)](https://ziglang.org/)\n[![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](LICENSE)\n\n**Note**: This is my **first CLI tool in Zig**! 🚀\n\nI built this project to learn Zig, get comfortable with manual memory management, and explore the standard library. It might not be the fastest or smallest `ls` clone (yet), but it's usable today and still getting better.\n\n## ✨ Features\n\nEven as a learning project, it already has some pretty handy features:\n\n*   **Smart Grid Layout**: Automatically adjusts column widths so things stay compact and easy to scan.\n*   **Visual Context**:\n    *   **Nerd Fonts** support out of the box.\n    *   Specific icons for your code (`Zig`, `Rust`, `Go`, `Python`, `JS/TS`, `C/C++`, etc.).\n    *   Highlights directories and Markdown files so you spot them instantly.\n*   **Smart Details**: Permissions, user/group, sizes, and timestamps in a format that's actually readable.\n*   **Sorting**: Default is A-Z by name, plus options for **filename length**, **directories first**, **modification time** (newest first), and **file size** (largest first).\n*   **Dig Deeper**: Use `-r` to recurse into subdirectories, or `-L` to cap the depth.\n*   **Filters**: Quickly isolate just directories (`-d`) or just files (`-D`).\n*   **Extension Filter**: Hide extensions you don't want to see with `-e` / `--ext` (for example: `--ext zig,md,ts`).\n*   **Name Match Filter**: Only show entries whose names contain specific text with `-m` / `--match` (for example: `--match test`).\n*   **Summary Report**: Use `-R` to see a quick count of files and folders after listing.\n*   **Git Integration**: Use `-g` with `-l` to show Git status indicators in detailed view (`M` modified, `A` added, `D` deleted, `R` renamed, `?` untracked). Note: this only works in detailed mode (`-l`), not in grid mode.\n\n## 📸 Preview\n\n![Preview1](pics/screenshot.png)\n![Preview2](pics/screenshot2.png)\n![Preview3](pics/screenshot3.png)\n\n*(Make sure you have a [Nerd Font](https://www.nerdfonts.com/) installed in your terminal to see the icons!)*\n\n## 🚀 Installation\n\n### Precompiled Binaries\n\nDownload the latest binary for your system from the [Releases](https://github.com/here-Leslie-Lau/zlist/releases) page.\n\n\u003e **Note**: Windows is currently **not supported** due to differences in file system APIs. Support may be added in future versions.\n\n### From Source\n\nRequirements: `zig` (master/0.16.0-dev recommended).\n\n```bash\n# 1. Clone the repo\ngit clone --recursive https://github.com/here-Leslie-Lau/zlist.git\ncd zlist\n\n# 2. Build in release mode [ReleaseFast, ReleaseSafe, ReleaseSmall]\nzig build -Doptimize=ReleaseFast\n\n# 3. Run it. (Optional: add to PATH, it's up to you.)\n./zig-out/bin/zl\n```\n\n## 🛠 Usage\n\nJust run:\n\n```bash\nzl [OPTIONS] [PATH]\n```\n\n| Flag | Description |\n| :--- | :--- |\n| `-l`, `--long` | Show detailed view (permissions, size, date, user). |\n| `-a`, `--a` | Show hidden files (starting with `.`). |\n| `-s`, `--sort \u003cmode\u003e` | `name` (A-Z) [Default]\u003cbr\u003e`length` (Shortest first)\u003cbr\u003e`dir_first` (Dirs first)\u003cbr\u003e`mtime` (Newest first)\u003cbr\u003e`size` (Largest first) |\n| `-r`, `--recursive` | Recurse into subdirectories. |\n| `-L`, `--level \u003cINT\u003e` | Limit the depth of recursion (use `0` for infinite depth). |\n| `-p`, `--pure` | Clean output without colors or icons (useful for pipes). |\n| `-d`, `--dir` | Only show directories. |\n| `-D`, `--no_dir` | Only show files (hide directories). |\n| `-e`, `--ext \u003cstr\u003e...` | Hide files by extension, e.g. `--ext zig,go,ts`. |\n| `-m`, `--match \u003cstr\u003e...` | Only show names that contain the given text, e.g. `--match test`. |\n| `-R`, `--report` | Show a brief summary of file and folder counts. |\n| `-g`, `--git` | Show Git status indicators (requires `-l` to work). |\n| `-h`, `--help` | Print help message. |\n\n### Examples\n\n**Standard list:**\n```bash\nzl\n```\n\n**Show all files with details (sorted by filename length):**\n```bash\nzl -la -s length\n```\n\n**Dig deep (recursive listing):**\n```bash\n# Basic recursive (infinite)\nzl -r\n\n# Limit recursion to 2 levels deep\nzl -L 2\n```\n\n**Clean output (no colors/icons):**\n```bash\nzl -p\n```\n\n**Filter by file type (directories only / files only):**\n```bash\nzl -d\nzl -D\n```\n\n**Exclude some extensions:**\n```bash\nzl --ext zig,go,ts\n```\n\n**Match by name:**\n```bash\nzl --match test\n```\n\n**Show summary report:**\n```bash\nzl -R\n```\n\n**Show Git status (must be used with `-l`):**\n```bash\nzl -lg\n```\n\n## 🛣 Roadmap\n\n*   [x] Basic file listing \u0026 recursion\n*   [x] Color output \u0026 Nerd Font icons\n*   [x] Detailed file stats\n*   [x] Sorting by name (default), length, and modification time\n*   [x] Recursive directory traversal (`-r`)\n*   [x] Depth control for recursion (`-L`)\n*   [x] Clean output mode (`-p`)\n*   [x] Filter by files or directories (`-d`, `-D`)\n*   [x] Extension filter (`-e`, `--ext`)\n*   [x] Name match filter (`-m`, `--match`)\n*   [x] Smart dynamic grid layout\n*   [x] Summary report (`-R`)\n*   [x] Git status integration (`-g`)\n*   [ ] Multi-threading for faster `stat` calls\n*   [ ] Custom color/icon configurations (Maybe, if you need it)\n\n## 🤝 Contributing\n\nGot an idea? Found a bug? Open an issue or send a PR. This is a fun side project, and contributions are always welcome.\n\n1.  Fork it\n2.  Create your feature branch (`git checkout -b feature/cool-thing`)\n3.  Commit your changes\n4.  Push to the branch\n5.  Open a Pull Request\n\n---\n\n*Crafted with ❤️ in Zig.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhere-Leslie-Lau%2Fzlist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhere-Leslie-Lau%2Fzlist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhere-Leslie-Lau%2Fzlist/lists"}