For years my shell prompt was a username, a hostname and a dollar sign, and I told myself that was discipline. It wasn't, it was just inertia. A prompt is the one bit of UI you stare at thousands of times a day, and mine was telling me almost nothing useful.
These days I run starship, which is a single binary and a TOML file, and I have it surface exactly the things I tend to get wrong. The git branch and whether the tree is dirty. The Kubernetes context, in a loud colour. The cloud profile if one is set. Nothing else, because a prompt that shows everything shows nothing.
The Kubernetes one is the star. I have typed a command I absolutely meant for staging while my context was quietly pointed at production more than once in my life, and every one of those moments has been because the terminal gave me no reason to look. Now the context sits right there above the cursor, and when it says prod it says it in red, and that half-second of "hang on" has paid for the entire setup several times over.
The config is unglamorous. Roughly:
[kubernetes]
disabled = false
format = '[⎈ $context](bold red) '
[git_branch]
format = '[$symbol$branch]($style) '
[directory]
truncation_length = 3
That's most of it. The point isn't the tool, plenty of things do this, p10k and oh-my-posh and a hand-rolled PROMPT will all get you there. The point is to decide which two or three facts, if you got them wrong, would ruin your afternoon, and then put exactly those in front of your eyes and nothing else.
Mine are: where is this command going, and is my working tree in the state I think it is. Yours might differ. But spend ten minutes on the thing you look at ten thousand times a day. It is the cheapest ergonomics win in the whole toolchain, and the only reason most of us skip it is that the default was just barely tolerable.