tech

A quieter terminal, on purpose.

published · 2 min read

I spent years making my terminal more informative. Git status in the prompt, battery, weather, kubernetes context, a clock, all of it syntax-highlighted like a parrot in a paint store. Every glance offered me six things to think about. For an ADHD brain, that’s not information — that’s six invitations to leave the task.

This year I went the other way. The goal: a terminal that answers questions when asked and otherwise stays quiet. Here’s what actually moved the needle.

The prompt stopped shouting

My old prompt was a dashboard. My new prompt is a sentence:

.zshrc
# directory, git branch when it matters, and a cursor. that's it.
PROMPT='%F{6}%2~%f${vcs_info_msg_0_} %F{2}$%f '
zstyle ':vcs_info:git:*' formats ' %F{8}(%b)%f'
precmd() { vcs_info }

Two colors: one for where I am, one dim one for the branch. No exit-code emoji, no timestamp, no language version — when I need those, I can ask (echo $?, date, node -v). It turns out I asked about the kubernetes context roughly four times a year, and it interrupted me forty times a day.

Notifications went to zero

The real noise wasn’t visual, it was interruptive: completion bells, brew update nags, tools that print upgrade banners in the middle of your work. All of it got the same treatment:

.zshrc
unsetopt BEEP # no bell, ever
export HOMEBREW_NO_ENV_HINTS=1 # no lifestyle advice from my package manager
export DISABLE_UPDATE_PROMPT=true # update when *I* schedule it, not mid-thought

The pattern I keep relearning: every tool believes its news is important. My attention is a shared resource they’re all writing to without a lock. Muting them isn’t ignorance — it’s scheduling. Updates now happen Friday afternoon, batched, with coffee, on purpose.

One honest status line

I kept exactly one piece of ambient information: a tmux status line with the session name and the time. Not because it’s pretty — because those are the two questions I actually ask mid-task (“where am I?” and “how long have I been here?”), and answering them without a context switch keeps me in the task instead of orbiting it.

Everything else earns its place by being silent until summoned. The terminal finally feels like the rest of this blog is supposed to feel: a quiet room where you can hear yourself think.

If your setup works because it’s loud, genuinely: enjoy it. But if you’ve never questioned the noise, try a week with a two-color prompt. The silence has a surprisingly high signal.