common-cli: CLI framework