urfave

    urfave/cli

    #335 this week

    A declarative, simple, fast, and fun package for building command line tools in Go

    cli
    command-line
    go
    golang-library
    json
    toml
    Go
    MIT
    24.2K stars
    1.8K forks
    24.2K GitHub watchers
    Updated 9/17/2026
    View on GitHub

    Build with Backblaze B2

    SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.

    Explore Backblaze Labs

    Loading star history...

    Use Cases & Benefits

    • Provides a declarative and fast Go package for building command line tools with support for commands, subcommands, and flexible input flags.
    • Offers zero dependencies outside the Go standard library, ensuring lightweight and efficient CLI application development.
    • Use for creating complex CLI applications with nested commands and dynamic shell completions in Go projects.
    • Use for generating documentation in man and Markdown formats to maintain clear CLI tool references.
    • Use for building CLI tools that require input configuration from environment variables, plain text, or structured files like JSON, TOML, and YAML.

    About cli

    Welcome to urfave/cli

    Go Reference Go Report Card codecov Tests status

    urfave/cli is a declarative, simple, fast, and fun package for building command line tools in Go featuring:

    • commands and subcommands with alias and prefix match support
    • flexible and permissive help system
    • dynamic shell completion for bash, zsh, fish, and powershell
    • no dependencies except Go standard library
    • input flags for simple types, slices of simple types, time, duration, and others
    • compound short flag support (-a -b -c can be shortened to -abc)
    • documentation generation in man and Markdown (supported via the urfave/cli-docs module)
    • input lookup from:
      • environment variables
      • plain text files
      • structured file formats (supported via the urfave/cli-altsrc module)

    Documentation

    See the hosted documentation website at https://cli.urfave.org. Contents of this website are built from the ./docs directory.

    Support

    Check the Q&A discussions. If you don't find answer to your question, create a new discussion.

    If you found a bug or have a feature request, create a new issue.

    Please keep in mind that this project is run by unpaid volunteers.

    License

    See LICENSE.

    Discover Repositories

    Search across tracked repositories by name or description