The CLI starter kit. A small, experimental library for batteries-included Cobra applications.
--version: set it to the build info, or a version of your choiceman command to generate manpages using
mango1completion command to generate shell completionsusage output (help is not shown after a user error)To use it, invoke fang.Execute passing your root *cobra.Command:
package main
import (
"context"
"os"
"github.com/charmbracelet/fang"
"github.com/spf13/cobra"
)
func main() {
cmd := &cobra.Command{
Use: "example",
Short: "A simple example program!",
}
if err := fang.Execute(context.Background(), cmd); err != nil {
os.Exit(1)
}
}
That's all there is to it!
See contributing.
We’d love to hear your thoughts on this project. Feel free to drop us a note!
Part of Charm.
Charm热爱开源 • Charm loves open source
Default cobra man pages generates one man page for each command. This is generally fine for programs with a lot of sub commands, like git, but its an overkill for smaller programs. Mango also uses roff directly instead of converting from markdown, so it should render better looking man pages. ↩
(top 24 of 61)
3,104 followers · starred Jun 2025
2,587 followers · starred Jun 2025
2,790 followers · starred Jun 2025
731 followers · starred Jun 2025
The CLI starter kit. A small, experimental library for batteries-included Cobra applications.
--version: set it to the build info, or a version of your choiceman command to generate manpages using
mango1completion command to generate shell completionsusage output (help is not shown after a user error)To use it, invoke fang.Execute passing your root *cobra.Command:
package main
import (
"context"
"os"
"github.com/charmbracelet/fang"
"github.com/spf13/cobra"
)
func main() {
cmd := &cobra.Command{
Use: "example",
Short: "A simple example program!",
}
if err := fang.Execute(context.Background(), cmd); err != nil {
os.Exit(1)
}
}
That's all there is to it!
See contributing.
We’d love to hear your thoughts on this project. Feel free to drop us a note!
Part of Charm.
Charm热爱开源 • Charm loves open source
Default cobra man pages generates one man page for each command. This is generally fine for programs with a lot of sub commands, like git, but its an overkill for smaller programs. Mango also uses roff directly instead of converting from markdown, so it should render better looking man pages. ↩
(top 24 of 61)
3,104 followers · starred Jun 2025
2,587 followers · starred Jun 2025
2,790 followers · starred Jun 2025
731 followers · starred Jun 2025