Quickly create POSIX-like Command Line Interface (CLI) applications with a simple metadata API, built on top of the System.CommandLine library.
The library is available as a NuGet package:
While Microsoft's System.CommandLine
library provides all the necessary APIs to parse command-line arguments, it requires significant effort to set up the code responsible for command-line handling before the program is ready to run. Additionally, this code can be difficult to maintain. For more context, see the Motivation page.
The goal of this project is to address these issues by providing developers with easy-to-use mechanisms, while retaining the core functionality and features of System.CommandLine
.
This library enables developers to quickly create POSIX-like CLI applications by automatically managing command-line commands and parameters using the provided metadata. This simplifies the development process and allows developers to focus on their application logic.
Additionally, it streamlines the creation of the application's help system, ensuring that all necessary information is easily accessible to end users.
The inspiration for this project came from the DragonFruit project, which was a step in the right direction to simplify the usage of System.CommandLine
but has significant limitations.
Visit the Documentation page to get started with SnapCLI’s APIs.
There are several samples provided to demonstrate various ways to use the library.
Supported frameworks can be found on the SnapCLI NuGet page. The goal is to maintain the same level of support as the System.CommandLine library.
This project is licensed under the MIT License. Some parts of this project are borrowed with modifications from DragonFruit under the MIT License.