urfave

    urfave/cli

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

    cli
    command-line
    go
    golang-library
    json
    toml
    yaml
    Go
    MIT
    23.6K stars
    1.8K forks
    23.6K watching
    Updated 2/27/2026
    View on GitHub
    Backblaze Advertisement

    Loading star history...

    Health Score

    75

    Weekly Growth

    +0

    +0.0% this week

    Contributors

    1

    Total contributors

    Open Issues

    57

    Generated Insights

    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