30 open-source projects similar to apple/swift-argument-parser, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
CLI11 is a header-only C++ library for parsing command line arguments and managing configuration files. It maps shell input to typed variables and supports the creation of complex command hierarchies. The library is distinguished by its support for nested subcommands with infinite depth and prefix matching. It integrates configuration management by allowing application settings to be loaded from TOML or INI files, with the ability to fall back to environment variables. The project provides a comprehensive set of tools for argument parsing, including flags and positional arguments, alongside
picocli is a command line interface development framework and argument parser for JVM-based applications. It maps command line options and positional parameters to strongly typed Java methods and fields using a declarative, annotation-based model. The framework provides specific support for native image compilation, producing the reflection and resource configuration files necessary to build standalone binaries with reduced startup overhead. It further distinguishes itself with a dedicated system for generating shell autocompletion scripts and an ANSI terminal stylizer for applying colors and
This library is a .NET command line parser for C# and F# that implements POSIX getopt conventions to map shell arguments into strongly typed objects. It provides a framework for building console applications that process Unix-style flags and options. The project features a routing system that directs program execution based on action-oriented verbs, supporting sub-commands and default actions. It includes an automatic help generator that produces localized usage instructions and formatted help screens based on the defined command options. The toolset covers argument parsing with strongly typ
yargs is a command-line interface framework and argument parser for Node.js. It translates raw command-line strings into structured JavaScript objects, providing a toolkit for building terminal applications with nested sub-commands, dedicated handlers, and a structured user interface. The framework distinguishes itself through automated help text generation, which constructs formatted usage menus and instructions based on registered metadata. It also provides shell completion generation for Bash and Zsh and uses string-distance algorithms to offer typo correction suggestions when invalid inpu
This project is a Java command dispatch framework that maps user input to application logic using annotation-based processing. It provides a unified interface for registering and executing commands, allowing developers to define command syntax, parameter requirements, and execution logic through standard method annotations. The framework distinguishes itself through its cross-platform command handler, which abstracts platform-specific input and registration systems into a single codebase. This allows for consistent command processing across diverse environments, including server proxies, chat
This is a framework for building structured terminal applications in Go. It provides the core components necessary to define a command-line interface, including a system for managing commands, sub-commands, and their associated flags. The library distinguishes itself through an automated help generator that produces formatted usage instructions and manual pages, and a shell completion generator that creates tab-completion scripts for Bash, Zsh, Fish, and PowerShell. It also features a command lifecycle manager to handle pre- and post-execution logic and process exit codes. The toolkit covers
Thor is a Ruby toolkit for building command line interfaces and task runners. It maps user flags and parameters to executable methods, functioning as both a command line argument parser and a framework for creating self-documenting terminal tools. The framework automatically generates usage banners and help menus based on defined method signatures. It organizes related commands within classes to create isolated namespaces and injects user-defined flags directly into method logic. Beyond interface generation, the project includes capabilities for build task automation and the sequential execu
Brigadier is a command-line parser and dispatcher that maps text-based inputs to executable functions using a hierarchical tree of arguments. It provides a system for defining nested command structures and typed arguments to route user input to specific handlers. The library includes a command syntax generator that automatically produces human-readable usage strings and documentation based on defined command nodes. It transforms raw strings into structured data to identify valid command sequences and pinpoint syntax errors. The framework covers command tree routing, input syntax validation,
Meow is a Node.js command line argument parser that converts raw input strings into structured objects. It functions as a tool for processing flags and positional arguments according to POSIX and shell conventions. The library provides a system for enforcing required arguments and verifying data types for command line inputs. It also serves as a helper for managing version strings, help menus, and subcommand routing within terminal applications. The project covers the broader surface of command line interface development, including input validation and the direction of execution paths via ke
Kong is a declarative command line interface framework and parser for Go. It maps flags and positional arguments directly into typed Go structures using struct tags, allowing developers to define terminal interfaces through data models rather than manual parsing logic. The project functions as a configuration mapper that populates Go structures from a combination of command-line arguments, environment variables, and JSON files. It distinguishes itself by providing a dependency injection container to pass external services into command handlers and a plugin architecture for dynamic command reg
Clap is a command-line argument parser for Rust that enables developers to define complex interfaces through strongly-typed data structures. It functions as a comprehensive framework for building terminal applications, automating the transformation of raw string inputs into validated, type-safe code representations while simultaneously generating help documentation and usage statements. The library distinguishes itself by offering both a declarative, attribute-based approach and a fluent builder-pattern API, allowing for flexible interface construction. It includes a sophisticated validation
PsySH is an interactive read-eval-print loop and shell environment for PHP. It functions as a runtime debugger and application inspector, allowing for the execution of PHP code in real-time to experiment with snippets and inspect live application state. The project is distinguished by its ability to be embedded directly into running PHP applications for live troubleshooting. It provides specialized tools for state manipulation, including the ability to bypass visibility restrictions to inspect private or protected object members and the capacity to reload code without restarting the session.
Hyperfine is a command-line benchmarking tool used to measure the execution time of shell commands through multiple runs and statistical analysis. It functions as a comparative benchmarking utility and a shell performance analyzer, allowing for the evaluation of multiple commands against a reference baseline to determine relative speed. The tool distinguishes itself by isolating actual command performance through shell overhead correction and the ability to bypass the shell entirely using system calls. It supports parameterized execution, enabling benchmarks to run across a range of varying i
cac is a Node.js CLI framework used to build command line interfaces with a declarative API. It functions as a command line argument parser and a command dispatcher that maps terminal input keywords to specific JavaScript callback functions. The framework features an automated help generator that produces usage instructions and version documentation based on the defined command structures. It manages command aliases and provides a routing system to link specific keyword inputs to execution logic. The toolkit covers command interface definition, including the configuration of global and comma
Glances is a cross-platform system monitoring tool designed to track real-time resource usage and hardware health metrics across diverse computing environments. It functions as a command-line utility that provides a unified view of system performance, identifying bottlenecks and maintaining infrastructure stability through a consistent abstraction layer that translates kernel calls into actionable data. The project distinguishes itself through its distributed capabilities, offering a web-based interface that enables remote access to live performance metrics from any device without requiring d
This tool is a rule-based engine designed to automate the correction of failed terminal commands. By integrating directly into the shell environment, it intercepts command execution errors, analyzes exit codes and output streams, and applies corrective logic to resolve typos or syntax mistakes. It functions as a persistent background utility that monitors command history to provide immediate remediation for input failures. The system distinguishes itself through a modular, plugin-oriented architecture that allows for extensive customization. Users can define their own correction rules via scr
This project is a high-performance command-line utility designed for rapid filesystem navigation and file discovery. It enables users to locate files and directories within large project structures using recursive search, pattern matching, and metadata-aware filtering. By employing multi-threaded parallel traversal, it provides an efficient way to explore complex directory trees. What distinguishes this tool is its ability to integrate directly into terminal workflows and automate file management tasks. It automatically respects version control ignore files and hidden file settings, ensuring
Osquery is a unified endpoint monitoring framework that exposes operating system internals as relational tables. By representing hardware, network, and process activity as structured data, it allows users to retrieve system state and configuration information using standard SQL syntax. The system distinguishes itself through a cross-platform abstraction layer that normalizes disparate operating system interfaces into a consistent schema across Windows, macOS, and Linux. It supports both interactive local analysis via a command-line shell and distributed fleet orchestration, where recurring qu
This project is a terminal-based HTTP client designed for interacting with web services, debugging APIs, and automating network requests. It provides a specialized command-line interface that simplifies the construction of complex HTTP exchanges, allowing users to test and inspect web services directly from the shell. The tool distinguishes itself through a declarative syntax engine that translates shorthand command-line tokens into fully formed HTTP requests, including headers, parameters, and body payloads. It features a modular, plugin-based architecture that enables users to extend core f
Compose beautiful command line interfaces in Swift
Autojump is a shell directory navigation tool and weighted directory search utility. It functions as a path shortcut manager that allows users to jump to frequently visited directories using partial name matching. The tool optimizes shell workflows by learning navigation patterns and maintaining a weighted database of visited paths. It ranks folders based on access frequency and recency to resolve ambiguous queries and minimize the keystrokes required to reach deeply nested directories. Beyond shell navigation, the utility provides integration with native system file explorers to launch mana
Exa is a command-line utility designed to replace traditional file listing commands in Unix-like environments. It functions as a terminal-based file explorer that displays directory contents alongside system metadata and file attributes. The tool distinguishes itself by integrating version control information directly into the directory listing, allowing users to view the status of files within a repository alongside standard system data. It utilizes terminal-based styling to provide color-coded output, which helps visually differentiate between file types and metadata. The utility supports
z is a shell navigation utility and directory history tracker designed to reduce the amount of typing required to move through deep directory structures. It functions as a command line tool for jumping to frequently and recently visited directories using a ranking algorithm. The tool utilizes a frecency-based path jump system that weights the number of visits against the time elapsed since the last access to determine priority. It identifies candidate navigation targets by applying regular expression patterns against a database of visited paths. The utility integrates with the shell completi
This project is a community-driven repository of simplified, example-based reference guides for command-line tools. It functions as an open-source knowledge base designed to provide concise, practical usage examples that help developers navigate complex software without the need for lengthy technical documentation. The system relies on a decentralized architecture where independent client applications fetch and render documentation locally. This approach ensures that reference materials remain accessible offline while supporting a wide variety of user interfaces across desktop, mobile, and we
This project provides a command-line interface for managing the lifecycle of applications from the Apple App Store. It functions as a package manager for macOS, enabling users to search for software, install new applications, and maintain existing installations directly through terminal commands. The tool distinguishes itself by wrapping private system APIs to perform store operations that are typically restricted to the graphical user interface. It integrates with the operating system to handle administrative privilege elevation, allowing for secure, automated modifications to protected appl
This project is a general-purpose command-line filter that provides an interactive interface for processing standard input streams. It enables real-time fuzzy searching, data selection, and transformation, allowing users to navigate complex information or file systems directly within their terminal. By utilizing a pipe-oriented architecture, it integrates into existing shell pipelines and workflows to facilitate efficient data exploration. What distinguishes this tool is its highly extensible, event-driven design that allows for deep integration with external processes. It supports asynchrono
cxxopts is a header-only C++ command line parser used to define required options, default values, and positional arguments for console applications. It functions as a lightweight utility for parsing command line arguments into typed values using short and long flags and automatically generating formatted help messages and documentation. The library provides capabilities for argument specification, allowing the definition of option descriptions, types, and boolean flags. It supports multi-value option collection into containers, default value management for omitted options, and the mapping of
This project is a comprehensive educational resource consisting of a Bash programming tutorial, scripting reference, and Linux command line manual. It provides instructional materials for writing scripts, automating system tasks, and mastering terminal navigation and Unix system administration. The guides cover a wide range of shell environment customization, including prompt styling and the use of aliases. It also provides a shell environment guide for managing configuration files and initializing user environments. The materials detail a broad set of capabilities including control flow log
Cake is a cross-platform build automation system and scripting framework that allows users to define software build pipelines using C# scripts. It functions as a CI/CD pipeline orchestrator and build runner, providing a strongly-typed domain-specific language to simplify the orchestration of compilation, testing, and packaging processes across Windows, Linux, and macOS. The system ensures reproducible build environments by pinning the versions of build tools, modules, and dependencies. It distinguishes itself by enabling a C# scripting workflow with full IDE support, including autocomplete, s
which-key.nvim is a keybinding discovery menu and command palette for Neovim. It serves as a configuration tool to organize complex keymap hierarchies and a visual utility for browsing editor marks, registers, and spelling suggestions through a compact popup interface. The plugin differentiates itself by organizing shortcuts into nested groups with custom labels and icons, reducing the need to memorize long key sequences. It includes built-in help presets for native editor operators and motions, and supports dynamic key mapping where descriptions are evaluated at runtime. The system covers w