Go MIT

cli

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

U

urfave

Dernière activité 29 sept. 2026
urfave/cli

24,3 k

étoiles

1,8 k

forks

36

issues ouvertes

clicommand-linegogolang-libraryjsontomlyaml

Ce README est souvent en anglais.

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.

Build tags

You can use the following build tags:

urfave_cli_no_template

When set, the default help and fish completion are rendered without using text/template, which makes the Go linker disable dead code elimination (see Binary Size). The output is the same, but help templates can not be customized:

  • RootCommandHelpTemplate, CommandHelpTemplate, SubcommandHelpTemplate and FishCompletionTemplate are constants;
  • if the default help printer is used with a custom template (such as CustomRootCommandHelpTemplate or CustomHelpTemplate), it panics;
  • custom template functions other than wrap and wrapAt are ignored.

Replacing cli.HelpPrinter works as usual, except it receives "root", "command" or "subcommand" as templ instead of the default template text (a custom template is passed as is).

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.

Projets similaires

A Commander for modern Go CLI interactions

Goclicli-appcobra
Sspf13
44,7 k étoiles4,5 k

GitHub’s official command line tool

Gocligitgithub-api-v4
Ccli
46,4 k étoiles9,1 k

CLI - A package for building command line app with go

Go
Mmkideal
723 étoiles42