Cobra is a tool for creating CLI tools in Go.

Framework

Cobra creates CLI tools that are based on commands, args, and flags. The pattern for creating tools using Cobra is generally: APPNAME COMMAND ARG --FLAG

For example, if we’re using Hugo, we might see:

hugo server --port=1313

Where ‘server’ is a command and ‘port’ is a flag. As another example, we might clone a URL with git via:

git clone URL --bare

In this instance, ‘clone’ is a command, ‘URL’ is an arg (we’d supply a real url here), and ‘—bare’ is a flag.

Usage

Cobra provides the cobra-cli program to help bootstrap applications to help develop Cobra applications. To generate the scaffolding for a new app using Cobra, we can run:

cobra-cli init [app]

And we can provide flags to this as well, e.g.

cobra-cli init [app] --author "Eric Ekholm eric.ekholm@gmail.com" --license mit

For more info on how to work with the cobra-cli tool, see its README