Jan 2026

Notes on building small tools that last

The tools I reach for every day are small. A script that formats my notes. A shortcut that opens a specific folder. A tiny CLI that does one thing I kept doing by hand. None of them are impressive. All of them are indispensable.

What makes a small tool last is not ambition but fit. It does exactly what you need and nothing more. It has no settings panel, no plugin system, no roadmap. It was built for a workflow that actually exists, not a workflow that might exist someday.

Here is one I wrote last year and still use daily — a shell script that finds notes modified since I last ran a formatter and cleans them up:

#!/bin/sh
# fmt-notes: reformat markdown notes modified since last run
STAMP=~/.last-fmt

find ~/notes -name "*.md" -newer "$STAMP" | while read -r f; do
  prettier --prose-wrap always --print-width 72 --write "$f"
done

touch "$STAMP"

Twenty lines. No dependencies beyond prettier. It runs in under a second. I have been using it for fourteen months without touching it.

Large tools tend to outlast their original purpose by accumulating features for users they do not have yet. Small tools survive by staying honest about what they are. You can read the whole thing in an afternoon. You can change it when your needs change. You own it in a way you never own something large.

Build small things. Make them fit well. Do not let them grow unless growth is genuinely necessary. The best tool is the one you forget is a tool at all.