The `semv.commands` module should become `semv.api` and contain subcommands that can be called from python or through a thin command line interface. This would need some design on the command line interface side.