
For years my terminal was a hobby. I rebuilt it every few months, chasing a prompt that displayed slightly more information, and the reward for all that work was a setup I could not reproduce on a new machine without losing an afternoon.
Three years ago I rebuilt it one last time with a single goal: nothing in here should ever need my attention again. Here is what was left after I removed everything that did.
One file, no framework
The whole configuration is one file, under a hundred lines, with comments explaining why anything unusual is there. No plugin manager, no framework, nothing that loads other things at startup.
The test is that I can read it in three minutes and understand all of it. Frameworks made my prompt prettier and my failures mysterious. When the shell now does something surprising, the cause is in a file I can read on the way to fixing it.
A prompt that answers three questions
Mine shows the current directory, the branch when there is one, and whether the last command failed. That is it. No timers, no version numbers, no icons, no counts.
Those three answers cover the questions I actually ask dozens of times a day. Everything else I displayed over the years was information I looked at once, out of curiosity, and never acted on.
Shortcuts for the things I mistype
I do not create shortcuts to save keystrokes. I create them to remove the commands I get wrong under pressure: the log format with four flags, the container command with the mounted path, the two step database dump.
The rule is that a shortcut has to be something I have already typed wrong at least twice. Shortcuts invented in advance are just another vocabulary to remember, and I never remember them.
Search, not memory
The one thing I would keep if I lost everything else is fuzzy history search. Almost everything I do in a terminal I have done before, sometimes eighteen months ago, and searching my own history is faster and more accurate than remembering flags.
Alongside it: a search across file contents, and a search across file names. Three searches, one key each. That combination replaced more of my old configuration than any other change.
A tool you have to maintain is a project. A tool you forget you configured is finished.
What I removed and have not missed
Directory jumping based on frequency, because typing the path is more predictable. Automatic environment switching, because it broke in ways that cost more than it saved. A status line with change counts, because it made every prompt wait on the filesystem. Sixteen colours of highlighting in the shell itself, which was pretty and never once helped.
Three years without touching it is not a boast about the setup. It is what a tool is supposed to feel like.
Written by
Ari Bennett
Software engineer and writer
I build web software for a living and write about the parts that are hard to search for: the trade-offs, the dead ends, and the small habits that make a codebase pleasant to come back to a year later. A decade in, I still keep a paper notebook next to the keyboard.
More about the writer

