Language and Runtime

What language and runtime each CLI library targets.

Commander.js

JavaScript/TypeScript, running on Node.js.

Yargs

JavaScript/TypeScript, running on Node.js.

oclif

JavaScript/TypeScript, running on Node.js, designed with multi-command, plugin-based CLIs in mind.

Click

Python, the most widely used third-party CLI library for the language.

argparse

Python, part of the standard library itself, requiring no external dependency.

Typer

Python, built directly on top of Click, adding a type-hint-driven interface layer over it.

Cobra

Go, compiled to a single static binary along with the rest of the program.

Clap

Rust, compiled to a single static binary with no runtime dependency.

Thor

Ruby, framework-agnostic though most famous for being the engine behind the Rails CLI itself.

picocli

Java (and other JVM languages), distributed as a single dependency-free JAR.

Symfony Console

PHP, usable standalone or as the foundation other PHP tools (most notably Laravel’s Artisan) build their own CLI on top of.