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 4.2K GitHub stars and 367 GitHub forks. Here’s a link to picocli's open source repository on GitHub
Who uses picocli?
10 developers on StackShare have stated that they use picocli.
Pros of picocli
Best Java framework for Java CLI that I know
Easy to Use
ANSI colors in usage help
Command line auto-completion
GraalVM native image integration
- 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.
It allows you to browse through cheatsheets (that you may write yourself or download from maintainers) and execute commands, prompting for argument values.
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.