Skip to content

Feedback from Users

Andres Almiray edited this page Jun 23, 2021 · 24 revisions
I have to say, picocli is a great library that emphasizes developer friendliness and productivity. It is a breeze to use and I’m grateful to use it in my new project. I’d like to highlight a few of the excellent features in picocli: great annotations, strong typing, arity controls, cognitive user friendliness and the documentation. picocli is really awesome, and it is so productive, that I went from Google searching the latest on Java CLI tools, to running my picocli powered main class in Intellij within 5 minutes. Job well done, and thanks for the awesome library.
— David Williams
https://www.quora.com/What-is-the-best-way-to-parse-command-line-arguments-with-Java/answer/Remko-Popma-1?__nsrc__=4&__snid3__=15977565887&comment_id=178339649&comment_type=2

Very impressed with picocli. Pretty much anything you’d want to do with a CLI. Just tried converting types and sub-subcommands. The docu is top notch, very easy to find things there: http://picocli.info #picocli #java thx @maxandersen for tip
— Galder Zamarreño (@galderz)
https://twitter.com/galderz/status/1255440605246873600

picocli might be the most comprehensive getopt-alike ever developed, no joke
— Sean Champ (@spchamp)
https://twitter.com/spchamp/status/1028892160370700288

Building command line applications. How about making it user-friendly? Check picocli - powerfully packed with numerous features, extensible - https://picocli.info #Java #CLI #picocli
— Yogesh Jadhav (@yogeshcjadhav)
https://twitter.com/yogeshcjadhav/status/1126385514368598017

I just started using @picocli. l’ll never parse commandline args again in my own code. Using picocli is so much better.
— Igmar Palsenberg (@Palsenberg)
https://twitter.com/Palsenberg/status/1336547526758068224

@picocli You’re pretty great! Documentation is awesome too!
— Y. Alonso (@yalogar)
https://twitter.com/yalogar/status/1111282399290249216

Are you looking for an awesome Java command line parser? Check out picocli by @RemkoPopma, the best parser I have used in any language to date!!

#java #cli #commandline #picocli

— Philipp Hanslovsky (@hanslovsky)
https://twitter.com/hanslovsky/status/1098033103359090689

Hey @picocli, I don’t get to use you very often. But each time I do, it’s a distinct pleasure. Doing only one thing and doing it well is so much easier said than done. You succeeded. Love, W.
— Wolfgang Werner (@0xcafebabe)
https://twitter.com/0xcafebabe/status/1336959970248683522

Seconded. The Developer Experience is absolutely world-class. It should be among the case studies for anyone wishing to design Java APIs :-)
— Jonas Andersen (@PrimusAlgo)
https://twitter.com/PrimusAlgo/status/1337071016158355457

There are some projects that really, really impress me. @picocli is one of those. So well thought of. Wow. https://picocli.info
— Michael Simons (@rotnroll666)
https://twitter.com/rotnroll666/status/1218140465863761920

Agreed ! @picocli is awesome 👏
— François Farquet (@FFarquet)
https://twitter.com/FFarquet/status/1211779749099556869

@picocli is must have. All my scripts became professional programs instantly.
— Jayan (@jayanmn)
https://twitter.com/jayanmn/status/1295393793089232896

Congrats. I remember a couple of years ago when I first used it, there were maybe a couple dozen of them. Cudos and thanks for this great framework.
— George Mich (@gmich_)
https://twitter.com/gmich_/status/1250159695991582720

Stumbled across @picocli https://github.com/remkop/picocli, quite a breath of fresh air for developing CLI applications. #java #cli #development #commandline
— Hein Smith (@hein_smith)
https://twitter.com/hein_smith/status/1081519315143311360

Writing commandline apps with @java 11, @picocli and @graalvm and having the time of my life!
— Oliver Weiler (@helpermethod)
https://twitter.com/helpermethod/status/1062614593451843584

