NibblePoker.Library.Arguments 1.1.0

.NET 6.0
dotnet add package NibblePoker.Library.Arguments --version 1.1.0
NuGet\Install-Package NibblePoker.Library.Arguments -Version 1.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NibblePoker.Library.Arguments" Version="1.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NibblePoker.Library.Arguments --version 1.1.0
#r "nuget: NibblePoker.Library.Arguments, 1.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install NibblePoker.Library.Arguments as a Cake Addin
#addin nuget:?package=NibblePoker.Library.Arguments&version=1.1.0

// Install NibblePoker.Library.Arguments as a Cake Tool
#tool nuget:?package=NibblePoker.Library.Arguments&version=1.1.0

.NET - Launch Arguments Parser Library latest version downloads count

A simple and 'to-the-point' library to parse launch arguments in .NET and .NET Core applications.

This library is an improved port of my PB-Arguments library that intended to achieve the same goals but was missing support for some features.


  • Easy to use, lightweight and 'to-the-point' philosophy
  • Support for 'git-like' verbs
  • Different behavior for options
    • Required options
    • Repeatable flag-like options
    • Multiple value
    • Multiple default option per verb with index-based ordering
    • Hidden in help text
    • Early parser exit
  • Configurable help text printer
  • Easy exception filtering with inheritance
    • 1 common parent
    • 3 child for distinct parts of the library
    • 14 final errors thrown in specific places.


  • Any OS
  • Any CPU
  • .NET v6.0
  • C# 10.0




Go to for the HTML documentation.

Basic Example

The following example shows you how to declare 2 options and how to parse and use the launch arguments.

// Preparing options and root verb.
Option OptionHelp    = new('h', "help",    "", OptionFlags.StopsParsing);
Option OptionVerbose = new('v', "verbose", "", OptionFlags.Repeatable);

Verb RootVerb = new Verb("").RegisterOption(OptionHelp).RegisterOption(OptionVerbose);

// Parsing lanch arguments
try {
    ArgumentsParser.ParseArguments(RootVerb, args);  // 'args' is gotten from Main().
} catch(ArgumentException) {
    Console.Error.Write("Failed to parse the launch arguments !");
    RootVerb.Clear();  // Ignoring the error and simulating no launch parameters.

// Using the results
if(OptionHelp.WasUsed()) {
    Console.WriteLine(HelpText.GetFullHelpText(RootVerb, "app.exe"));

if(OptionVerbose.WasUsed() && OptionVerbose.Occurrences >= 2) {
    // We count the number of occurences to enable more logging.
    Console.WriteLine("Activating super-verbose mode !");

Other Examples

  • Loose Declaration
    • Declaration, registration and parsing done in a single nested statement


MIT License

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed. 
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.0 383 10/9/2022
1.0.0 317 10/2/2022
0.2.0 310 9/30/2022
0.1.0 320 9/29/2022

* Improved the help text generator
* Exposed more help text functions