Oh My Posh makes a Windows prompt look like a conference talk. Glyphs, segments, Git status, cloud context—eye candy with a purpose. I ran it, loved it, over-invested, then ripped most of it out. This retrospective is about when the setup cost is worth it.
The real costs (not the install one-liner)
- Font dependency. Nerd Fonts (or equivalent) across terminals, VS Code, remote sessions. Miss one host and your prompt becomes mojibake theater.
- Startup tax. Heavy segments that shell out to git/network on every prompt add friction on slow disks and large repos.
- Cognitive load for demos. Students stare at your diamonds instead of your command.
- Portability. Your brain expects segments that aren’t on locked corporate shells.
Install is easy. Habitat change isn’t.
When it was worth it for me
- Daily driver machine I control end-to-end.
- Work where repo/branch awareness prevents wrong-directory deploys.
- A prompt theme with few segments (path + git + error) rather than a Christmas tree.
- After the shell fundamentals were already boring and solid.
That last point matters. Prompt bling on top of confused exit codes is cosplay.
When it wasn’t
- Teaching sessions (I switched to a plain prompt).
- Jump boxes and customer machines.
- CI-like terminals.
- Any machine where installing fonts was a ticket.
Also: when I realized I was tuning theme JSON instead of finishing the task that made me open the terminal.
A pragmatic middle path
- Use Oh My Posh (or a minimal PS prompt function) on personal/dev profiles only.
- Keep a
-NoProfile/ plain profile muscle for teaching and support. - Cap segments ruthlessly. If a segment doesn’t prevent mistakes, it’s decoration.
- Measure prompt time on your heaviest repo. If you feel it, cut it.
Retrospective verdict
Oh My Posh is worth the setup cost when it reduces wrong-context errors and you control the surface area. It’s not worth it as identity, as a teaching default, or as a substitute for learning the shell underneath.
My “worth it” segment budget
Allowed:
- current path (shortened),
- git branch + dirty state,
- last command success/fail marker.
Denied (for me):
- weather,
- Kubernetes context on every prompt when I’m not on-call for it,
- multiple cloud account glyphs,
- clocks I can see on the taskbar.
Your budget may differ. The point is having a budget.
Rollback plan
Keep a prompt_plain profile (or -NoProfile habit) you can switch to in one click. If your bling can’t be disabled during an incident, it’s an operational liability.
Teaching tax, restated
Every glyph you add is something a learner might think is required knowledge. If it isn’t, hide it when you teach. Cool prompts are for machines you own; classrooms need the signal-to-noise ratio of a runway, not a festival.
Ninety-day keep/kill (prompt edition)
Kept: path + git + error marker on personal pwsh.
Killed: network segments, excessive glyphs, identical theme forced onto teaching demos.
Maybe later: a second theme for “focus mode” with path only.
The retrospective isn’t anti-beauty. It’s pro-mistake-reduction accounting.
Font failure mode (so you’re not surprised)
Remote desktop to a box without Nerd Fonts and your prompt becomes tofu boxes. If that box is a customer jump host, you just spent cognitive budget on cosmetics during an incident. Keep a plain profile reachable in one switch.
I’m biased toward plain prompts in learning products for that reason—see the deliberately un-fancy practice UX in CMD Master. Make the skill loud. Keep the chrome quiet until it earns a slot.
Cool is allowed. Cost accounting is required.
Top comments (0)