NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #36 most downloaded on crates.io
A simple to use, efficient, and full-featured Command Line Argument Parser
Last release 23 days ago
14 Sep 2026
Release timing varies
gaps range from 8 days to 3 months
Nearly every release is documented
notes for 56 of the last 60 stable releases
92 versions withdrawn
withdrawn after publishing
12 years old
462 releases · first in 2015
(derive) Add #[command(defer = <bool>)] attribute to opt-in to lazy initialisation of subcommands
#[command(defer = <bool>)] attribute to opt-in to lazy initialisation of subcommands#[command(defer = <bool>)] attribute to opt-in to lazy initialisation of subcommandsAdd Command::get_overridden_usage
One column per quarter.
Command::get_overridden_usage(help) Correctly mark which value_names are optional with num_args
value_names are optional with num_args[4.6.4] - 2026-07-21 Internal Update to syn v3
(derive) Allow "literal".function() as attribute values
"literal".function() as attribute values*(help)* Say alias when there is only one
alias when there is only one*(derive)* Ensure rebuilds happen when an read env variable is changed
### Compatibility - Update MSRV to 1.85
### Internal - Update dependencies
*(help)* Quote empty default values, possible values
Command::ignore_errors no longer masks help/version on subcommands
Command::ignore_errors no longer masks help/version on subcommandsNothing published for this version
Regression from 4.5.55 where having an argument with .value_terminator("--") caused problems with an argument with .last(true)
.value_terminator("--") caused problems with an argument with .last(true)On conflict error, don't show conflicting arguments in the usage
Fix inconsistency in precedence between positionals with a value_terminator("--") and escapes (--) where ./foo -- bar means the first arg is empty, ra
value_terminator("--") and escapes (--) where ./foo -- bar means the first arg is empty, rather than escaping future args*(help)* Move [default] to its own paragraph when PossibleValue::help is present in --help
[default] to its own paragraph when PossibleValue::help is present in --helpAdd default_values_if, default_values_ifs
default_values_if, default_values_ifsDon't panic when args_conflicts_with_subcommands conflicts with an ArgGroup
args_conflicts_with_subcommands conflicts with an ArgGroup*(help)* Correctly calculate padding for short flags that take a value
ArgAction::CountAccept Cow where String and &str are accepted
Cow where String and &str are accepted*(help)* Correctly wrap when ANSI escape codes are present
Add a new CLI Concepts document as another way of framing clap
typed_derive cookbook entryAdded impl FromArgMatches for ()
impl FromArgMatches for ()impl Args for ()impl Subcommand for ()impl FromArgMatches for Infallibleimpl Subcommand for Infallibleclap### Features - Expose StyledStr::push_str
StyledStr::push_str*(unstable-v5)* ValueEnum variants now use the full doc comment, not summary, for PossibleValue::help
ValueEnum variants now use the full doc comment, not summary, for PossibleValue::help### Features - Add Command::mut_subcommands
Command::mut_subcommands*(help)* In long help, list Possible Values before defaults, rather than after, for a more consistent look
Include subcommand visible long aliases in --help
--helpAdd Styles::context and Styles::context_value to customize the styling of [default: value] like notes in the --help
Styles::context and Styles::context_value to customize the styling of [default: value] like notes in the --helpSupport quoted ids in arg!() macro (e.g. arg!("check-config": ...))
arg!() macro (e.g. arg!("check-config": ...))*(help)* Show short flag aliases before long
*(help)* When showing aliases, include leading -- or -
-- or -Added ArgMatches::try_clear_id()
ArgMatches::try_clear_id()*(help)* Revert 4.5.35's "Don't leave space for shorts if there are none" for now
*(help)* Align positionals and flags when put in the same help_heading
help_heading*(help)* Don't add extra blank lines with flatten_help(true) and subcommands without arguments
flatten_help(true) and subcommands without arguments*(error)* When showing the usage of a suggestion for an unknown argument, don't show the group
*(cookbook)* Switch from humantime to jiff
Error::removehumantime to jiffpulldown-cmarkAdd ValueParserFactory for Saturating
ValueParserFactory for Saturating<T>*(assert)* Allow num_args(0..=1) to be used with SetTrue
num_args(0..=1) to be used with SetTruetakes_values assertionsChange ArgMatches::args_present so not-present flags are considered not-present (matching the documentation)
ArgMatches::args_present so not-present flags are considered not-present (matching the documentation)*(derive)* Unstable support for full markdown syntax for doc comments, enabled with unstable-markdown
unstable-markdownIterate on tutorials and reference based on feedback
*(error)* Reduce binary size with the suggestions feature
suggestions feature### Fixes - *(help)* Reduce binary size
*(parser)* Correctly handle defaults with ignore_errors(true) and when a suggestion is provided for an unknown argument
ignore_errors(true) and when a suggestion is provided for an unknown argument*(parser)* When check allow_negative_numbers, allow E again
allow_negative_numbers, allow E again*(assert)* Catch bugs with arguments requiring themself
*(parser)* Ensure defaults are filled in on error with ignore_errors(true)
ignore_errors(true)### Features - *(unstable)* Add CommandExt
CommandExt### Internal - Update dependencies
*(builder)* Expose Arg::get_display_order and Command::get_display_order
Arg::get_display_order and Command::get_display_order*(help)* Style required argument groups
*(derive)* Improve error messages when derive feature is missing
derive feature is missing*(unstable-ext)* Arg::remove changed return types
Arg::remove changed return typesArg::remove return the removed item*(unstable-ext)* Added Arg::add for attaching arbitrary state, like completion hints, to Arg without Arg knowing about it
Arg::add for attaching arbitrary state, like completion hints, to Arg without Arg knowing about it*(derive)* Improve error message when #[flatten]ing an optional #[group(skip)]
#[flatten]ing an optional #[group(skip)]Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →