A .NET Standard command line argument parser that converts arguments into .NET objects with validation, auto-generated usage, and tab completion.
PowerArgs is a .NET Standard library for parsing command line arguments into strongly-typed .NET objects. It automates argument validation, generates usage documentation, and orchestrates program execution based on actions, reducing boilerplate code for CLI applications. It solves the problem of manual argument parsing and error handling in .NET command line tools.
.NET developers building command line applications, tools, or utilities that require robust argument parsing, validation, and user-friendly help systems.
Developers choose PowerArgs for its comprehensive feature set—including validation, tab completion, and auto-generated documentation—coupled with a clean, attribute-based API that minimizes boilerplate. Its ability to handle complex scenarios like multi-action programs and secure input makes it a versatile alternative to basic parsing solutions.
The ultimate .NET Standard command line argument parser
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically routes and invokes methods based on command line actions, enabling git-style multi-command interfaces as shown in the calculator example.
Includes built-in validators for required fields, ranges, regex, and file existence, reducing manual error-checking boilerplate.
Generates usage documentation from templates that can be tailored for console or web output, offering flexibility in presentation.
Enables tab completion for argument names and allows custom completion sources, enhancing CLI usability.
Requires extensive property decoration with attributes, which can clutter class definitions and increase verbosity compared to fluent APIs.
Implementing custom revivers or tab completion sources involves additional classes and interfaces, adding to the initial learning curve.
Tied exclusively to the .NET ecosystem, making it unsuitable for projects using other languages or frameworks.