System.CommandLine is a command-line parsing library for .NET that handles argument parsing, model binding, command invocation, and terminal output rendering.
The library solves the problem of building robust command-line applications by providing a structured approach to parsing arguments, binding them to application models, and executing commands. It includes built-in support for shell completions and integrates with the dotnet-suggest global tool to enable intelligent command-line suggestions across different shells.
Developers building .NET command-line tools should choose this library if they want a standardized, first-party approach to CLI argument handling rather than building custom parsing logic. It suits applications ranging from simple utilities to complex multi-command tools. The project provides comprehensive documentation through Microsoft Learn, making it accessible for teams adopting it in new or existing applications.
The project maintains a steady stream of improvements through daily builds available via the official feed, indicating active ongoing development. Contributions are welcomed through a documented contributing guide, and the project operates under a clear code of conduct aligned with the .NET Foundation standards. The library is distributed as a standard NuGet package, making integration straightforward for .NET projects.