CLIs had a bit of a renaissance in recent years with powerful tooling like Docker and Kubernetes. They are faster and more productive to use than their visual counterparts. What makes these CLIs that good? Heroku defined 12 factors for great applications and did the same for CLIs. Good help documentation and shell completion are, for example, a very important factor. Modern CLIs take these factors into account to improve the user experience. Besides great UX, a powerful library is needed and Cobra takes this spot for Go. All the popular CLIs written in Go use Cobra.
In this talk, we want to look at the 12 factors that make CLIs successful and show how to implement a great CLI in Cobra.