Skip to content
Remko Popma edited this page May 11, 2018 · 36 revisions

3 Reasons to Use picocli

designed to be included as source

...because your users don't want the extra jar file just to parse command line options.

easily tailored usage help with Ansi colors and styles

...because the usage help is the face of your command line interface.

autocomplete for your command line application

...so users of your application can just press <TAB> to see the available options and subcommands.

20+ more reasons to use picocli

  • runs on Java 5 or higher
  • annotation API - almost no code
  • programmatic API - for dynamic configuration
  • git-style subcommands
  • nested sub-subcommands
  • strongly typed option parameters
  • strongly typed positional parameters
  • many, many built-in types
  • customizable type conversion
  • supports multi-value options
  • supports Maps for options and positional parameters (like -Dkey=value Java system properties)
  • intuitive model for how many arguments a field consumes
  • allows any option prefix
  • fluent API
  • convenience methods for Runnable and Callable commands
  • supports both mixins and subclassing for reuse
  • built-in support for standard --help and --version options
  • built-in help subcommand
  • uses STDERR for error messages, STDOUT for requested help by default
  • parser tracing to facilitate troubleshooting
  • POSIX-style clustered short options
  • quality documentation
  • built-in Groovy script support