clk is born out of the need for its authors to automate some boring stuffs. Its authors have a very opinionated idea (inspired from other CLI) of what makes a good CLI. In particular, the authors, following the dogfooding state of mind, won’t implement “best practices” until they are convinced those practices are actually good.
It is mostly about typing the least possible and let the machine guess what it can guess.
- provide meaningful completion
- provide sensible default
- allow to record often used parameters
- provide aliasing to shorten commands
- allow to run several commands at once (–flow)
- provide a bunch of everyday usage lib (call, table, log…)
But it is also having nice outputs.
And also easy to extend.
- create easily new commands
- change its behavior using plugins
- obviously not used often, for the default behavior is so awesome
- publish and install scripts from a package manager (ongoing, still unsure how we want to do that)