Overview
The idea behind Clipanion is to provide a CLI framework that won't make you hate CLIs. In particular, it means that Clipanion wants to be:
- Correct, with consistent and predictable behaviors regardless of your option definitions.
- Full-featured, with no need to write custom code to support for specific CLI patterns.
- Type-safe, with no risks that your application will silently rely on out-of-sync options.
It also has a few non-goals:
We don't care about being modular. Given that we intend to be full-featured, it doesn't make sense to publish things under different package names. Clipanion will always be available as just
clipanion
.We won't provide domain-specific languages (DSL). Once upon a time Clipanion actually worked like this, using a "natural" language to declare commands, but over time it became clear that we were merely fighting JavaScript, losing many useful tooling integrations.