The CLI runner needs to be able to accept options and parameters from the command line, but also to provide loading from a configuration file (designated by a CLI option), or a default configuration file, or an in-code default set.
The SPF13 Viper is convenient for this, and widely used