awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
remkop avatar

remkop/picocli

0
View on GitHub↗
5,387 stars·467 forks·Java·Apache-2.0·4 viewspicocli.info↗

Picocli

picocli is a command line interface development framework and argument parser for JVM-based applications. It maps command line options and positional parameters to strongly typed Java methods and fields using a declarative, annotation-based model.

The framework provides specific support for native image compilation, producing the reflection and resource configuration files necessary to build standalone binaries with reduced startup overhead. It further distinguishes itself with a dedicated system for generating shell autocompletion scripts and an ANSI terminal stylizer for applying colors and styles to output.

The project covers a broad range of terminal application capabilities, including hierarchical command dispatch for nested subcommands, automated generation of usage help and man pages, and interactive shell implementation with user prompts. It also includes infrastructure for dependency injection through custom factories, plugin-based type conversion, and the processing of external argument files.

Features

  • Command Line Argument Parsers - Implements a powerful parser that converts raw shell input into structured Java objects based on defined requirements.
  • Command Line Argument Parsing - Converts raw terminal input into strongly typed Java objects using named options and positional parameters.
  • Command-Line Interface Development - Provides a framework for building terminal applications that map arguments and options to strongly typed Java data.
  • Nested Command Structures - Creates hierarchical command structures that allow users to navigate complex toolsets through sub-levels.
  • Command Hierarchies - Executes nested command hierarchies based on user input using aliases and lazy instantiation.
  • AOT Metadata Generation - Produces the reflection and resource configuration files necessary to build standalone binaries with reduced startup overhead.
  • Annotation-Based Model Mapping - Implements a declarative model that maps command line options and parameters to strongly typed Java fields using annotations.
  • Hierarchical Command Dispatch - Supports hierarchical command dispatch for complex toolsets with nested subcommands.
  • CLI Command Mapping - Maps command line arguments and options directly to specific methods and fields for automated execution.
  • Reflection-Based Population - Uses reflection to populate typed fields in command objects from raw string arguments during the parsing phase.
  • Argument Grouping - Groups related options to enforce mutual exclusivity or require that certain parameters appear together.
  • CLI Type Converters - Transforms command line strings into complex data types using built-in converters or custom implementation classes.
  • Type Conversion Registries - Implements a registry of interchangeable converter classes to transform command line strings into complex Java types.
  • Native Binary Optimizations - Offers specific support for GraalVM native image compilation to create fast-starting standalone binaries.
  • CLI Documentation Generation - Automatically produces formatted usage help, man pages, and technical documentation from command definitions.
  • Recursive Argument File Parsing - Supports reading options from external files to bypass operating system command line length limits.
  • External Argument File Processing - Reads input from external files to bypass operating system limits on command line length.
  • Help Generators - Produces formatted help messages with synopses and option lists that adapt to terminal width.
  • Interactive CLI Prompts - Provides interactive CLI prompts for collecting user input, including secure fields for passwords.
  • Interactive Shells - Implements persistent interactive shell sessions combining command parsing with real-time tokenization.
  • Man Page Generation - Automatically generates Unix man pages and other documentation formats from CLI definitions.
  • Native AOT Compilation - Enables compilation into standalone binaries to eliminate runtime startup overhead and increase speed.
  • Shell Autocompletion Scripts - Generates shell autocompletion scripts to provide interactive suggestions for options and subcommands.
  • Shell Completion Generators - Generates context-sensitive shell autocompletion scripts for options and subcommands across various terminal shells.
  • Native Compilation Metadata - Produces reflection and resource configuration files necessary for ahead-of-time native binary compilation.
  • Native Image Compatibility Tools - Builds the command model at compile time to ensure full compatibility with native image compilers.
  • Executable Interface Frameworks - Enables the creation of command line tools that operate either within or independently of a runtime environment.
  • CLI - Restricts options by defining mutual exclusivity or specifying exact counts and ranges for parameters.
  • Terminal Color Formatting - Provides a dedicated ANSI terminal stylizer for applying colors and styles to text output.
  • Terminal Styling - Applies ANSI colors and styles to terminal output using markup codes for visual emphasis.
  • Java CLI Frameworks - Modern framework for building user-friendly CLI apps.
  • Scripting Tools - Framework for building feature-rich command-line interfaces.