Your command-line applications also deserve a good UX. I just published a gentle introduction to #Java command-line applications with #picocli. https://aragost.com/blog/java/picocli-introduction.html
— Jonas Andersen (@PrimusAlgo)
https://twitter.com/PrimusAlgo/status/1262760580806393860

my impressions so far: @picocli is a great choice for cl parsing to start up a tool. #jline is great for interactive input while running. Together they are the best choice I have found so far cli tools on the #jvm. 😀 😎 but now I still need to create my PoC
— Ralf D. Müller™ (@RalfDMueller)
https://twitter.com/RalfDMueller/status/1251417574782402560

“Every main method deserves picocli!” Looks like I found my new favorite lib for building Java CLIs: https://picocli.info
— Viacheslav Kovalevskyi (@b0noi)
https://twitter.com/b0noi/status/1336882672593858560

Picocli is awesome and so much easier to use than Go’s Cobra. If you’re interested in Rust, https://github.com/TeXitoi/structopt has the same declarative approach.
— Sylvain Wallez (@bluxte)
https://twitter.com/bluxte/status/1336570317603557376

Yeah that’s the use case I was trying to present actually. Picocli is perfect If you have a java/kotlin team and an existing code base. Just add some annotations on existing code and you’re in business.
— Julien Lengrand-Lambert (@jlengrand)
https://twitter.com/jlengrand/status/1336566896620146688

I’m late to the party, but I wholeheartly recommend PicoCLI as well. Our official Neo4j tooling (the admin tool https://github.com/neo4j/neo4j/blob/4.0.3/community/command-line/src/main/java/org/neo4j/cli/AdminTool.java ) uses it and I build the neo4j-migrations cli with it https://github.com/michael-simons/neo4j-migrations/tree/master/neo4j-migrations-cli Remko and the community did an outstanding job here.
— Michael Simons (@rotnroll666)
https://twitter.com/rotnroll666/status/1249262533925580800

We are rewriting the @micronautfw CLI with Picocli and…​ Micronaut, of course 😄 However that’s still in very early stages of development and I would not call it a good example. @RemkoPopma surely has better ones
— Álvaro Sánchez-Mariscal (@alvaro_sanchez)
https://twitter.com/alvaro_sanchez/status/1249077421023940611

@picocli was a game changer for me, takes all the CLI pain away: parameter parsing, help, shell autocompletion. And yeah, compiles to an executable.
— Y. Alonso (@yalogar)
https://twitter.com/yalogar/status/1292720306654715904

I had never used Picocli before and I have to admit that I’m really impressed! Kudos to @RemkoPopma!
— Iván López (@ilopmar)
https://twitter.com/ilopmar/status/1295627138868162562

The documentation is really good and everything is explained with a lot of examples. Every time I needed to do a new thing, it was explained in the docs. Add parameters, define some optional and some mandatory, "mask" inputs (for a password), deal with the log/verbose…​
— Iván López (@ilopmar)
https://twitter.com/ilopmar/status/1295627140478754817

3/ Parsing command line arguments is on its face a simple task but if you want to do it well you do benefit greatly from a library to do it rather than manually munging the String[] you get handed.

There are a bunch of them but my clear winner is @picocli. It just does it all…​

— Max Rydahl Andersen (@maxandersen)
https://twitter.com/maxandersen/status/1290143964234883074

4/ By all I mean that it is annotation based making it declarative and kinda handholds you into a command based class/method structure that is very close to what I would most likely do anyway. It is well documented supports native compilation and has @QuarkusIO extension…​
— Max Rydahl Andersen (@maxandersen)
https://twitter.com/maxandersen/status/1290143965820227584

@picocli + @QuarkusIO + GraalVM = CLI heaven ;)

Also in January I will give a talk on how to build kubectl plugins using those 3 technologies

— Sébastien Blanc (@sebi2706)
https://twitter.com/sebi2706/status/1336566734409625600

Sure I’ll try to give some feedback whenever I can. I honestly think is a great project.
— Mario García (@marioggar)
https://twitter.com/marioggar/status/1094344655762800642

