Repolode
remkop

remkop/picocli

アノテーションまたはプログラムによるAPIでCLIアプリを構築でき、サブコマンド、ANSIカラー、シェル補完にも対応するJavaフレームワークです。

スター
5,453
フォーク
498
未解決の Issue
186
最終コミット
3 か月前

これは何?

Picocliは、コマンドラインアプリケーションを構築するためのJavaライブラリです。開発者はフィールドやメソッドにオプションやパラメーターをアノテーションで指定でき、picocliが入力引数を型安全な値に変換します。git風のサブコマンドや入れ子になったサブサブコマンド、POSIX形式の短縮オプションのグループ化、カスタム型コンバーター、パスワード入力プロンプトに対応しています。使用方法のヘルプは自動生成され、ANSIカラーで装飾できます。

相互排他的または依存関係のあるオプション、引数グループ、否定可能なオプション、-Dkey=valueのようなマップ形式のオプション、非常に長いコマンドラインを扱うための@-filesなど、より高度な解析にも対応しています。picocliはbashとzshの補完スクリプトを生成でき、対話型シェル向けにJLineとの連携機能も提供します。

このプロジェクトは単一のソースファイルとして配布されており、アプリケーションにコピーして組み込めるため、エンドユーザーがpicocliを依存関係に追加する必要はありません。アプリケーションはGraalVMのネイティブイメージとしてコンパイルすることもでき、そのためのアノテーションプロセッサーも含まれています。Java 5以降で動作し、Groovy、Kotlin、Scalaからも利用できます。

主な機能

  • 01コマンド、オプション、パラメーターを定義するための、アノテーションベースおよびプログラムによるAPI。
  • 02git風のサブコマンドと、入れ子になったサブサブコマンド。
  • 03自動生成される、色付きの使用方法ヘルプ。
  • 04bashとzsh向けのTAB補完スクリプト。
  • 05ソース形式で組み込める単一ファイルでの配布。
  • 06アノテーションプロセッサーを使ったGraalVMネイティブイメージ対応。

ユースケース

  • サブコマンドとヘルプテキストを備えたJavaまたはKotlin製CLIツールの構築。
  • GraalVMを使い、起動の速いネイティブ実行ファイルとしてCLIを配布する。
  • 既存のJavaコマンドラインアプリケーションにシェル補完を追加する。
  • 既存のJava CLIパーサーを、よりモダンなアノテーションベースAPIに移行する。

収録されている特集

トピック

よくある質問

picocli とは?
アノテーションまたはプログラムによるAPIでCLIアプリを構築でき、サブコマンド、ANSIカラー、シェル補完にも対応するJavaフレームワークです。 Picocliは、コマンドラインアプリケーションを構築するためのJavaライブラリです。開発者はフィールドやメソッドにオプションやパラメーターをアノテーションで指定でき、picocliが入力引数を型安全な値に変換します。git風のサブコマンドや入れ子になったサブサブコマンド、POSIX形式の短縮オプションのグループ化、カスタム型コンバーター、パスワード入力プロンプトに対応しています。使用方法のヘルプは自動生成され、ANSIカラーで装飾できます。
picocli は無料で使えますか?ライセンスは?
picocli は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
picocli は今もメンテナンスされていますか?
半年以内に更新あり。picocli の最終コミットは 2026年8月16日 です。
picocli は何に使えますか?
サブコマンドとヘルプテキストを備えたJavaまたはKotlin製CLIツールの構築。 GraalVMを使い、起動の速いネイティブ実行ファイルとしてCLIを配布する。 既存のJavaコマンドラインアプリケーションにシェル補完を追加する。 既存のJava CLIパーサーを、よりモダンなアノテーションベースAPIに移行する。
picocli はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/remkop/picocli

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト