# remkop/picocli

Picocli is a modern framework for building powerful, user-friendly, GraalVM-enabled command line apps with ease. It supports colors, autocompletion, subcommands, and more.  In 1 source file so apps can include as source & avoid adding a dependency. Written in Java, usable from Groovy, Kotlin, Scala, etc.

Repository: https://github.com/remkop/picocli
Canonical: https://ross.abutalabs.com/products/picocli
Homepage: https://picocli.info
Language: Java
License: Apache-2.0
License Family: permissive
Topics: java, commandline, parser, ansi-colors, annotations, ansi, subcommands, cli, cli-framework, git, autocomplete, completion, bash-completion, options-parsing, command-line-parser, argument-parsing, command-line, graalvm, native-image, executable
Last push: 2026-08-16T07:51:55+00:00

## Health v2 (maintenance only)
Score: 67/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 98, release rhythm 8, longevity 100
- inputs: {"age_days": 3500, "days_push": 17, "days_rel": 502, "gap_med": null, "n_releases_24m": 1}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 5414, forks 480 (observed 2026-08-28T04:09:17.783511+00:00)

## What it is
Picocli is a Java framework and library for building command line applications with an annotations API and a programmatic API. It ships as a single source file, supports ANSI-colored usage help, TAB autocompletion, nested subcommands, and GraalVM native-image compilation.

## Use cases
- parse command line arguments in a java application
- build a cli tool with subcommands like git
- generate bash/zsh tab autocompletion for a command line app
- create colored usage help text for a cli
- compile a java cli to a native graalvm executable
- add option and positional parameter parsing to a jvm app
- build a command line app in kotlin or groovy

## When to choose
- you are building a command line application on the JVM in Java, Kotlin, Groovy, or Scala
- you want rich usage help, autocompletion, and subcommands with minimal boilerplate
- you want to distribute a fast-starting native executable via GraalVM
- you prefer including the library as a single source file with no external dependency

## When to avoid
- you are building GUI or web applications rather than command line tools
- you need argument parsing outside the JVM ecosystem
- you want a full application framework with dependency injection and plugin systems

## Facets
- artifact type: library
- maturity: stable
- function: parser, cli, developer-tools
- domain: developer-tools, cross-platform
- platform: jvm, cli, cross-platform
- tags: command-line-parser, annotations, subcommands, autocomplete, ansi-colors, graalvm-native-image, single-file, argument-parsing, command-line

## Member repositories
- remkop/picocli (main) score 67

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:09:17.783511+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:57:45.578107+00:00, confidence not recorded.
  - readme: https://github.com/remkop/picocli (fetched 2026-08-28T04:09:17.783511+00:00, sha e9b16811069f)
  - homepage: https://picocli.info (fetched 2026-08-29T08:52:22.964538+00:00, sha dbd2c00a2277)
  - site_page: https://picocli.info/apidocs-all/info.picocli/picocli/CommandLine.Parameters.html (fetched 2026-08-29T08:52:22.983714+00:00, sha c6dd79152d03)
  - site_page: https://picocli.info/apidocs-all/info.picocli/picocli/CommandLine.Model.ArgSpec.html (fetched 2026-08-29T08:52:22.976530+00:00, sha ec9deac3aa6b)
  - site_page: https://picocli.info/apidocs-all/info.picocli/picocli/CommandLine.Option.html (fetched 2026-08-29T08:52:22.978824+00:00, sha 0271590a54c4)
  - site_page: https://picocli.info/apidocs-all/info.picocli/picocli/CommandLine.Model.OptionSpec.html (fetched 2026-08-29T08:52:22.981303+00:00, sha 8e100bd82f6b)
- Data as of 2026-08-30T08:39:29.467469+00:00.
