Go

flag — Stdlib CLI Parser

admin by @admin ADMIN
Jun 15, 2026
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
The `flag` package is the minimal-dep CLI parser shipped with Go. Sufficient for many tools; reach for `spf13/cobra` or `urfave/cli` for subcommands and richer UX.
Go
Raw
package main

import (
    "flag"
    "fmt"
)

func main() {
    var (
        port    = flag.Int("port",     8080,            "server port")
        verbose = flag.Bool("verbose", false,           "verbose logging")
        name    = flag.String("name",  "world",         "who to greet")
        config  = flag.String("config", "config.toml",  "config file path")
    )
    flag.Usage = func() {
        fmt.Fprintf(flag.CommandLine.Output(),
            "Usage: myapp [flags]\n\nFlags:\n")
        flag.PrintDefaults()
    }
    flag.Parse()

    fmt.Printf("port=%d verbose=%t name=%s config=%s\n",
        *port, *verbose, *name, *config)
    fmt.Println("positional args:", flag.Args())
}

// myapp --port 3000 --verbose --name Alice -- extra1 extra2
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.