nowfound

Dev tools · alternatives · 2026

24 alternatives to Zli – A Batteries-Included CLI Framework for Zig

I built zli, a batteries-included CLI framework for Zig with a focus on DX and composability. Key features: - Typed flags with default values and help output - Rich formatting, and layout support - Command trees with isolated execution logic - It’s designed to feel good to use, not just to work. - Built for real-world CLI apps, not toy examples. Would love feedback, feature ideas, or thoughts from other Zig devs. repo here: https://github.com/xcaeser/zli

Zli is a CLI framework for the Zig programming language that provides typed flags with defaults, command trees, and rich formatting capabilities. Built for production command-line applications rather than simple… Below are 24 products that do a similar job, ranked by how close each is in meaning and then by launch-day votes.

  1. 1CA

    I've made an open-source microframework for creating command-line (CLI) applications in the Zig programming language. It's called Chilli, and it currently provides the following features: - A declarative API for defining nested commands, flags, and positional arguments. - Type-safe parsing of arguments from the command line and environment variables. - Automatic generation of formatted `--help` and `--version` output. - Support for command aliases, persistent flags, and other common CLI patterns. You can find the project on GitHub: https://github.com/habedi/chilli

    2025 · its alternatives →

  2. 2
    Zigi▲227

    Slack-based workflow assistant built for devs & their teams

    2022 · its alternatives →

  3. 3
    Noteli▲105

    An open source CLI tool to take notes

    2021 · its alternatives →

  4. 4
    Zellij▲119

    A terminal workspace with batteries included

    2025 · zellij.dev · its alternatives →

  5. 5

    For a year or two I've been building a UI library with the aim of making desktop applications fun and easy to write. It is currently written in C/Ruby and uses a custom tree sitter grammar to describe templates. Features include: composable UI components, template directives, event and prop handling, slots, styles and automation capabilities baked in. One of the goals of the project is privileging easy to write custom components via a drawing API over providing a fixed set of components. At the time of this writing it should install on Windows, Mac, and Linux, but sometimes it is hard…

    2025 · codeberg.org · its alternatives →

  6. 6

    Writing Redis from scratch in Zig.

    2025 · github.com · its alternatives →

  7. 7

    Minimalist, dependency-free virtual machine sandbox for microcontrollers and other resource-constrained devices. Single C file, no dynamic memory allocations, asynchronous design, pure C99 - ringtailsoftware/uvm32

    Dec 2025 · github.com · its alternatives →

  8. 8

    A single compiled binary that renders one curated status line for fish, bash and zsh, and binds the up arrow to its own history picker. The slowest module runs as a task via std.Io while the rest run alongside it, so a render costs about what its slowest probe costs.

    Jul 2026 · yamafaktory.github.io · its alternatives →

  9. 9
    Clide ▲93

    Grid-layout terminal with an AI that drives your shells.

    Apr 2026 · clide.app · its alternatives →

  10. 10

    I love C and C++, but setting up projects can sometimes be a pain. Every time I wanted to start something new I'd spend the first hour writing CMakeLists.txt, figuring out find_package, copying boilerplate from my last project, and googling why my library isn't linking. By the time the project was actually set up I'd lost all momentum. So, I built Craft - a lightweight build and workflow tool for C and C++. Instead of writing CMake, your project configuration goes in a simple craft.toml: [project] name = "my_app" version = "0.1.0" language = "c" c_standard = 99 [build] type = "executable"…

    Apr 2026 · github.com · its alternatives →

  11. 11

    Hi HN, clx is an ahead-of-time compiler for standard Lua that generates C++20 and produces standalone native executables through GCC, Clang or MSVC. The project started as an experiment to see whether modern C++ could be used as a portable compiler backend instead of LLVM or direct machine code generation. The generated code is then compiled and optimized by the host toolchain. The latest release replaces the previous NaN-tagged value representation with a new shadow-types implementation, adds full int64 support, improves native arithmetic code generation and adds ARM64 macOS coroutine…

    Jul 2026 · github.com · its alternatives →

  12. 12

    Hi HN! I wanted to share Yakari, a tool I built to make command-line interfaces more approachable through interactive TUIs. If you've ever forgotten CLI flags or needed to look up command syntax, this might help. Yakari turns complex commands into interactive menus. Users can navigate through options with simple key presses instead of memorizing complex command structures. If you've used Emacs and Magit (or any other Transient) before, the interface will feel familiar. Features: - Transform CLIs into guided menus - Create custom menus for any CLI - Support for flags, named parameters,…

    2024 · github.com · its alternatives →

  13. 13

    I believe the best way to learn a language is by doing an in-depth project. This is my first Zig project intended for learning the ropes on publishing a Zig package. It turns out to be quite solid and performant. It might be a bit over-engineered. This little library is packed with the following features: - Building dependency graph from dependency data. - Performing topological sort on the dependency graph. - Generating dependence-free subsets for parallel processing. - Cycle detection and cycle reporting.

    2025 · github.com · its alternatives →

  14. 14ZD

    Hi everyone, I've made an open-source library for using design by contract (DbC) principles in the Zig programming language. It's called Zig-DbC, and it currently provides the following features: - A simple API to define preconditions, postconditions, and invariants. - Contracts are active in `Debug`, `ReleaseSafe`, and `ReleaseSmall` modes to catch bugs early. - All checks are removed at compile time in `ReleaseFast` mode for zero performance cost. - An optional mode to handle partial state changes in functions that return errors. - Transparent error handling that propagates errors from…

    2025 · its alternatives →

  15. 15

    Hey HN, I wanted to share the new online playground for Salt (https://salt-lang.dev/playground/), a sovereign systems language designed for high-performance, distributed workloads where paying an "abstraction tax" is no longer acceptable. We started building Salt to bridge the gap between the raw power of manual pointer arithmetic and the safety guarantees of modern high-level languages. The architecture relies on an MLIR-based backbone and a Z3-powered "formal shadow," and the design is rooted in three main pillars: Fast Enough: The target is to stay within 20% of C's…

    Jul 2026 · salt-lang.dev · its alternatives →

  16. 16

    A minimal text-editor with lua scripting. Contribute to skx/kilua development by creating an account on GitHub.

    2016 · github.com · its alternatives →

  17. 17

    I created this because sometimes I want more than rlwrap but less than emacs. icl aims to hit that middle sweet spot. It's a terminal application with context-aware auto-complete, an interactive object inspector, auto-indentation, syntax colouring, persistent history, and much more. It uses sly to communicate with the child lisp process and aims to be compatible with any sly-supporting implementation. I hope others find it useful!

    Dec 2025 · github.com · its alternatives →

  18. 18

    We've been building Crust (https://crustjs.com/), a TypeScript-first, Bun-native CLI framework with zero dependencies. It's been powering our core product internally for a while, and we're now open-sourcing it. The problem we kept running into: existing CLI frameworks in the JS ecosystem are either minimal arg parsers where you wire everything yourself, or heavyweight frameworks with large dependency trees and Node-era assumptions. We wanted something in between. What Crust does differently: - Full type inference from definitions — args and flags are inferred automatically. No…

    Mar 2026 · github.com · its alternatives →

  19. 19ZA

    Hi everyone, I've made an early version of ZigFormer, a small LLM implemented in Zig with no dependencies on external ML frameworks like PyTorch or JAX. ZigFormer is modelled after a textbook LLM (like GPT-2 from OpenAI) and can be used as a Zig library as well as a standalone application to train a model and chat with it. This was mainly an educational project. I'm sharing it here in case others find it interesting or useful. Link to the project: https://github.com/CogitatorTech/zigformer

    Nov 2025 · its alternatives →

  20. 20
    Zoya▲91

    Zoya is a highly composable logging utility

    2019 · github.com · its alternatives →

  21. 21

    A cross-platform build utility based on Lua

    2019 · xmake.io · its alternatives →

  22. 22

    Brisk is an open-source C++ GUI framework with a declarative approach, offering powerful data bindings, GPU-accelerated graphics, and dynamic widget management. It supports macOS, Linux, Windows, and simplifies UI creation with modern paradigms and CSS-like layouts. Initially developed for a graphics-intensive project with a complex and dynamic GUI, the framework is currently under active development.

    2024 · github.com · its alternatives →

  23. 23

    A Zig package for implementing Excel custom functions against the ancient C SDK. This exists because I wanted to learn about Zig's C interop and comptime to see if it was possible to make the Excel C SDK slightly nicer to work with. It's just a demo, I wouldn't use it for anything important, but I learnt a lot doing it. There is also a demo repo: https://github.com/AlexJReid/zigxll-standalone

    Nov 2025 · github.com · its alternatives →

  24. 24

    Doing dynamic dispatching in a strict static typing language is hard. Something as simple as, map.put("add", add); map.put("hello", hello); fn add(a: i32, b: i32) i32 { return a + b; } fn hello() []const u8 { return "Hello World"; } is impossible because the value type of key/value of the map needs to be the same but all the function types are different. Calling functions with different number of parameters, different parameter types, and different return type dynamically is difficult. Other languages either use dynamic typing, runtime reflection, macro, or passing in one big generic…

    2025 · github.com · its alternatives →

Also compare

Ranked by how close each launch is in meaning, then by votes. Prices were read from each product’s own site when checked and can change. Refine with your own description →