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 24 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
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Updates to Rust 2018 edition and bumps the MSRV to Rust 1.46
prevents `panic`: swallows broken pipe errors on error output
panic: swallows broken pipe errors on error output (7a729bc4)Suppress deprecation warnings when using crate_* macros.
crate_* macros.Fixed links to 2.x examples. Now they point to the right place.
2.x examples. Now they point to the right place.Windows: Prevent some panics when parsing invalid Unicode on Windows (922c645, closes #1905)
Stephen Oats is now a sponsor \o/
--help and -h flags (AppSettings::DisableAutoHelp)ExactSizeIterator implementation (356c69e5)clap requires rustc 1.31.0 or greater.As of this release, clap requires rustc 1.21.0 or greater.
clap requires rustc 1.21.0 or greater.ExactSizeIterator implementation (356c69e5)Fish Completions: fixes a bug that only allowed a single completion in in Fish Shell (e8774a8, closes #1212)
README.md (c8e685d7)AllowMissingPositional: improves the ability of AllowMissingPositional to allow 'skipping' to the last positional arg with '--'
Arg Indices: adds the ability to query argument value indices
Arg that allows implying all of Arg::last Arg::allow_hyphen_values and Arg::multiple(true) (66a78f29)wrap_help feature is a thing (fc7ab227)YAML: Adds a missing conversion from Arg::last when instantiating from a YAML file (aab77c81a5, closes #1160)
Arg::last when instantiating from a YAML file (aab77c81a5, closes #1160)Arg::possible_values was used (872f02ae)ansi_term on Windows since its not used (b57ee946, closes #1155)[values: foo bar baz] array to [possible values: foo bar baz] for consistency with the API (414707e4e97, closes #1160)Overrides Self: fixes a bug where options with multiple values couldn't ever have multiple values
Overrides: clap now supports arguments which override with themselves (6c7a0010, closes #976)
-- (73993fe, closes #1161)Escape possible values for options
Nothing published for this version
Arg: adds Arg::hide_env_values(bool) which allows one to hide any current env values and display only the key in help messages
ignore PropagateGlobalValuesDown deprecation warning (f61ce3f5, closes #1086)
The minimum required Rust is now 1.20. This was done to start using bitflags 1.0 and having >1.0 deps is a very good thing!
bitflags to 1.0Adds term_size as an optional dependency (with feature wrap_help) to fix compile bug
term_size as an optional dependency (with feature wrap_help) to fix compile bugThis release also contains a very minor breaking change to fix a bug
** This release raises the minimum required version of Rust to 1.18 **
** This release also contains a very minor breaking change to fix a bug **
The only CLIs affected will be those using unrestrained multiple values and subcommands where the subcommand name can coincide with one of the multiple values.
See the commit 0c223f54 for full details.
if all subcommands are hidden, the subcommands section of the help message is no longer displayed (4ae7b046, closes #1046)
fixes using require_equals(true) and min_values(0) together (10ae208f, closes #1044)
who's -> whose (53c1ffe8)Minimum version of Rust is now v1.13.0 (Stable)
impl Default for Values + OsValues for any lifetime.
use textwrap crate for wrapping help texts
who's -> whose (53c1ffe8)adds a debug assertion to ensure all args added to groups actually exist (14f6b8f3, closes #917)
Nothing published for this version
fixes a bug where args with last(true) and required(true) set were not being printed in the usage string (3ac533fe, closes #944)
Nothing published for this version
PowerShell Completions: fixes a bug where powershells completions cant be used if no subcommands are defined (a8bce558, closes #931)
fixes a missing newline character in the autogenerated help and version messages in some instances
allows distinguishing between short and long version messages (-V/short or --version/long)
App::long_aboutApp::long_versionApp::print_long_helpApp::write_long_helpApp::print_long_versionApp::write_long_versionArg::long_helpCustom Usage Strings: fixes the usage string regression when using help templates
usage: fixes a big regression with custom usage strings
App::name: adds the ability to change the name of the App instance after creation (d49e8292, closes #908)
yaml: adds support for loading author info from yaml
add fish subcommand help support
ArgRequiredElseHelp: fixes the precedence of this error to prioritize over other error messages (74b751ff, closes #895)
doesn't run arg_post_processing on multiple values anymore
arg_post_processing on multiple values anymore (ec516182)VecMap to Vec for matched values of Args (22bf137a)App::args which is forced to clone (8da0303b)AppSettings::SubcommandsNegateReqs and ArgsNegateSubcommands are used, a new more accurate double line usage string is shown (50f02300, closes #871)-- syntax and can be accessed early (6a7aea90, closes #888)default_value_os and default_value_if[s]_os (0f2a3782, closes #849)App::help_message and App::version_message which allows one to override the auto-generated help/version flag associated help (389c413, closes #889)clap_app!: fixes a critical bug of a missing fragment specifier when using !property style tags.
!property style tags. (5635c1f94)Completions: fixes a bug that tried to propagate global args multiple times when generating multiple completion scripts (5e9b9cf4, closes #846)
Macros: adds a warning about changing values in Cargo.toml not triggering a rebuild automatically (112aea3e, closes #838)
fixes a critical bug where subcommand settings were being propagated too far (74648c94, closes #832)
allow final word to be wrapped in wrap_help (564c5f0f, closes #828)
[ARGS] in the usage string (c2978afc, closes #769)help subcommand (a10fc859)$ prog [optional] <required> style CLIs where the second positional argument is required, but the first is optional (1110fdc7, closes #636)Cargo.toml description field to fill in the App::about method at compile time (4d9a82db, closes #778)Cargo.toml name field to fill in the App::new method at compile time (4d9a82db, closes #778)crate_version!, crate_name!, crate_description!, and crate_authors! into a single macro call to build a default App instance from the Cargo.toml fields (4d9a82db, closes #778)no_cargo feature to disable Cargo-env-var-dependent macros for those not using cargo to build their crates (#786) (6fdd2f9d)Arg::allow_hyphen_values to fail parsing (26c670ca)--("some-arg-name") syntax for defining long arg names when using clap_app! macro (f41ec962)("some app name") syntax for defining app names when using clap_app! macro (9895b671, closes #759)Nothing published for this version
fixes a bug where calling the help of a subcommand wasn't ignoring required args of parent commands (a0ee4993, closes #789)
README.md: adds guidance on when to use ~ in version pinning, and clarifies breaking change policy (591eaefc, closes #765)
Help Messages: fixes help message alignment when specific settings are used on options (cd94b318, closes #760)
allows specifying AllowLeadingHyphen style values, but only for specific args vice command wide (c0d70feb, closes #742)
Completions: adds completion support for PowerShell. (cff82c88, closes #729)
Your coding agent can read these notes before it upgrades. Set up the MCP server →