Command subcommand is perhaps neater than the current implementation. This is more of a spike, not sure if a new structure is more beneficial than the current design.
Main commands could be: new, list, delete, import, export.
Subcommand examples:
new key -n 100
new message
list keys
list messages
delete keys
import keys
export keys
Current setup is perhaps shorter with the added feature that you can combine importing, listing and outputting for example.