Star history

Star history chart for remkop/picocliStar history chart for remkop/picocli

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Picocli

Similar open-source projects, ranked by how many features they share with Picocli.
  • fastapi/typerfastapi avatar

    fastapi/typer

    19,632View on GitHub↗

    This project is a Python framework for building command-line interfaces by converting standard functions into executable programs. It uses type hints to automatically infer and generate argument parsers, validation logic, and help documentation, allowing developers to define complex terminal applications through simple function signatures. The framework distinguishes itself through a decorator-driven registration system that enables the construction of hierarchical command trees. It supports dependency injection to manage shared state and runtime configuration across subcommands, and it utili

    Pythoncliclickpython
    View on GitHub↗19,632
  • cliutils/cli11CLIUtils avatar

    CLIUtils/CLI11

    4,322View on GitHub↗

    CLI11 is a header-only C++ library for parsing command line arguments and managing configuration files. It maps shell input to typed variables and supports the creation of complex command hierarchies. The library is distinguished by its support for nested subcommands with infinite depth and prefix matching. It integrates configuration management by allowing application settings to be loaded from TOML or INI files, with the ability to fall back to environment variables. The project provides a comprehensive set of tools for argument parsing, including flags and positional arguments, alongside

    C++clicli-parsercpp11
    View on GitHub↗4,322
  • commandlineparser/commandlinecommandlineparser avatar

    commandlineparser/commandline

    4,817View on GitHub↗

    This library is a .NET command line parser for C# and F# that implements POSIX getopt conventions to map shell arguments into strongly typed objects. It provides a framework for building console applications that process Unix-style flags and options. The project features a routing system that directs program execution based on action-oriented verbs, supporting sub-commands and default actions. It includes an automatic help generator that produces localized usage instructions and formatted help screens based on the defined command options. The toolset covers argument parsing with strongly typ

    C#command-linedotnetdotnet-core
    View on GitHub↗4,817
  • clap-rs/clapclap-rs avatar

    clap-rs/clap

    16,528View on GitHub↗

    Clap is a command-line argument parser for Rust that enables developers to define complex interfaces through strongly-typed data structures. It functions as a comprehensive framework for building terminal applications, automating the transformation of raw string inputs into validated, type-safe code representations while simultaneously generating help documentation and usage statements. The library distinguishes itself by offering both a declarative, attribute-based approach and a fluent builder-pattern API, allowing for flexible interface construction. It includes a sophisticated validation

    Rustargument-parserargument-parsingcommand-line
    View on GitHub↗16,528
See all 30 alternatives to Picocli→

Frequently asked questions

What does remkop/picocli do?

picocli is a command line interface development framework and argument parser for JVM-based applications. It maps command line options and positional parameters to strongly typed Java methods and fields using a declarative, annotation-based model.

What are the main features of remkop/picocli?

The main features of remkop/picocli are: Command Line Argument Parsers, Command Line Argument Parsing, Command-Line Interface Development, Nested Command Structures, Command Hierarchies, AOT Metadata Generation, Annotation-Based Model Mapping, Hierarchical Command Dispatch.

What are some open-source alternatives to remkop/picocli?

Open-source alternatives to remkop/picocli include: fastapi/typer — This project is a Python framework for building command-line interfaces by converting standard functions into… cliutils/cli11 — CLI11 is a header-only C++ library for parsing command line arguments and managing configuration files. It maps shell… commandlineparser/commandline — This library is a .NET command line parser for C# and F# that implements POSIX getopt conventions to map shell… clap-rs/clap — Clap is a command-line argument parser for Rust that enables developers to define complex interfaces through… urfave/cli — This is a framework for building structured terminal applications in Go. It provides the core components necessary to… spectreconsole/spectre.console — Spectre.Console is a .NET framework designed for building structured, feature-rich command-line applications. It…