Add a *plugin* class for the *command*. After all options and flags have been consumed, the first argument will be consumed and the associated plugin class will be instantiated and run.
#### **setPlugin**( pluginClass ) => *void*
Set a dedicated [Plugin](/v5/cli/plugin/#cli-plugin) class which will handle all input. This may not be used in conjuction with addPlugin and will not automatically accept a command from the arguments.
A plugin should use this method to resolve an address. If the resovled address is the zero address and *allowZero* is not true, an error is raised.
#### *plugin* . **dump**( header , info ) => *void*
Dumps the contents of *info* to the console with a *header* in a nicely formatted style. In the future, plugins may support a JSON output format which will automatically work with this method.
Flags are simple binary options (such as the `--yes`), which are true if present otherwise false.
Options require a single parameter follow them on the command line (such as `--account wallet.json`, which nhas the name `account` and the value `wallet.json`)
Arguments are all other values on the command line, and are not accessed through the **ArgParser** directly.
When a CLI is run, an **ArgParser** is used to validate the command line by using prepareOptions, which consumes all flags and options leaving only the arguments behind, which are then passed into prepareArgs.
#### *argParser* . **consumeFlag**( name ) => *boolean*
Remove the flag *name* and return true if it is present.