What is picocli?
Library and framework for easily building professional command line applications on the JVM (Java, Groovy, Kotlin, Scala, etc). Usage help with ANSI colors. Autocomplete. Nested subcommands. Annotations and programmatic API. Easy to include as source to avoid adding dependencies. More than just a command line parser.
picocli is a tool in the Shell Utilities category of a tech stack.
picocli is an open source tool with 1.7K GitHub stars and 164 GitHub forks. Here’s a link to picocli's open source repository on GitHub
Why developers like picocli?
Here’s a list of reasons why companies and developers use picocli
- Java 5-13ea
- annotation API
- programmatic API
- GraalVM integration - for extremely fast startup
- nested subcommands to any depth
- strongly typed option parameters
- strongly typed positional parameters
- many, many built-in types
- easily add custom type converters
- interactive password options
- supports Maps for options and positional parameters (like -Dkey=value Java system properties)
- no boilerplate code, just implement Runnable or Callable
- supports both mixins and subclassing for reuse
- built-in support for standard --help and --version options (zero code)
- built-in help subcommand
- uses STDERR for error messages, STDOUT for requested help by default
- allows any option prefix
- POSIX-style clustered short options
- highly configurable parser
- parser tracing to facilitate troubleshooting
- quality documentation
- built-in Groovy script support
- easily integrates with Dependency Injection containers
- easily integrates with JLine 2 and JLine 3 to create interactive shell applications
picocli Alternatives & Comparisons
What are some alternatives to picocli?
See all alternatives
Oh My ZSH
A delightful, open source, community-driven framework for managing your Zsh configuration. It comes bundled with thousands of helpful functions, helpers, plugins, themes.
It enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.
It is an Apache™ Subversion (SVN)® client, implemented as a Windows shell extension. It's intuitive and easy to use, since it doesn't require the Subversion command line client to run. And it is free to use, even in a commercial environment.
Use the tools you know and the languages you love. Compile everything to WebAssembly. Run it on any OS or embed it into other languages.
It installs programs to your home directory by default. So you don’t need admin permissions to install programs, and you won’t see UAC popups every time you need to add or remove a program.