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 16 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
*(error)* When defining a custom help flag, be sure to suggest it like we do the built-in one
### Fixes - Reduce extra flushes
Clean up error message when too few arguments for num_args
One column per quarter.
num_argsNothing published for this version
Allow exclusive to override required_unless_present, required_unless_present_any, required_unless_present_all
exclusive to override required_unless_present, required_unless_present_any, required_unless_present_all*(derive)* Allow non-literal #[arg(id)] attributes again
#[arg(id)] attributes again### Internal - *(derive)* Update heck
heck### Fixes - *(macros)* Silence a warning
*(error)* Include suggestion to add -- even if there is a "did you mean" so long as last or trailing_var_arg is used
-- even if there is a "did you mean" so long as last or trailing_var_arg is used### Compatibility - Update MSRV to 1.74
*(error)* When lacking usage feature, ensure the list of required arguments is unique
usage feature, ensure the list of required arguments is uniqueFix panic! when mixing args_conflicts_with_subcommands with ArgGroup (which is implicit with derive) introduced in 4.4.15
panic! when mixing args_conflicts_with_subcommands with ArgGroup (which is implicit with derive) introduced in 4.4.15Ensure invalid escape sequences in user-defined strings are correctly stripped when terminal doesn't support color
Improve error for args_conflicts_with_subcommands
args_conflicts_with_subcommandsargs_conflicts_with_subcommands when using subcommand short and long flagsFix find cookbook entry to allow repeats of flags/options
find cookbook entry to allow repeats of flags/optionsnum_args(0) on options which allows making them emulate being a flag for position-tracking flagsFix link to structopt migration guide
Only ask TypedValueParser for possible values if needed
TypedValueParser for possible values if needed### Features - Add Command::mut_group
Command::mut_groupCross link derive's attribute reference to derive tutorial
*(help)* Show correct Command::about under flattened headings
Command::about under flattened headingshide when flattening subcommandsAdd Command::flatten_help to allow git stash -h like help for subcommands
Command::flatten_help to allow git stash -h like help for subcommands### Performance - Reduced code size
### Internal - Upgrade anstream
anstream*(parser)* When inferring subcommand name or long_flag, allow ambiguous-looking matches that unambiguously map back to the same command
name or long_flag, allow ambiguous-looking matches that unambiguously map back to the same commandlong_flag, don't panic### Internal - Update terminal_size to 0.3
terminal_size to 0.3*(derive)* Clarify use of attributes within the tutorial
Improve build times by removing once_cell dependency
once_cell dependency### Features - Stabilize Command::styles
Command::styles### compatibility - update msrv to 1.70.0
Ensure column padding is preserved in --help with custom templates
--help with custom templatesFixed UnknownArgumentValueParser to not error on flag's absence
UnknownArgumentValueParser to not error on flag's absenceAdd UnknownArgumentValueParser for injecting errors for improving the experience with errors
UnknownArgumentValueParser for injecting errors for improving the experience with errorsExpose TryMapValueParser so the type can be named
TryMapValueParser so the type can be namedCommand::mut_args for modifying all arguments en masse
Command::mut_args for modifying all arguments en masse*(parse)* Respect value_terminator even in the presence of later multiple-value positional arguments
value_terminator even in the presence of later multiple-value positional arguments*(parse)* Suggest -- in fewer places where it won't work
-- in fewer places where it won't work*(help)* Address a regression in wrapping PossibleValue descriptions in --help
PossibleValue descriptions in --helpDon't assert when stateful value parsers fail on defaults (e.g. checking if a path exists)
*(unstable-styles)* Re-export anstyle
anstyleArgAction::HelpShort and ArgAction::HelpLong for explicitly specifying which style of help to display
ArgAction::HelpShort and ArgAction::HelpLong for explicitly specifying which style of help to display[OPTIONS] in usage if a help or version ArgAction is usedNothing published for this version
*(derive)* Don't error on enum variant field attributes
*(derive)* Support fields wrapped in num::Wrapping, Box, or Arc
num::Wrapping, Box, or ArcBox<str>, Box<OsStr>, and Box<Path>Drop a dependency, reducing binary size by 1.3 KiB
Command::ignore_errors no longer masks help/version
Command::ignore_errors no longer masks help/versionError on ambiguity with infer_long_arg, rather than arbitrarily picking one, matching the documentation and subcommand's behavior
infer_long_arg, rather than arbitrarily picking one, matching the documentation and subcommand's behaviorFurther clarify magic behavior in derive tutorial
### Documentation - Suggest clio
clioColorChoice::possible_values is added to simplify things for builder users
ColorChoice::possible_values is added to simplify things for builder usersColorChoice::to_possible_value no longer includes descriptions, encouraging shorter help where possible### Features - Add Error::exit_code
Error::exit_codeCommand::defer for delayed initialization of subcommands to reduce startup times of large applications like deno
Command::defer for delayed initialization of subcommands to reduce startup times of large applications like deno*(derive)* Don't produce unused_equalifications warnings when someone brings a clap type into scope
unused_equalifications warnings when someone brings a clap type into scope*(derive)* Reduce the amount of generated code
*(assert)* Allow multiple, value-terminated, positional arguments
last assertionvalue_terminator has higher precedence than allow_hyphen_values--helpCorrectly track remaining length for iterators provided by ArgMatches
ArgMatchesimpl Eq for clap_builder::AnyValueId
impl Eq<std::any::TypeId> for clap_builder::util::AnyValueIdImprove panic when a group requires a non-existent ID
Corrected docs for Command::style
Command::styleCommand::styles for theming help/errors (behind unstable-styles)
Command::styles for theming help/errors (behind unstable-styles)### Internal - Update dependencies
Your coding agent can read these notes before it upgrades. Set up the MCP server →