Fork me on GitHub

Welcome to JewelCli

JewelCli uses an annotated interface or class definition to automatically parse and present command line arguments.

Please note that I have recently moved the sourcecode for jewelcli on to github. I have also changed its location in the Maven Central Repository.

Releases including and after 0.8 are in the package com.lexicalscope, and introduce some backwards incompatible changes, please see the changes for details.


  • Declarative option definition

    Options are described in a declarative manner, by annotating a standard Java interface.

  • Type enforcement

    Options are automatically constrained to the Java type in the interface.

  • Generic list support

    Lists are automatically created for options defined to return any type assignable from java.util.List. All values are checked against the defined generic type of the list.

  • Enum support

    Options defined as an enum type are automatically converted.

  • Regular Expression argument validation

    A regular expression can be specified for each option, which the option's values must match.


public interface MyExample
  String getMyOption();
  @Option(defaultToNull = true)
  String getMyOptionalOption();
  List<String> getMyListOption();

Mailing List

JewelCli Google Group for discussion of JewelCli