clish
The most elegant CLI framework for Rust. Annotate a function, ship a CLI.
fn install( package: Pos<String>, version: Named<Option<String>>, force: bool ) { ... }
Easy API
Annotate a function with #[command] and you have a
CLI. Argument types determine parsing automatically.
Powerful & Flexible
Positional, named, variadic, repeatable, optional. Short flags, bundled flags, env fallbacks, defaults, value choices, and so much more.
Supreme Customizability
Style every element of help and error output with
farben markup or anstyle. Command
aliases, hidden commands, deprecation.
Compile-Time Safety
Invalid type combinations and duplicate short flags are caught at compile time. No runtime surprises.