@picocli, I love you! Easy to implement a complex command line tool!!! 🤩 🧙🏼🧙🏼
— Victor Osório (@vepo)
https://twitter.com/vepo/status/1093910172186144768

Picocli is PFM. (Pure F***ing Magic) http://picocli.info
— Jakub Korab (@jakekorab)
https://twitter.com/jakekorab/status/1273644747639357447

🤩 @picocli awesome tool ! And the level of the documentation 🤯 So good !! Many ideas to use it 🤓
— Mat V. (@yodamad03)
https://twitter.com/yodamad03/status/1371202036730003460

Shout out to @picocli, the best Java library for building CLI tools. We simply could not have made or CLI without it.
— jreleaser (@jreleaser)
https://twitter.com/jreleaser/status/1386775223689691149

(fireworks image)


Picocli. "Just worked" in everything I tried with it.
— Michael Simons (@rotnroll666)
https://twitter.com/rotnroll666/status/1392039537417805825

(In reply to "Which CLI libraries for #java does my bubble prefer? picocli, Commons CLI, others? Would be interested in the "why" as well.")


I would go for picocli because

  • simple but yet powerful API

  • supports providers (e.g. fetching required parameters from a config file)

  • works with native compile

  • (and TBH haven’t looked at commons cli for years)

— Gerrit Meier (@meistermeier)
https://twitter.com/meistermeier/status/1392039862103121920

(In reply to "Which CLI libraries for #java does my bubble prefer? picocli, Commons CLI, others? Would be interested in the "why" as well.")


@picocli, no doubt. I always preferred to write CLI in Python. That changed after I found out about picocli. Simple, intuitive, flexible, tons of features, and the best part: very approachable and responsive author
— Philipp Hanslovsky ​(@hanslovsky)
https://twitter.com/hanslovsky/status/1397529281895489536

(In reply to "Which CLI libraries for #java does my bubble prefer? picocli, Commons CLI, others? Would be interested in the "why" as well.")


Writing a CLI application again in #kotlin, and after trying a few kotlin libraries, I can only go back to @picocli. I don’t like having to screw around with nulls but just look at the sheer extent of documentation of the project!
— Julien Lengrand-Lambert (@jlengrand)
https://twitter.com/jlengrand/status/1378008438811283460

@picocli is a cool library to create command line tools in java. Here is my experience on creating my first command line tool.. https://fullstackdeveloper.guru/2020/06/18/how-to-create-a-command-line-tool-using-java/
— The Full Stack Developer (@FullStackDevel6)
https://twitter.com/FullStackDevel6/status/1273570156891926528

@QuarkusIO Thank you so much for Picocli integration in 1.5.0!!!
— Anthony Ikeda (@anthonyikeda)
https://twitter.com/anthonyikeda/status/1268227543544389632

I’ve really enjoyed PicoCLI for Java as it aligns to Docker and other complex formats.
— Ryan (@RRMcGuinness)
https://twitter.com/RRMcGuinness/status/1264990741983608834

Nice! Had a positive experience building @cimate_io’s native binary with #picocli as well: https://github.com/testcontainers/testcontainers-java/blob/8377288a10a892d8ed830b59b860eb3e40a72491/.github/workflows/ci.yml#L71
— Sergei Egorov (@bsideup)
https://twitter.com/bsideup/status/1259479581817536512

Awesome! I did use @picocli some time ago the doc is phenomenal. Nowadays, I usually code these kind of tools using #Clojure and #babashka. You got me interested, so I did the same one with these, 40 lines, execution is instant. No way I use bash again 🤣
— Alexandre Grison (@algrison)
https://twitter.com/algrison/status/1259393589114789889

When it comes to building a command line tool, #Java is generally not the first language that comes to mind! I spent the day playing with @picocli building a #covid19 tracker CLI, compiled to native binary using @graalvm! It was fun https://asciinema.org/a/aUIoDq6jRE5eYFWAJicTMmiI9
— Mohammed Aboullaite (@laytoun)
https://twitter.com/laytoun/status/1259198700397776901

