Konubinix' opinionated web of thoughts



A tool I made to help me automatize command line stuff when working with poor command line tools, based on click for the most part.

It tries to fit the user workflow as far as possible. One of its main principles is shape your tools, don’t let your tools shape you.

See the clk 101.

a TDD way of thinking

clk is made so that you can incrementally create your custom commands.

Start with something small, like a simple alias or a shell script. Try it out for some time, then make it right. And finally continue, creating new aliases, shell commands or python commands.

Because, let’s face it, you almost never know before hand what would look like the awesome CLI you dream of doing. With clk, every step is usable so that you can assess whether you feel you are doing things right.

Chances are that at some point, you will want to have the full application in python because of the great features it provides, but you can totally work with a hybrid of shell and python commands until then.

Therefore, take your time and separate the steps of making it work and the step of making it elegant.

To me, it feels like TDD, in which the tests are your real life use cases. It is the process of doing very small ad-hoc increments, see how that feels and then refactor to make it elegant.

Notes linking here