宣言的にも手続き的にも定義できる、コマンドライン引数パーサー構築用の高機能なRustライブラリです。
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 の数値は毎日更新されます。
関連プロジェクト
サブコマンド、フラグ、シェル補完、ヘルプ生成に対応した、CLI構築用の宣言的なGoパッケージ。
ネストしたコマンド、自動生成されるヘルプ、遅延読み込みのサブコマンドに対応した、合成可能なCLIを構築するためのPythonツールキットです。
ヘルプを自動生成できる、コマンドライン引数を型安全に宣言・解析するSwiftライブラリ。
Bash、Zsh、Fish、Nushell、PowerShellで使えるコマンドテンプレート/スニペット管理ツール。ターミナルでIntelliSenseのように使えます。
macOS、LinuxなどのUnix系システム向けの、構文ハイライトと入力候補を標準搭載した使いやすい対話型コマンドラインシェル。