Tools & Workflow

The Terminal Setup You'll Actually Keep

A customised terminal prompt on a dark screen

Every few years I go through a phase of obsessively pimping my terminal. New prompt theme, a dozen plugins, a colour scheme I spend an evening tweaking, aliases for things I'll use twice. It feels productive. Then I get a new laptop, can't be bothered to port the whole baroque mess, and start from a clean shell — only to realise I don't miss most of it. That cycle finally taught me what's actually worth keeping.

The setup you keep isn't the impressive one. It's the small one that survives a fresh machine because every piece earns its place.

Start from what survives a reset

Here's a useful test: when you set up a new machine, what do you reach for in the first hour, before you've copied any dotfiles? That instinctive list is your real setup. For me it's a handful of things — a decent prompt that shows the git branch, a couple of aliases I've typed ten thousand times, fuzzy history search, and a sensible editor default. Everything else was decoration I thought I needed and didn't.

The 200-line config full of plugins you installed from a blog post is mostly weight. Each plugin is a thing that can break, slow your shell's startup, or conflict with the next one. The minimal setup is faster, more portable, and — crucially — you actually understand every line of it, which means you can fix it at 2am instead of cargo-culting around the breakage.

The few things genuinely worth it

A handful of upgrades pay for themselves daily. Fuzzy history search is the big one — being able to fuzzy-find any command you've run, rather than mashing the up arrow, is a real productivity jump you feel within a day. A prompt that shows your current git branch and whether you've got uncommitted changes saves you a hundred tiny "wait, where am I?" moments. Good tab completion is quietly indispensable.

Aliases are worth it but only for things you truly type constantly. The trap is aliasing everything; then you've built a private language you have to remember, and you're helpless on any machine but your own. I keep a tiny set — shortcuts for git status, for jumping to common directories, for the one long command I run all the time — and leave the rest as plain commands my fingers already know.

Portability beats perfection

The single best upgrade I ever made wasn't a plugin. It was putting my config in a small, well-commented dotfiles repo so a new machine is one clone and one script away from feeling like home. That's the whole payoff of keeping the setup small: it's portable. A sprawling config is a thing you're tethered to; a lean one travels with you and sets up in minutes.

Resist the urge to make your terminal a personality. It's a tool, and the best tools disappear into the work. The setup you'll actually keep is the one that's fast, that you understand top to bottom, and that you can recreate anywhere from a tiny repo. Everything beyond that is a hobby — a perfectly fine hobby, but don't confuse the evening you spent on a prompt theme with the work the terminal is there to do.

So next time you feel the pimping urge, indulge it for an hour, then delete two thirds of what you added a week later and see what you miss. Probably nothing. That remainder, the stuff you can't live without, is the setup worth carrying for the next decade.