Skip to content
Jon Sequeira edited this page Nov 16, 2018 · 30 revisions

Welcome to the System.CommandLine wiki!

Our goal

Give your users a great experience with your .NET command line applications while letting you focus on the great application you're writing.

or more simply

Leave the plumbing to us.

To do this, System.CommandLine contains three pillars of functionality:

  1. Parsing. Parse command line input, validate it, and bind it to types beyond just strings.
  2. Middleware. A composable pipeline to provide features like suggestions, help, exception handling, and parse debugging.
  3. Rendering. Write code once that can render to multiple outputs (virtual terminal, Windows Console, and files)

Parsing

System.CommandLine is the base API which can support multiple application models to simplify working with the parser. You can also work directly with the the System.CommandLine API.

appmodels

The simplest way to create your parser is with the DragonFruit app model. This works well if you have a single layer of commands (no subcommands). This approach adds a target to the build process.

If you have a complex API, or you want to work with the API directly to better understand it, you can access the System.CommandLine API directly.

We plan to add application models to fit niches between DragonFruit and direct API access in the future.

Clone this wiki locally