Cobra is a library and generation tool for creating command line interfaces. It simplifies the work needed to create a good CLI. It is written in Go and is used in quite a few well know open source projects. Docker, Kubernetes, Etcd and the GitHub CLI all use Cobra. Check out this link for a larger list of projects.
There are some great older posts on how to use Cobra available online, but I still thought it was worth creating my own.