2020-12-08 cmdparse 3.0.7 released!


  • Behave well when interrupted via Control+C and when used in a pipe that gets closed (thanks to postmodern)

2020-05-02 cmdparse 3.0.6 released!


  • Fix OptParse integration with regards to error handling (thanks to Damien Robert)

2020-01-31 cmdparse 3.0.5 released!


  • Fix warning on Ruby 2.7 (thanks to Damien Robert)

2018-12-22 cmdparse 3.0.4 released!


  • Fix bug in help output generation when a word is longer than the available space - thanks to Damien Robert for the bug report and pull request

2017-01-13 cmdparse 3.0.3 released!


  • Fix bug introduced during refactoring that affected help output (continuation lines were missing)
    • thanks to Andrew Talbot for reporting the bug

2016-12-28 cmdparse 3.0.2 released!


  • Raise an error if too many arguments are provided for a command
  • Better error message if not enough arguments are provided for a command

2015-03-14 cmdparse 3.0.1 released!


  • Commands in usage line are now shown sorted
  • Long lines with embedded new lines are now correctly formatted
  • The built-in version command can now be told to not add the -v and --version switches

2015-03-12 cmdparse 3.0.0 released!

This version is not compatible with previous versions of cmdparse and requires at least Ruby 2.0. However, updating code to use the new API is straightforward and the new version offers more features!


  • License changed to MIT!
  • Top level options and global options are now separated
  • Easier on the fly definition of commands
  • Better help output (automatic formatting of long lines – even for option descriptions –, automatic argument name detection, …)
  • Keyword arguments are now used for better code readability
  • The CmdParse::VERSION constant is now a simple version string instead of an array
  • Better API documentation and expanded tutorial
  • Better website design and integration of the API documentation into the website

2014-04-05 cmdparse 2.0.6 released!

There were no codewise changes but the used infrastructure and tools have been updated to newer versions. Also the license information has been added to the gem specification and the tests are now included in the distribution.

2012-06-09 cmdparse 2.0.5 released!


  • Fixed backwards incompatible change

2012-06-07 cmdparse 2.0.4 released!


  • Only some minor changes regarding the help output for commands which is nicer now.

2006-06-17 cmdparse 2.0.2 released!


  • Included two patches from Assaph Mehr:
    • partial command matching can now be used (see the tutorial page)
    • now a banner for the help and version commands can be specified

2006-04-05 cmdparse 2.0.1 released!


  • Just a bug fix release for those using cmdparse with Rubygems. By issuing the command require_gem 'cmdparse' the cmdparse library gets automagically loaded.
  • Minor documentation updates

2005-08-16 cmdparse 2.0.0 released!

This version is not compatible to previous versions of cmdparse as there have been major changes in the API. However, updating your code to use the new API is very easy!


  • Commands can now have subcommands which can have subcommands which can have subcommands…
  • No need to implement a whole new class for simple commands anymore
  • Default option parser library is optparse, however, any option parser library can be used after writing a small wrapper

2005-07-05 cmdparse 1.0.5 released!


  • added possibility to parse global options, command and local options separately

2005-06-16 cmdparse 1.0.4 released!


  • fix for older ruby versions
  • fixed bug where exception was not caught

2005-06-09 cmdparse 1.0.3 released!


  • added optional graceful exception handling

2005-04-21 cmdparse 1.0.2 released!


  • splitted parsing of the arguments and executing the command into two methods

2005-04-13 cmdparse 1.0.1 released!


  • Improved HelpCommand: the global options -h and –help take an optional command name now
  • Possibility to define a default command which is used when no command was specified
  • A NoCommandGivenError is thrown when no command on the CLI and no default command was specified