I Don't Like That I Like Starship

I have my seed Starship config up as a Gist.

Starship is a tool that frustrates me because it seems so bikesheddy and unneeded: a custom prompt manager. We already had shell prompt customization! I blindly install oh-my-* on new machines for prompt customization! And Starship is written in Rust. People just use Rust to be cute.

Then I realize that it’s okay to have nice things. The command line environment from the 90s can change. rg doesn’t suck. jq is right up there with Perl in opaque tools other people do interesting things with and then I steal the interesting things for myself. The lazy* TUIs don’t suck. I mock Textual and Charm openly and unrepentantly and still hypocritically use and enjoy the tools built with them. The terminal is changing because the people using it have the agency and hubris to use it differently.

I can have a growth mindset and accept that

  1. The preferred command line tool to do a thing can change in my lifetime and
  2. The preferred workflow to accomplish a task can change in the face of new tools and
  3. The people who invented the old tools we’re replacing were not gods, they were just as fallible as us so
  4. Writing new tools that learn hard lessons from decades of using the old ones is fine. It’s not sacrilege.

But its killer features:

  • Limited/Constrained/Opinionated: Other prompt customization schemes I’ve used have let you do anything, but you had to know how to do anything. I can’t think of cleverness I want in my prompt, I just want to see which Git branch I’m on. We’re all doing that. We all want that. Starship has a way to do that which isn’t brittle bash I have to maintain myself.
  • Multiplatform: I have Windows Bash, Windows PowerShell, Linux Bash/Zsh, and macOS Bash/Zsh all driven by the same seed config. I can have it show the same information everywhere. I can use little emblems to let me know if I’m on my Mac, on a Linux machine, if I’m on Windows and if that’s PowerShell or Bash all right there.
  • The Nerd Font Dark Horse: This system takes advantage of the glyphs in Nerd Fonts and normalizes abusing them. This adds the additional “burden” of installing a Nerd Font enabled typeface on all my apps with terminal editors, but I’ve already normalized that.

So here it is. All this talk for something that doesn’t look substantively different but compounds into feeling different over the course of the days and weeks I use it:

Image