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, andpowershell - 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-ccan be shortened to-abc) - documentation generation in
manand Markdown (supported via theurfave/cli-docsmodule) - input lookup from:
- environment variables
- plain text files
- structured file formats (supported via the
urfave/cli-altsrcmodule)
See the hosted documentation website at https://cli.urfave.org. Contents of
this website are built from the ./docs directory.
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.
See LICENSE.