in reply to how to make a good interface?
From my pov I would consider using a configuration file instead of command line arguments. The config file would be then the only argument.
It is especially useful if you have some typical argument combinations.