func main() {
	app := gcli.NewApp(func(app *gcli.App) {
		app.Version = "3.0.0"
		app.Desc = "this is my cli application"
		app.On(gcli.EvtAppInit, func(data ...interface{}) bool {
			return false
		})
		app.Logo.Text = `   ________    _______
  / ____/ /   /  _/   |  ____  ____
 / /   / /    /  
/ /___/ /____/  
\____/_____/___/_/  |_/ .___/ .___/
                     /_/   /_/`
	})
	var customGOpt string
	app.GOptsBinder = func(gf *gcli.Flags) {
		gf.StrVar(&customGOpt, &gcli.FlagMeta{Name: "custom", Desc: "desc message for the option"})
	}
	app.Add(cmd.GitCmd)
	app.Add(cmd.Example)
	app.Add(cmd.DaemonRun)
	app.Add(cmd.EnvInfo)
	app.Add(cmd.CliColor, cmd.EmojiDemo)
	app.Add(
		cmd.ShowDemo,
		cmd.ProgressDemo,
		cmd.SpinnerDemo,
		cmd.InteractDemo,
	)
	app.Add(builtin.GenEmojiMap)
	app.Add(builtin.GenAutoComplete())
	app.Add(&gcli.Command{
		Name:    "test",
		Aliases: []string{"ts"},
		Desc:    "this is a description <info>message</> for command {$cmd}",
		Func: func(cmd *gcli.Command, args []string) error {
			gcli.Print("hello, in the test command\n")
			return nil
		},
	})
	gcli.NewCommand("test1", "description1", func(c *gcli.Command) {
	}).WithFunc(func(c *gcli.Command, args []string) error {
		color.Green.Println("hello, command is: ", c.Name)
		return nil
	}).AttachTo(app)
	app.Run(nil)
}
local run:
go run ./_examples/cliapp
go build ./_examples/cliapp && ./cliapp

run on windows(cmd, powerShell):
go build ./_examples/cliapp && ./cliapp
package main
import (
	"github.com/gookit/color"
	"github.com/gookit/gcli/v3"
	"github.com/gookit/gcli/v3/_examples/cmd"
	"github.com/gookit/gcli/v3/builtin"
)