Skip to content
Kathleen Dollard edited this page Nov 4, 2018 · 30 revisions

Welcome to the System.CommandLine wiki!

Our goal

Give your user's a great experience with your .NET command line applications - while you do nothing or almost nothing

Overview

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

  1. Parse command line/terminal input
  2. Render output to multiple terminals (VT100, Windows Console and downlevel consoles)
  3. Offer common operations via a pipeline, including suggestions, help, exception handling, and parse debugging

Parsing

System.CommandLine is a layered system with an API layer that supports multiple application models to simplify working with the parser. You can also work directly with the underlying API.

App Models Diagram /images/AppModels.png

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.

Rendering

Pipeline operations

Clone this wiki locally