build_cli
Parse command line arguments directly into an annotation class using the power of build_runner and source_gen.
2.2.13
36K downloads/mo
#1703 most downloaded on pub.dev
kevmoo/build_cli
What this package is like to depend on
Last release 1 months ago
07 Jul 2026
Ships unpredictably
gaps range from 3 weeks to 1.3 years
Nearly every release is documented
notes for 52 of 52 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
52 releases · first in 2018
6 releases in the last 12 months
see the full history below
Release timeline
52 releases · Mar 2018 to Jul 2026Releases
latest 52-
2.2.1307 Jul 2026 -
2.2.1201 May 2026 -
2.2.1120 Mar 2026Release notes
Open source →- Validate that
allowedHelpkeys matchallowedvalues. - Required
analyzer: ">=10.0.0 <13.0.0" - Required
build: ^4.0.4 - Required
source_gen: ^4.1.2 - Required
source_helper: ^1.3.10
Release notes
Open source →- Validate that
allowedHelpkeys matchallowedvalues. - Required
analyzer: ">=10.0.0 <13.0.0" - Required
build: ^4.0.4 - Required
source_gen: ^4.1.2 - Required
source_helper: ^1.3.10
- Validate that
-
2.2.1015 Feb 2026 -
2.2.908 Dec 2025Release notes
Open source →- Required
sdk: ^3.9.0 - Required
analyzer: ^9.0.0 - Required
build: ^4.0.3 - Required
source_gen: ^4.1.1 - Required
source_helper: ^1.3.9 - Required
yaml: ^3.1.3
Release notes
Open source →- Required
sdk: ^3.9.0 - Required
analyzer: ^9.0.0 - Required
build: ^4.0.3 - Required
source_gen: ^4.1.1 - Required
source_helper: ^1.3.9 - Required
yaml: ^3.1.3
- Required
-
2.2.808 Sep 2025Release notes
Open source →- Required
sdk: ^3.8.0 - Required
analyzer: ^8.1.1 - Required
build: ^4.0.0 - Required
build_config: ^1.2.0 - Required
source_gen: ^4.0.1 - Required
source_helper: ^1.3.8
Release notes
Open source →- Required
sdk: ^3.8.0 - Required
analyzer: ^8.1.1 - Required
build: ^4.0.0 - Required
build_config: ^1.2.0 - Required
source_gen: ^4.0.1 - Required
source_helper: ^1.3.8
- Required
-
2.2.715 May 2025 -
2.2.621 Apr 2025 -
2.2.510 Feb 2025 -
2.2.417 Dec 2024Release notes
Open source →- Support the latest
package:analyzerandpackage:source_gen. - Require
sdk: ^3.6.0
- Support the latest
-
2.2.311 Sep 2023Release notes
Open source →- Fix bug where nullable number options lead to an exception when parsing if
nullis the default value and no value is passed to the command line.
- Fix bug where nullable number options lead to an exception when parsing if
-
2.2.201 Aug 2023 -
2.2.113 Sep 2022 -
2.2.010 Jun 2022Release notes
Open source →- Generate a
Commandhelper class when (the new)CliOptions.createCommandfield istrue.
- Generate a
-
2.1.620 Apr 2022 -
2.1.516 Jan 2022Release notes
Open source →- Add trailing commas to many places in output.
- Fix issues with latest
package:analyzerrelated to enums and annotations.
-
2.1.417 Dec 2021Release notes
Open source →- Require the latest
package:source_helper. - Support the latest
package:analyzer.
- Require the latest
-
2.1.313 Jul 2021 -
2.1.221 Apr 2021 -
2.1.125 Mar 2021Release notes
Open source →- Added
@Target({TargetKind.field})toCliOption. - Require
args: ^2.6.0 - Require
sdk: ^3.8.0
Release notes
Open source →- Change the name of the private
Mapused to support enums so that it does not conflict with the one generated bypackage:json_serializable.
- Added
-
2.1.025 Mar 2021Release notes
Open source →- Improve generation of null-safe code.
- Migrate implementation to null-safe.
-
2.0.115 Mar 2021 -
2.0.011 Mar 2021 -
1.3.1023 Sep 2020 -
1.3.903 Jun 2020Release notes
Open source →- Avoid
avoid_redundant_argument_valueslint in generated code fordefaultValue.
- Avoid
-
1.3.802 Jun 2020 -
1.3.717 Mar 2020Release notes
Open source →- Support
package:build_cli_annotations>=1.1.0 <1.3.0. package:analyzer^0.39.0.
- Support
-
1.3.603 Jan 2020 -
1.3.511 Oct 2019 -
1.3.421 Aug 2019 -
1.3.320 Jul 2019 -
1.3.224 Apr 2019Release notes
Open source →- Support the latest release of
package:build_config. - Removed special handling of undefined types due to changes in
package:analyzer. These types are now treated asdynamic.
- Support the latest release of
-
1.3.121 Apr 2019 -
1.3.007 Mar 2019Release notes
Open source →- Added support for the new
provideDefaultToOverridevalue onCliOptionto allow users to provide an override todefaultsToby including an optional[fieldName]DefaultOverrideparam to the generated_$populate[ClassName]Parserfunction. - Handle kebab-case enum value names correctly, including when they are used as default values.
- Handle allowed values that require escaping.
- Support classes with one, non-default constructor.
- Require Dart
>=2.2.0 <3.0.0.
- Added support for the new
-
1.2.201 Feb 2019 -
1.2.111 Dec 2018Release notes
Open source →- Generate all local variables as
finalwhere applicable. Allows consumers to enable theprefer_final_localslint.
- Generate all local variables as
-
1.2.011 Dec 2018Release notes
Open source →- Require Dart 2.0 "gold" in the target package.
- Omit
newkeyword in generated code. - Update
package:analyzerconstraint to>=0.33.0 <0.35.0.
-
1.1.027 Nov 2018 -
1.0.220 Oct 2018 -
1.0.127 Sep 2018 -
1.0.003 Aug 2018 -
0.2.525 Jul 2018Release notes
Open source →-
Require
package:source_gen^0.9.0. -
The
headerconfiguration option is no longer supported. (It's ignored.)
-
-
0.2.421 Jun 2018 -
0.2.4+123 Jul 2018 -
0.2.315 May 2018Release notes
Open source →- Require the latest
package:analyzer. - Support convert functions with optional parameters.
- Require the latest
-
0.2.221 Apr 2018Release notes
Open source →- Added support for populating
ArgResults commandif the field is not annotated. - Improved error output, including in cases where a bug may be found.
- Added support for populating
-
0.2.119 Apr 2018Release notes
Open source →- Added support for
coverttoCliOption. - Throw many more errors during build that would create invalid code at runtime.
- Added support for
-
0.2.017 Apr 2018Release notes
Open source →-
Fail unless the minimum SDK constraint on the target package is at least
2.0.0-dev.48. -
Added for support
valueHelptoCliOption.
-
-
0.1.213 Apr 2018Release notes
Open source →- Support
int,double, andnumfor options. - Improve error messages for some failures.
- Support
defaultsTofor flags. - Generate another private method
_$populate[OptionClassName]Parser. Allows usage for already existingArgParserinstances, such as withpackage:argsCommandRunner.
- Support
-
0.1.105 Apr 2018Release notes
Open source →- Add setup instructions to
README.md. - Use the logger built into
pkg:build. - Don't generate CLI entries for unassignable fields.
- Support latest
pkg:source_gen. - Properly escape
Stringliterals.
- Add setup instructions to
-
0.1.1+106 Apr 2018 -
0.1.029 Mar 2018