I would recommend oclif if you're using node
It has pretty much everything you're looking for. Feel free to ask me any question. I maintained the project for several years