The CLIFramework checkout processes subcommands, checking arguments, parameter values (multiple, flag, optional, default) and a powerful zsh / bash completion generator.
Here is a screencast using the zsh completion generator (it completes the arguments and options):

There are also many popular applications using CLIFramework and GetOptionKit. e.g. PHPBrew , LazyRecord
source share