On the quiet pleasure of small command-line tools
Why I keep returning to the terminal — and what a six-line shell function taught me about taste.
There is a particular feeling I get when I open a fresh terminal in the morning — the cursor blinking quietly, the prompt waiting without judgment. It's the closest thing software has to a blank page.
I've spent most of my career building user interfaces. And yet the tools I love most are the ones with no interface at all. A grep here, an awk there, a six-line shell function bound to a two-letter alias.
The shape of a useful tool
Last winter I wrote a function called jot. It does almost nothing. It takes whatever you
type after it, prepends a timestamp, and appends the result to a single text file in my home directory.
jot() {
printf '%s %s\n' "$(date -Iminutes)" "$*" >> ~/notes/journal.txt
}
Six lines, including the closing brace. I have used it almost every day for sixteen months. It has accumulated, slowly and without ceremony, the most honest log of my working life I have ever kept.
The best tools are the ones that disappear into your hands. They don't ask for your attention; they return it.
What I learned
Taste in software has very little to do with novelty and almost everything to do with restraint.
jot works because it refuses to do anything else.
These days, when I find myself reaching for a new tool, I try to ask first whether five lines of shell would do. Often, surprisingly often, the answer is yes.