ApplicationBuilderHelpers 4.1.147
dotnet add package ApplicationBuilderHelpers --version 4.1.147
NuGet\Install-Package ApplicationBuilderHelpers -Version 4.1.147
<PackageReference Include="ApplicationBuilderHelpers" Version="4.1.147" />
<PackageVersion Include="ApplicationBuilderHelpers" Version="4.1.147" />
<PackageReference Include="ApplicationBuilderHelpers" />
paket add ApplicationBuilderHelpers --version 4.1.147
#r "nuget: ApplicationBuilderHelpers, 4.1.147"
#:package ApplicationBuilderHelpers@4.1.147
#addin nuget:?package=ApplicationBuilderHelpers&version=4.1.147
#tool nuget:?package=ApplicationBuilderHelpers&version=4.1.147
ApplicationBuilderHelpers
Build command-line apps in .NET with plain classes. Mark a class as a command, add options and arguments as properties, then run it.
- Targets:
net6.0throughnet10.0· AOT-ready onnet8.0+ · Trimmable - Packages:
Microsoft.Extensions.Hosting,Microsoft.Extensions.DependencyInjection.Abstractions,AbsolutePathHelpers
Features
- Commands with automatic parsing. You write a class. The library reads the arguments.
- Services in your command. Ask for a service. The library provides it.
- Shared setup modules. Group common services once. Reuse them in every app.
- App settings that reuse another key with
@ref:— see Configuration. - Command markers:
[Command],[CommandOption],[CommandArgument]. - Subcommands like
deploy prod. Nest as deep as you need. - Styled
--helpwith 6 color themes and adjustable width. - Console and web hosts. Use the default for CLIs. Plug in your own for servers.
Installation
dotnet add package ApplicationBuilderHelpers
Quick Start
New here? Follow Getting Started for a full Hello sample. It prints Hello, Alice! and exits 0. Prefer a full starter app? See Starter Templates.
RunAsync returns an exit code: 0 success, 2 bad input, 1 failure, 130 canceled. See Commands.
Core Concepts
Extend Command and override Run. Add options with [CommandOption] and positionals with [CommandArgument]. Put shared setup in Application Dependencies.
Exit codes: 0 means success, 2 means bad input, 1 means failure, 130 means canceled. See API Reference.
How a Run Works
Commands → Shared setup → Host build → Services → Your Run method
- You register commands and shared setup modules.
- The library builds the host once per run.
- The library fills your options, arguments, and services.
- Your
Runmethod executes.
Full order lives in Commands.
Documentation
| Guide | Covers |
|---|---|
| Getting Started | Install, minimal app, first command, run it |
| Starter Templates | Copy-only Plain CLI, WebApi, or WebApiAndWebApp starter |
| Commands | Commands, options, arguments, services, completion |
| Application Dependencies | Shared setup modules |
| Configuration & Themes | App name, help width, themes, @ref: settings |
| Custom Type Parsers | Support your own option types |
| Advanced Topics | Subcommands, web hosts, errors, help |
| API Reference | Every public class and method |
Secret values stay hidden. Help, errors, and completions never print them.
Contributing
Contributions are welcome! Please submit a Pull Request.
License
MIT — see the LICENSE file.
| Product | Versions 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 is compatible. 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. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- AbsolutePathHelpers (>= 0.3.148)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Hosting (>= 10.0.10)
-
net6.0
- AbsolutePathHelpers (>= 0.3.148)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Hosting (>= 10.0.10)
-
net7.0
- AbsolutePathHelpers (>= 0.3.148)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Hosting (>= 10.0.10)
-
net8.0
- AbsolutePathHelpers (>= 0.3.148)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Hosting (>= 10.0.10)
-
net9.0
- AbsolutePathHelpers (>= 0.3.148)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Hosting (>= 10.0.10)
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 |
|---|---|---|
| 4.1.147 | 33 | 10/6/2026 |
| 4.1.145 | 39 | 10/1/2026 |
| 4.1.143 | 35 | 9/27/2026 |
| 4.1.142 | 47 | 9/23/2026 |
| 4.1.141 | 50 | 9/17/2026 |
| 4.1.140 | 45 | 9/16/2026 |
| 4.1.139 | 49 | 9/16/2026 |
| 4.1.138 | 46 | 9/15/2026 |
| 4.1.137 | 43 | 9/15/2026 |
| 4.1.136 | 50 | 9/14/2026 |
| 4.1.135 | 52 | 9/10/2026 |
| 4.1.134 | 459 | 9/9/2026 |
| 4.1.133 | 45 | 9/9/2026 |
| 4.1.132 | 53 | 9/9/2026 |
| 4.1.131 | 100 | 9/7/2026 |
| 4.1.130 | 64 | 9/4/2026 |
| 4.1.129 | 89 | 8/17/2026 |
| 4.1.128 | 51 | 8/17/2026 |
| 4.1.127 | 81 | 8/14/2026 |
| 4.1.126 | 52 | 8/13/2026 |
## New Version
* Bump `application_builder_helpers` from `4.1.145` to `4.1.147`. See [changelog](https://github.com/Kiryuumaru/ApplicationBuilderHelpers/compare/application_builder_helpers/4.1.145...application_builder_helpers/4.1.147)
## What's Changed
* fix(cli): symmetric help/version forgiveness plus global version footer (Fixes #595) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/620
* cli: default sink policy keeps lifetime logs off stdout (Fixes #604) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/624
* cli: single-letter Term auto-alias via shared ResolveShortName (Fixes #605) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/626
* fix(cli): isolate external abort from hosting lifetime output (Fixes #603) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/625
* fix(cli): unknown option takes precedence over help regardless of order (Fixes #607) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/627
* docs(cli): clarify exact option-name matching, CaseSensitive values-only by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/628
* feat(cli): add @response-file expansion to argv (Fixes #606) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/629
* fix(cli): true global flags bind at any position by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/630
* docs: clarify FromServices shim requirement (Fixes #632) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/641
* docs: add missing using directives to configuration snippets by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/640
* cli: gate concrete-root miss before positional bind (Fixes #631) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/644
* fix(cli): reserve help/version in DidYouMean ranking (Fixes #635) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/643
* fix(cli): fail-closed DidYouMean blame-token and subcommand gates by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/642
* fix(cli): synthetic parent help + force routing by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/645
* fix(cli): bind FromAmong-matched strings in canonical casing (Fixes #637) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/646
* fix(cli): bare-only boolean flags (Fixes #602) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/647
* fix(cli): uniform usage-error kinds and footers (Fixes #636) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/648
* fix(cli): help-width floor and piped-theme docs (Fixes #638) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/649
* docs: clarify starter templates are copy-only and add discovery pointers by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/650
* fix(cli): leading-help miss uniformity by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/663
* fix(cli): owner-only unknown-option footer (Fixes #652) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/662
* cli: gate help/version forgiveness on FromAmong probe by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/664
* fix(cli): centralize leaf-owned option scope authority (Fixes #651) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/666
* docs: add missing using directives (Fixes #657) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/667
* fix(cli): reserved help/version =-forms use bare-only text (Refs #655) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/668
* docs: Required means present not non-empty (Refs #658) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/669
* fix(cli): route short clusters in pre-subcommand path walk by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/670
* cli: always show redacted secret default in help (Fixes #660) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/671
* fix(cli): narrow -H hint plus list -? in help (Fixes #659) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/672
* fix(cli): per-type parser hints + help-width ceiling (Fixes #661) by @Kiryuumaru in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/673
* Bump coverlet.collector from 10.0.1 to 10.1.0 by @dependabot[bot] in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/589
* Bump Microsoft.CodeAnalysis.CSharp from 4.14.0 to 5.9.0 by @dependabot[bot] in https://github.com/Kiryuumaru/ApplicationBuilderHelpers/pull/590
**Full Changelog**: https://github.com/Kiryuumaru/ApplicationBuilderHelpers/compare/build.20261001103733.6353458...build.20261006042727.276c4c7