The CLI parameter parsing is done with picocli: http://github.com/remkop/picocli/ This makes really easy to create scripts that are easier to use and understand also for other humans or #AndroidDev out there 😅 You get a --help for free like here (image)
— Nicola Corti (@cortinico)
https://twitter.com/cortinico/status/1258442538014380032

Picocli cleared a lot of issues for me
— Yuri Schimke (@yschimke)
https://twitter.com/yschimke/status/1247784245491200002

and uses @picocli, the best command line parser for the JVM, to read user options

3/3

— Philipp Hanslovsky (@hanslovsky)
https://twitter.com/hanslovsky/status/1242863574512517121

明日はgraalとpicocliで遊ぶぞ
— おれきゅー@駆け出しJavaエンジニア(@orekyuu)
https://twitter.com/orekyuu/status/1239931661111853057

書いた Javaのコマンドラインアプリケーション向けのフレームワーク、picocliで遊ぶ - CLOVER 🍀 https://kazuhira-r.hatenablog.com/entry/2020/03/07/013626
— かずひら (@kazuhira_r)
https://twitter.com/kazuhira_r/status/1235967549424062464

Spring Batch、大袈裟感あるからなー。コマンドラインツールでSpring使いたいだけならpicocliじゃダメなの?って思うようになりました。 |qω・`)チラッ
— いまいまさのぶ (@masanobuimai)
https://twitter.com/masanobuimai/status/1235195432495534080

picocli面白い
— Nakamura Masato (@Masahito)
https://twitter.com/Masahito/status/1234862173266071553

picocli便利でした! / KuromojiのCLIコマンドとpicocliとGraalVM- @johtaniの日記 3rd | @johtani’s blog 3rd edition - https://blog.johtani.info/blog/2020/02/28/kuromoji-cli/
— Jun Ohtani (@johtani)
https://twitter.com/johtani/status/1233696832649232384

とりあえず、picocliがすごく便利だってのはわかった。あと、これも。 https://github.com/palantir/gradle-graal
— Jun Ohtani (@johtani)
https://twitter.com/johtani/status/1233223359489433600

picocliならspring-boot-starterもあるので spring bootとのintegrationも簡単ですね https://github.com/remkop/picocli/tree/master/picocli-spring-boot-starter
— wreulicke (@wreulicke)
https://twitter.com/wreulicke/status/1232488166910648321

I’ve done exactly that with @picocli it was awesome.
— Eduardo Gonzalez (@wm_eddie)
https://twitter.com/wm_eddie/status/1228302473032429568

@picocli might be interesting
— Oleg Šelajev (@shelajev)
https://twitter.com/shelajev/status/1228093404934017025

(Replying to @picocli * What is it about picocli that makes you happy with it? * What would you do if picocli did not exist?)

Documentation and real world use cases (I.e I found how to inject main conf instance into subcommands and also how to replace key=Val separator with : etc)

Probably would have run my own primitive key=val thing. Would have been enough for the start, but now I have already…

…than planned in a lightweight setup that doesn’t get into my way.

— Michael Simons (@rotnroll666)
https://twitter.com/rotnroll666/status/1224225614397419521

It’s quite nice isn’t it. I’ve turned to it when we needed a better CLI for Kettle. We’ll completely switch to it for @projhop
— Matt Casters (@mattcasters)
https://twitter.com/mattcasters/status/1218196413160488960

あ、picocli は、 --help と --version を自分で作りこまなくて良いのが便利でした。
— 大雪 命 (@mikoto2000)
https://twitter.com/mikoto2000/status/1210188793078136832

Spring Bootを外して,picocliだけでネイティブビルドすると問題無く,どこに持っていっても動くexeができました。 https://github.com/masanobuimai/plain-picocli
— いまいまさのぶ (@masanobuimai)
https://twitter.com/masanobuimai/status/1202137978983743489

picocliはJVM言語でときめくCLIアプリを作るためのライブラリ。コマンドオプションやヘルプをいい感じに実装できる。ドキュメントを流し読みするとGraalVMのnative-imageだけでなくjlinkやjpackageでの配布もできるっぽい。 https://picocli.info #jjug_ccc #ccc_i1
— Shunsuke Tadokoro (@todokr)
https://twitter.com/todokr/status/1198050362071998465

PicoCli is awesome. We use it for CodeCharta.
— Richard Groß (@ArghRich)
https://twitter.com/ArghRich/status/1176613978988064770

J’utilise picocli avec groovy dans Shinobi et je confirme la puissance. On est bon pour réécrire cbsupport en @java avec @graalvm et @QuarkusIO?
— Arnaud Héritier (@aheritier)
https://twitter.com/aheritier/status/1175714849025908742

We already included it in adr-j (https://github.com/adoble/adr-j). Gradle Windows build correctly depends on https://github.com/palantir/gradle-graal/issues/184. — Thank you for making the GraalVM build so easy!
— Oliver Kopp (@koppor)
https://twitter.com/koppor/status/1174570961053638656

TIL: @picocli CommandLine.execute uses the return code of its command as exit code if the command implements Callable<Integer>. This is also applied to all subcommands. How cool is that!!!

#Java #cli #commandline #interface

— Philipp Hanslovsky (@hanslovsky)
https://twitter.com/hanslovsky/status/1173771196653015041

Bash completion file available as paintera_completion on the release page, auto-generated with the amazing @picocli CLI https://github.com/saalfeldlab/paintera/releases/tag/paintera-0.18.0
— Philipp Hanslovsky (@hanslovsky)
https://twitter.com/hanslovsky/status/1158845336737255425

Kotlinで素敵にCLIやりたくなってpicocli調べてる https://picocli.info
— ふりぎ🗝 (@huruikagi)
https://twitter.com/huruikagi/status/1152929954666958848

Blog を書きました。Picocli は usage を自動できれいに表示してくれるし、自動補完コマンドが作れるし、とても面白いです。https://ksby.hatenablog.com/entry/2019/07/20/092721
— かんがるー (@ksbyzero)
https://twitter.com/ksbyzero/status/1152375792409559040

(je viens de mater picocli et Akka et…​. bah il se pourrait que ça soit super-utile pour mon projet ^^ #BrunoLesBonsTuyaux )
— Original Codester (@furyGnu)
https://twitter.com/furyGnu/status/1144587101188624384

Definitely support the picocli recommendation, a game changer for Java cli in my opinion
— Philipp Hanslovsky (@hanslovsky)
https://twitter.com/hanslovsky/status/1143626502749249538

args4jとかApacheCommons CLIよりもっとモダンなコマンドラインオプションパーサーないのかって思って探したらpicocliってやつが良かった
— くろみー (@clomie)
https://twitter.com/clomie/status/1141970640104148992

Picocliはマジで神
— Snow Days (@snow_days_world)
https://twitter.com/snow_days_world/status/1141729392734830592

picocli!Java CLI parser。 機会あってたまたま探していたら、コレコレ!!POSIX/GNU拡張にも対応し、読めば読むほど気配りが素晴らしい! 3年前に出会えなかったのが残念。。残ってるコードは全部書き直す。ゾッコン! jcommander/args4j、今までありがとう!commons cli、君は相変わらずだね。。
— ISHIZUKA Ryuhei (@kacchi123)
https://twitter.com/kacchi123/status/1132987377004101633

CLIライブラリの picocli 知らなかったけど便利そう
— Junichiro Kazama (@jkazama77)
https://twitter.com/jkazama77/status/1085371016191213568

2/ I struggled for a long to make a commandline my #ami software . Now I’ve discovered a wonderful #opensource library that does everything I want and more. @picocli! and the movie https://drive.google.com/open?id=1640xhsdk5XbwNLBHr5DGaYQhgzRs8aSZ has a feel-good ending! Open is about sharing and collaboration.
— Peter Murray-Rust (@petermurrayrust)
https://twitter.com/petermurrayrust/status/1070598252666515456

3/ Three days ago I discovered a wonderful tool @picocli that does everything I want (and more). It’s #opensource Apache2 licence and it’s clearly got a vibrant community. New issues every few days and new point releases. WOW! …​
— Peter Murray-Rust (@petermurrayrust)
https://twitter.com/petermurrayrust/status/1070309783402676225

@picocli is awesome, especially when paired with @graalvm native image generation!
— Arash Shahkar (@amizrash)
https://twitter.com/amizrash/status/1057320573729001472

Checkstyle migrated from Apache CLI to @picocli (will be released in 8.15), finally documentation of CLI arguments become well organized in declarative way in code - https://github.com/checkstyle/checkstyle/blob/master/src/main/java/com/puppycrawl/tools/checkstyle/Main.java#L569 , and now checkstyle’s CLI is following CLI’s best practices.
— Checkstyle (@checkstyle_java)
https://twitter.com/checkstyle_java/status/1057246772089606144

a shout out to the @picocli project and @RemkoPopma - we’ve been using #picocli for the stand-alone JAR / executable for a while and are very happy with it
— Karate (@KarateDSL)
https://twitter.com/KarateDSL/status/1044795145806209025

@picocli Looks like the modern java CLI parser you’ve been looking for. I certainly have and like it. Pretty much so. https://picocli.info
— Wolfgang Werner (@0xcafebabe)
https://twitter.com/0xcafebabe/status/1037726380245635072

Picocli is actually a nice piece of work! #java
— Christian Grobmeier (@grobmeier)
https://twitter.com/grobmeier/status/997550576417296384

Picocli rulez
— George Mich (@gmich_)
https://twitter.com/gmich_/status/972057738128785409

#Picocli and #Groovy: two of my favorite Java technologies together!
— Andrea Cisternino (@acister64)
https://twitter.com/acister64/status/949569348267597825

picocli is a great tool. Saving me a ton of time. Great features. http://picocli.info

— Maiden Lane (@rjs2006)
https://twitter.com/rjs2006/status/941073118638034945

Thanks for the shoutout! I am currently using picocli for a cool company project and I’m really liking it.
— Stephen M. Coakley (@sagebind)
https://twitter.com/sagebind/status/926603239402983424

I’ve written the first article in a long time: "Building a decent Java CLI" — https://atextor.de/2020/07/27/building-a-decent-java-cli.html tl;dr: Use Micronaut w/ Picocli to get GraalVM Native Image goodness; follow best practices for how a CLI should behave.
— Andreas Textor (@atextor)
https://twitter.com/atextor/status/1289909574217039872

A new video published: "Adding @oauth_2 authentication to a command-line app implemented in @Java using @micronautfw, @picocli, and compiled to the native binary file with @graalvm"

— Szymon Stepniak (@wololock)
https://twitter.com/wololock/status/1286519867781382146

Building a GitHub Dependents Scraper with Quarkus and Picocli - Marc Nuri Blog post, showing how to create a simple web scraper using Picocli and Quarkus to build a native binary that will scrape dependents for any GitHub project: blog.marcnuri.com

— Marc Nuri (@MarcNuri)
https://twitter.com/MarcNuri/status/1289221870328324098

Finally I can build native CLI and create it in Java. @simplelocalize @micronautfw @picocli @graalvm Thanks! https://micronaut.io/launch/
— Jakub Pomykała (@jakub_pomykala)
https://twitter.com/jakub_pomykala/status/1288793208802041856

this is the right answer. If you need a more complicated app, like DI and everything, take a look at @micronautfw which has support for both @picocli and @graalvm native image.
— Oleg Šelajev (@shelajev)
https://twitter.com/shelajev/status/1291099410865291264

I use @picocli which really amazing, and about json have you tried domino-jackson from @dominokit?
— Dominokit (@dominokit)
https://twitter.com/dominokit/status/1290411021312692224